{
    "contractName": "SecondaryIssueManager",
    "abi": [
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "previousOwner",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "OwnershipTransferred",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "poolId",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "security",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "timestamp",
                    "type": "uint256"
                }
            ],
            "name": "closures",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "platform",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "collection",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "timestamp",
                    "type": "uint256"
                }
            ],
            "name": "feecollection",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "internalType": "bytes32",
                    "name": "poolId",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "seller",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "investor",
                    "type": "address"
                },
                {
                    "indexed": true,
                    "internalType": "address",
                    "name": "securityTraded",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "currencySettled",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "amount",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "price",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "bytes32",
                    "name": "tradeRef",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "bytes32",
                    "name": "DPID",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "timestamp",
                    "type": "uint256"
                }
            ],
            "name": "subscribers",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "poolid",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "transferor",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "transferee",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "unitsToTransfer",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "security",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "price",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "address",
                    "name": "currency",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "internalType": "bytes32",
                    "name": "settlementStatus",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "bytes32",
                    "name": "tradeRef",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "fee",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "timestamp",
                    "type": "uint256"
                }
            ],
            "name": "tradeSettled",
            "type": "event"
        },
        {
            "inputs": [],
            "name": "owner",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function",
            "constant": true
        },
        {
            "inputs": [],
            "name": "renounceOwnership",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "transferOwnership",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_factory",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "_issueFeePercentage",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "_client",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "_vault",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "_distribution",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "_products",
                    "type": "address"
                }
            ],
            "name": "initialize",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "_fee",
                    "type": "uint256"
                }
            ],
            "name": "setFee",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "security",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "currency",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "securityOutstanding",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "securityOffered",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "minSecurityOrder",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "cashAmount",
                    "type": "uint256"
                }
            ],
            "name": "issueSecondary",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "security",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "currency",
                    "type": "address"
                },
                {
                    "internalType": "uint256",
                    "name": "swapfee",
                    "type": "uint256"
                }
            ],
            "name": "setIssuingFee",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "security",
                    "type": "address"
                },
                {
                    "internalType": "address",
                    "name": "currency",
                    "type": "address"
                }
            ],
            "name": "getIssuingFee",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "view",
            "type": "function",
            "constant": true
        },
        {
            "inputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "partyAddress",
                            "type": "address"
                        },
                        {
                            "internalType": "bytes32",
                            "name": "partyRef",
                            "type": "bytes32"
                        },
                        {
                            "internalType": "bytes32",
                            "name": "counterpartyRef",
                            "type": "bytes32"
                        },
                        {
                            "internalType": "uint256",
                            "name": "dt",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "securityTraded",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "currencyTraded",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct ITrade.trade",
                    "name": "tradeToReport",
                    "type": "tuple"
                },
                {
                    "internalType": "contract IOrder",
                    "name": "orderbook",
                    "type": "address"
                }
            ],
            "name": "requestSettlement",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "dpid",
                    "type": "bytes32"
                },
                {
                    "internalType": "bytes32",
                    "name": "poolId",
                    "type": "bytes32"
                }
            ],
            "name": "getSettlementRequests",
            "outputs": [
                {
                    "internalType": "bytes32[]",
                    "name": "",
                    "type": "bytes32[]"
                }
            ],
            "stateMutability": "view",
            "type": "function",
            "constant": true
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "ref",
                    "type": "bytes32"
                }
            ],
            "name": "getSettlementRequest",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "contract IOrder",
                            "name": "orderPool",
                            "type": "address"
                        },
                        {
                            "internalType": "address",
                            "name": "transferor",
                            "type": "address"
                        },
                        {
                            "internalType": "address",
                            "name": "transferee",
                            "type": "address"
                        },
                        {
                            "internalType": "address",
                            "name": "security",
                            "type": "address"
                        },
                        {
                            "internalType": "address",
                            "name": "currency",
                            "type": "address"
                        },
                        {
                            "internalType": "bytes32",
                            "name": "status",
                            "type": "bytes32"
                        },
                        {
                            "internalType": "bytes32",
                            "name": "DPID",
                            "type": "bytes32"
                        },
                        {
                            "internalType": "uint256",
                            "name": "price",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "unitsToTransfer",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "consideration",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "executionDate",
                            "type": "uint256"
                        },
                        {
                            "internalType": "bytes32",
                            "name": "partyRef",
                            "type": "bytes32"
                        },
                        {
                            "internalType": "bytes32",
                            "name": "counterpartyRef",
                            "type": "bytes32"
                        }
                    ],
                    "internalType": "struct ISettlor.settlement",
                    "name": "",
                    "type": "tuple"
                }
            ],
            "stateMutability": "view",
            "type": "function",
            "constant": true
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "poolId",
                    "type": "bytes32"
                }
            ],
            "name": "close",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "ref",
                    "type": "bytes32"
                },
                {
                    "internalType": "bytes32",
                    "name": "status",
                    "type": "bytes32"
                }
            ],
            "name": "setSettlementStatus",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "poolId",
                    "type": "bytes32"
                }
            ],
            "name": "getSubscribers",
            "outputs": [
                {
                    "components": [
                        {
                            "internalType": "address",
                            "name": "investor",
                            "type": "address"
                        },
                        {
                            "internalType": "address",
                            "name": "asset",
                            "type": "address"
                        },
                        {
                            "internalType": "address",
                            "name": "currency",
                            "type": "address"
                        },
                        {
                            "internalType": "uint256",
                            "name": "amount",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "price",
                            "type": "uint256"
                        }
                    ],
                    "internalType": "struct ISettlor.subscriptions[]",
                    "name": "",
                    "type": "tuple[]"
                }
            ],
            "stateMutability": "view",
            "type": "function",
            "constant": true
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_token",
                    "type": "address"
                }
            ],
            "name": "getTradingFeeCollected",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "nonpayable",
            "type": "function"
        }
    ],
    "metadata": "{\"compiler\":{\"version\":\"0.7.1+commit.f4a555be\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"security\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"closures\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"platform\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"collection\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"feecollection\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"seller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"investor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"securityTraded\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currencySettled\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"tradeRef\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"DPID\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"subscribers\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"poolid\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"transferor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"transferee\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"unitsToTransfer\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"security\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"settlementStatus\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"tradeRef\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"tradeSettled\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"}],\"name\":\"close\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"security\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"getIssuingFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ref\",\"type\":\"bytes32\"}],\"name\":\"getSettlementRequest\",\"outputs\":[{\"components\":[{\"internalType\":\"contract IOrder\",\"name\":\"orderPool\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"transferor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"transferee\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"security\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"status\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"DPID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"unitsToTransfer\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"consideration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"executionDate\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"partyRef\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"counterpartyRef\",\"type\":\"bytes32\"}],\"internalType\":\"struct ISettlor.settlement\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"dpid\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"}],\"name\":\"getSettlementRequests\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"poolId\",\"type\":\"bytes32\"}],\"name\":\"getSubscribers\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"investor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"}],\"internalType\":\"struct ISettlor.subscriptions[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"getTradingFeeCollected\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_factory\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_issueFeePercentage\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_client\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_vault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_distribution\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_products\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"security\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"securityOutstanding\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"securityOffered\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minSecurityOrder\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"cashAmount\",\"type\":\"uint256\"}],\"name\":\"issueSecondary\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"partyAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"partyRef\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"counterpartyRef\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"dt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"securityTraded\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"currencyTraded\",\"type\":\"uint256\"}],\"internalType\":\"struct ITrade.trade\",\"name\":\"tradeToReport\",\"type\":\"tuple\"},{\"internalType\":\"contract IOrder\",\"name\":\"orderbook\",\"type\":\"address\"}],\"name\":\"requestSettlement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_fee\",\"type\":\"uint256\"}],\"name\":\"setFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"security\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"swapfee\",\"type\":\"uint256\"}],\"name\":\"setIssuingFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ref\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"status\",\"type\":\"bytes32\"}],\"name\":\"setSettlementStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getSettlementRequest(bytes32)\":{\"params\":{\"ref\":\"reference to the trade\"}},\"getSettlementRequests(bytes32,bytes32)\":{\"params\":{\"dpid\":\"identifier of depository participant (eg, transfer agent) that is authorized to settle the asset \"}},\"getSubscribers(bytes32)\":{\"params\":{\"poolId\":\"pool identity\"}},\"getTradingFeeCollected(address)\":{\"params\":{\"_token\":\"address of token in which fee is collected\"}},\"initialize(address,uint256,address,address,address,address)\":{\"params\":{\"_client\":\"address of Verified client contract\",\"_factory\":\"reference to the secondary issue pool factory contract\",\"_issueFeePercentage\":\"percentage of trading fee to be charged by the asset manager\",\"_vault\":\"address of balancer vault\"}},\"issueSecondary(address,address,uint256,uint256,uint256,uint256)\":{\"params\":{\"cashAmount\":\"amount of currency issued in pool\",\"currency\":\"reference to cash (settlement) token\",\"minSecurityOrder\":\"minimum order size of securities issued in pool\",\"security\":\"reference to asset issued\",\"securityOffered\":\"amount of security to issue\",\"securityOutstanding\":\"total number of securities outstanding\"}},\"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.\"},\"requestSettlement((address,bytes32,bytes32,uint256,uint256,uint256),address)\":{\"params\":{\"tradeToReport\":\"data structure holding order matching data\"}},\"setSettlementStatus(bytes32,bytes32)\":{\"params\":{\"ref\":\"reference to the trade executed\",\"status\":\"settlement status\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getSettlementRequest(bytes32)\":{\"notice\":\"Fetches a specific trade settlement request        \"},\"getSettlementRequests(bytes32,bytes32)\":{\"notice\":\"Fetches trade settlement requests for depository participant\"},\"getSubscribers(bytes32)\":{\"notice\":\"Retrieve investors in secondary pools\"},\"getTradingFeeCollected(address)\":{\"notice\":\"Fetch trading fee collected in Balancer vault\"},\"initialize(address,uint256,address,address,address,address)\":{\"notice\":\"Initializes this asset management contract\"},\"issueSecondary(address,address,uint256,uint256,uint256,uint256)\":{\"notice\":\"Joins existing (secondary) tokenized assets into pool by primary issue token holders\"},\"requestSettlement((address,bytes32,bytes32,uint256,uint256,uint256),address)\":{\"notice\":\"Used by Secondary pools to request settlement for trades\"},\"setSettlementStatus(bytes32,bytes32)\":{\"notice\":\"Sets settlement status for trades executed\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/SecondaryIssueManager.sol\":\"SecondaryIssueManager\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@balancer-labs/v2-solidity-utils/contracts/helpers/BalancerErrors.sol\":{\"keccak256\":\"0x14f18d0c0051d5412a250536a9850f2698fe1ede9e4760d94142762a039f053b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://21535a4a50a1f1acf80c543b1e44fc80671787a0364c1e3f0437e7c499f15258\",\"dweb:/ipfs/QmR9EMgjmdQRJHFrmD2Tjb9BqN2rNgvi6je5yh71oxebav\"]},\"@balancer-labs/v2-solidity-utils/contracts/helpers/ISignaturesValidator.sol\":{\"keccak256\":\"0x2fe46b13b7c8bfc6f5c539c0b73d6325813f383f551b71fb6bca8dafd06964e1\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8e651ae7a3a3652c8bb7aaa42c2cce5924310df62a923d9ec50ddb9c850d2995\",\"dweb:/ipfs/QmTHz9y18L5FD7v9GcvxGWSLJuin2KCUEYoARTgz8njce8\"]},\"@balancer-labs/v2-solidity-utils/contracts/helpers/ITemporarilyPausable.sol\":{\"keccak256\":\"0xb3e5b7c63f80b80ef3f0138eac56c397a439bf6b667fc06d5061aa869828b562\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://978d66fba0721a1a67e29a32eaddab8d1f92ab2fb2d611724ea8d0d3c9b0e95b\",\"dweb:/ipfs/QmfG4foZvx3NDZao7d4VvGzL4Uxtk8VWNJXvgo9fiAJxZv\"]},\"@balancer-labs/v2-solidity-utils/contracts/math/FixedPoint.sol\":{\"keccak256\":\"0x38720507bb6c838df83953d1ffa88b97d0e06baefa0e3e387303cb8a090a49f5\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://fd74d7d2f8881dcc5a3aa4ce732f84b2cbb15de117e1fc4735a3d58a4062524a\",\"dweb:/ipfs/QmSYxuM8HhMn3oPxZ66PbukDikGPkHs3FLD7miFbky2EfW\"]},\"@balancer-labs/v2-solidity-utils/contracts/math/LogExpMath.sol\":{\"keccak256\":\"0x66c6a4efc58bcc18d11fdc3236ec53f6044944918e86116f3aa3deee1daac8ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5deeae731108f0d2fed1ae8c6bcb2796b5a93f6c260019306d175bd3baa2988\",\"dweb:/ipfs/QmexvLdJbGMSrmaAVrZDaHVfCaAzQpV2ZybQMnfX4zXsPU\"]},\"@balancer-labs/v2-solidity-utils/contracts/math/Math.sol\":{\"keccak256\":\"0xb665c41c5d079058a53d3041d464ca5b6cac21de6a1e9ec514185c85eff2c5fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://43c8834672f4fb25263aa8bed735fe6f4cd41d3ccbacfb519dd986a09136ae3f\",\"dweb:/ipfs/QmWiQXi9jiPWAbcBkxA99qfjv1Qx3R1tgZmgbeSsp7j42m\"]},\"@balancer-labs/v2-solidity-utils/contracts/misc/IWETH.sol\":{\"keccak256\":\"0x19a0628bedbe48178a4c90509a40d750d5039677b964ec533a24361a8d97274b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c55887c89f152f00e5d65389061de28fada0e73eb5f41ebd16a3b8e65846cb1a\",\"dweb:/ipfs/QmNbVtaA44BGvKnKiCT4bEtjZu1ZD5ZJ6XrgBDh5qVEGcP\"]},\"@balancer-labs/v2-solidity-utils/contracts/openzeppelin/ERC20.sol\":{\"keccak256\":\"0x4bd56e87f0041ba666a540160962cd9f1eed11164a9a91af180550d69da4c8bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f43b33f08fe77242331b6209b35cf4f40ab38b9a6adae52adbd156603fc7b004\",\"dweb:/ipfs/QmQDr8qkAwrY5yuVizRbeMnNmaJGoVz8fqEdyKeSi7Z8eU\"]},\"@balancer-labs/v2-solidity-utils/contracts/openzeppelin/IERC20.sol\":{\"keccak256\":\"0xd828a935a72a6d182912abba290e4debb8c684c36fd756088f7acb30e0b2bb76\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e6ac013b95e9622917c5ad388dc73f0a389a76341597731746e54547aa9de8a\",\"dweb:/ipfs/QmPB8qWcRPZaDsASgQpf5a6i2YrZ4TDV3Ebi25Mn9EAdf4\"]},\"@balancer-labs/v2-solidity-utils/contracts/openzeppelin/Ownable.sol\":{\"keccak256\":\"0x53e476d8641ec8d7502efcfaa666981c22fced87c553cf8bb206790af68798c1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3eb7bbe7b8706130bd7c646766bec6d8ffb5792c20aac3b127f2a09aee9d8bc4\",\"dweb:/ipfs/QmcQdUBz6AozKU4rvBYLbZqcKy85fXPkKnhCbnthQi9k61\"]},\"@balancer-labs/v2-solidity-utils/contracts/openzeppelin/SafeMath.sol\":{\"keccak256\":\"0xafe0542eb14932a66ce6280fbe9991130ead5bbcb7836d0a822fc4a59810c100\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://140c69f688c58bbf08f7b1b6f76dd89d72f9c84a3aab8ad1194679ee0acaa6e6\",\"dweb:/ipfs/QmUCub3NpdGK1U4xjSwsCHNZnRokcM9NMhRtC2kLefYef8\"]},\"@balancer-labs/v2-vault/contracts/interfaces/IAsset.sol\":{\"keccak256\":\"0x70ecf1d48c285d78718bd2e159345677038ed8a81c74444bedd6a5c61af9aff6\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://8c7c210e449ea5d284abeaaed82e3bb3c203b57d8b3e5dfb6daedf76eaae31d1\",\"dweb:/ipfs/QmfJWLPhCG6PcHNJMLNDbAM6nd2ZVFCexCXvJ9qQmRaNbn\"]},\"@balancer-labs/v2-vault/contracts/interfaces/IAuthorizer.sol\":{\"keccak256\":\"0x792871e208bba1dad291f8d1cffad86f4afa5e2360816bd9c43481f7297155f5\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://af8ab65258e294c8ba0a5feee91208789f641181d225364b02123d38d9eec7d0\",\"dweb:/ipfs/Qmb5HUXRaSrHJafwK1H8XRjcCTnAZMShTvBNhr1ovA1j2m\"]},\"@balancer-labs/v2-vault/contracts/interfaces/IFlashLoanRecipient.sol\":{\"keccak256\":\"0x5ceb7a9b209c01659b25898622a2415414e12a7200559e57283fd511fe96c92a\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://35a6ee6cb389f2675c1b64f9813862d3503524ee05067ba88172c9298d4f5e3c\",\"dweb:/ipfs/QmZGPUaoKfRigdo2U9U3695j9wX97GRSzgiK8c6zhVjjFY\"]},\"@balancer-labs/v2-vault/contracts/interfaces/IProtocolFeesCollector.sol\":{\"keccak256\":\"0xacad6dfbdf2395aeb8b793b3cb5d9ee2702d8d5f667084ff7bfa248f64700f47\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b8a27ce7efd29cb653529a2e2c6a828f5bd973b286dc166d12a8f81426bca68a\",\"dweb:/ipfs/QmPFuddzXwjK58qDG4z1n9S9Yff865yCToAStRbdfWMo1D\"]},\"@balancer-labs/v2-vault/contracts/interfaces/IVault.sol\":{\"keccak256\":\"0x8a0904cb11d6571fdc0051b2de6b675d0e1cf8af45c1a5467d047812f1086223\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://e428d19d1bd18504c5c8a797b0a80515072f4d7fc278df73b9fec0ab8efe155d\",\"dweb:/ipfs/QmYeJPPQKAckBVvuhU9XXiZR4aSrVNu3WcfTmSsXJJYey3\"]},\"project:/contracts/SecondaryIssueManager.sol\":{\"keccak256\":\"0x36a4cde23182bb8d55e82a439f94527d939cd015d19a810e257e07206bb5be35\",\"license\":\"BUSL1.1\",\"urls\":[\"bzz-raw://77b78e3aee32c52a186d74bb08d7bea12c80647bb077bac2fba77936241f2392\",\"dweb:/ipfs/QmXNcYZqsKxPWqbQ4X2GUNUDvq6UjSDLLiVerACg5LedCR\"]},\"project:/contracts/interfaces/IFactory.sol\":{\"keccak256\":\"0x441c3a2cf365fae2c81f6bf8990efd6406bc20ece65372a83418181ce0008766\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12173165996b7a28c02cc3ca333e7b7371ffa96b07507ad98827a102db64d854\",\"dweb:/ipfs/QmXL1KhBX7GEYqE5sU2Bpeum7MwdoXzjKdQ8Noiq6PwMtt\"]},\"project:/contracts/interfaces/IOrder.sol\":{\"keccak256\":\"0x9dd8d53eb2a83fcbbcb196d9a937f0578f2b3809c0b81f37abc16a800a3c53dc\",\"license\":\"BUSL1.1\",\"urls\":[\"bzz-raw://51423294c6d889c40d42d6434d5109df5cea2ff36436419fb101d0acba7522ac\",\"dweb:/ipfs/QmSuKCuk6Gx4QDgjefVRDscsoUg89C6StB2cWnvw25KpY9\"]},\"project:/contracts/interfaces/ISecondaryIssuePool.sol\":{\"keccak256\":\"0x2f9732c285d31af8286a0fd490f3370f91a7f431fffdb068ece2e1bcbc38026c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33f49c566d565afc8cb1ff78a46d9bd0eb305bd1250a0828b4b75df70d1f8d19\",\"dweb:/ipfs/QmRDDZsY6FjkkX1U5HMUya7ab8pfZaGisvR9JatTg8WVuK\"]},\"project:/contracts/interfaces/ISecondaryIssuePoolFactory.sol\":{\"keccak256\":\"0x5e1b8432df02701e3e87cc57ea11bc62101a48fac1f359c011a01f4914656a74\",\"license\":\"BUSL1.1\",\"urls\":[\"bzz-raw://bf3f1e88cb70d687b7858de1a225e48f026e0136a42bd7ba7871225239386e0a\",\"dweb:/ipfs/QmU9xpnLnok5GtZ2QjcWV4bGUvipRhWuEqicVVWUMuZfHR\"]},\"project:/contracts/interfaces/ISecurity.sol\":{\"keccak256\":\"0xc1682b23224bb0ecd24a4b3012d66518be83b4889fc77d72d1349c6e89edf597\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e02d526937045d1b94ea1de574a858c40440f2680a890a026e4c21de553fe3df\",\"dweb:/ipfs/QmdAFt9bHaa22hTDmrApWFLqUodF1jMDoDMLrrJfwodF3v\"]},\"project:/contracts/interfaces/ISettlor.sol\":{\"keccak256\":\"0xaac3251ebb64276130f09334b9ca5ec88c7ebf15ae0bbc409b4ef810f2af8a83\",\"license\":\"BUSL1.1\",\"urls\":[\"bzz-raw://e0dc22788473be827fa41586ad798b41503586ef08cb0fa490bf4a0d62897f8f\",\"dweb:/ipfs/QmeJreBnW5tRrrDSBuj7VAibBv7ZVbHwNKEH1mU4zk3mFR\"]},\"project:/contracts/interfaces/ITrade.sol\":{\"keccak256\":\"0x5971eefd26d48a5afd8a3be49b11b1a0def2dd259863f6844ab7675c835875af\",\"license\":\"BUSL1.1\",\"urls\":[\"bzz-raw://9dbf1e2f97b4c91b9af646b0d7f56d508c431e247e1f0642f17e035ca7fa4453\",\"dweb:/ipfs/QmXKr1oBP7vmgv8xRf8BLn6xtCbUQLqU3xQjGZMxavC5RS\"]},\"project:/contracts/interfaces/VerifiedClient.sol\":{\"keccak256\":\"0xc07d8f7ca84f495b2c124ca6e6ae8ccccc49360eb7a2de6bf12f8e8ddc32571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7dc9da4650c81341695284d924d73b0b59dd50770e8b27ae9fb8c4b84d63c75\",\"dweb:/ipfs/QmXvSwN1eqhrtDVPozZ8FF6LYhMF6hFJFpRuZbd9mo2Zwd\"]}},\"version\":1}",
    "bytecode": "0x608060405234801561001057600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3613a108061005f6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80638da5cb5b11610097578063b431657c11610066578063b431657c146101e7578063bfa0caa7146101fa578063c9fca3c71461021a578063f2fde38b1461023a576100f5565b80638da5cb5b14610199578063905ec5ce146101ae5780639f2a0ccc146101c1578063a2dc2ab7146101d4576100f5565b806369fe0e2d116100d357806369fe0e2d1461014b578063715018a61461015e57806371eedc7f1461016657806379a7dc0e14610179576100f5565b806304967159146100fa5780632d9167461461010f57806339c79e0c14610138575b600080fd5b61010d6101083660046131da565b61024d565b005b61012261011d366004612f3e565b610332565b60405161012f91906135f8565b60405180910390f35b61010d6101463660046131aa565b610465565b61010d6101593660046131aa565b6109cb565b61010d6109ee565b61010d6101743660046132a2565b610a44565b61018c6101873660046131aa565b6111f2565b60405161012f91906138bf565b6101a16112cd565b60405161012f919061347d565b61010d6101bc366004612fee565b6112dc565b6101226101cf366004612f76565b611c2b565b61010d6101e2366004613046565b611c58565b61010d6101f5366004612fae565b611cca565b61020d6102083660046131aa565b611da5565b60405161012f919061356f565b61022d6102283660046131da565b611f16565b60405161012f919061352b565b61010d610248366004612f3e565b612046565b60008281526006602052604080822060030154600f54915163e0a87de160e01b815233936001600160a01b03928316939092169063e0a87de19061029590859060040161347d565b60206040518083038186803b1580156102ad57600080fd5b505afa1580156102c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e59190612f5a565b9050826001600160a01b0316816001600160a01b0316146103215760405162461bcd60e51b815260040161031890613723565b60405180910390fd5b61032b85856120c4565b5050505050565b6010546000906001600160a01b0316331461035f5760405162461bcd60e51b8152600401610318906137b2565b6001600160a01b0382166000908152600d60205260409020546103828180612b07565b6001600160a01b038085166000818152600d60205260409081902093909355601054925163a9059cbb60e01b8152909263a9059cbb926103c9929116908590600401613512565b602060405180830381600087803b1580156103e357600080fd5b505af11580156103f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041b919061318a565b50306001600160a01b03167feaad90c8664cdf61d60bd7ba6745a881fd1c38d9f4ff0b373b4365cdeeb0f9e8824260405161045792919061346f565b60405180910390a292915050565b6000818152600a602052604080822054600f54915163e0a87de160e01b815233936001600160a01b03928316939092169063e0a87de1906104aa90859060040161347d565b60206040518083038186803b1580156104c257600080fd5b505afa1580156104d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fa9190612f5a565b9050826001600160a01b0316816001600160a01b03161461052d5760405162461bcd60e51b815260040161031890613723565b6000848152600960209081526040808320548151636945c1fd60e01b815291516001600160a01b0390911692636945c1fd9260048082019391829003018186803b15801561057a57600080fd5b505afa15801561058e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b29190612f5a565b600254604051631f29a8cd60e31b81529192506060916001600160a01b039091169063f94d4668906105e89089906004016135f8565b60006040518083038186803b15801561060057600080fd5b505afa158015610614573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261063c91908101906130be565b50509050606061064b82612b1d565b90506060825167ffffffffffffffff8111801561066757600080fd5b50604051908082528060200260200182016040528015610691578160200160208202803683370190505b50905061069c612ddd565b6040518060800160405280848152602001838152602001600160006040516020016106c89291906136a1565b60408051808303601f1901815291815290825260006020909201919091526002549051638bdb391360e01b81529192506001600160a01b031690638bdb39139061071c908c90309081908790600401613601565b600060405180830381600087803b15801561073657600080fd5b505af115801561074a573d6000803e3d6000fd5b50505060008a8152600a6020526040908190205490518b92507f56eadf552f1d54f8f73fbbf801097c1c4d7bb3d77d5ac2bebfd0a8151642d55a9161079c916001600160a01b03909116904290613512565b60405180910390a26000898152600b6020526040908190205490516370a0823160e01b81526001600160a01b038088169263a9059cbb9291169083906370a08231906107ec90309060040161347d565b60206040518083038186803b15801561080457600080fd5b505afa158015610818573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083c91906131c2565b6040518363ffffffff1660e01b8152600401610859929190613512565b602060405180830381600087803b15801561087357600080fd5b505af1158015610887573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ab919061318a565b506000898152600a6020818152604080842054600b8352938190205492909152516370a0823160e01b81526001600160a01b039283169263a9059cbb92169083906370a082319061090090309060040161347d565b60206040518083038186803b15801561091857600080fd5b505afa15801561092c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095091906131c2565b6040518363ffffffff1660e01b815260040161096d929190613512565b602060405180830381600087803b15801561098757600080fd5b505af115801561099b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109bf919061318a565b50505050505050505050565b6109e9336109d76112cd565b6001600160a01b0316146101aa612b20565b600355565b6109fa336109d76112cd565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b33600090815260086020526040902054610a705760405162461bcd60e51b815260040161031890613891565b610a78612e07565b6020830151604051632bbc239560e11b81526001600160a01b03841691635778472a91610aa891906004016135f8565b60a06040518083038186803b158015610ac057600080fd5b505afa158015610ad4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af89190613228565b9050610b02612e07565b6040808501519051632bbc239560e11b81526001600160a01b03851691635778472a91610b3291906004016135f8565b60a06040518083038186803b158015610b4a57600080fd5b505afa158015610b5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b829190613228565b90506000836001600160a01b0316632541897f6040518163ffffffff1660e01b815260040160206040518083038186803b158015610bbf57600080fd5b505afa158015610bd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf79190612f5a565b90506000846001600160a01b0316636945c1fd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c3457600080fd5b505afa158015610c48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6c9190612f5a565b90506000826001600160a01b031685602001516001600160a01b031614610c94578351610c97565b84515b90506000826001600160a01b031685602001516001600160a01b031614610cbf578551610cc2565b84515b60808901519091506000610cd586612b32565b90506000610d08610cf28c60a00151610ced89612c3e565b612cd9565b610d038d60800151610ced8b612c3e565b612ce5565b9050610d12612e36565b604051806101a001604052808c6001600160a01b03168152602001876001600160a01b03168152602001866001600160a01b03168152602001896001600160a01b03168152602001886001600160a01b031681526020016650656e64696e6760c81b8152602001848152602001838152602001858152602001610d9c8e60a00151610ced8b612c3e565b81526020018d606001518152602001896001600160a01b03168c602001516001600160a01b031614610dd2578d60400151610dd8565b8d602001515b8152602001886001600160a01b03168b602001516001600160a01b031614610e04578d60200151610e0a565b8d604001515b815250905060008c602001518d60400151604051602001610e2c92919061346f565b60408051808303601f1901815291815281516020928301206000818152600680855290839020865181546001600160a01b03199081166001600160a01b0392831617835595880151600183018054881691831691909117905593870151600282018054871691861691909117905560608701516003820180548716918616919091179055608087015160048201805490961694169390931790935560a0850151600583015560c08501519282019290925560e0840151600782015561010084015160088201556101208401516009820155610140840151600a820155610160840151600b820155610180840151600c909101559050610f29612ea2565b6040518060a00160405280886001600160a01b031681526020018b6001600160a01b031681526020018a6001600160a01b0316815260200187815260200185815250905060008d6001600160a01b03166338fff2d06040518163ffffffff1660e01b815260040160206040518083038186803b158015610fa857600080fd5b505afa158015610fbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe091906131c2565b9050600c600082815260200190815260200160002082908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015550508a6001600160a01b03167f0dd4a121adafd4537e046c792647be3f3978f362ad83b50586e249ae8641de2f828b8b8e8c88608001518a8c60c001514260405161110d9998979695949392919061363d565b60405180910390a260c084015160009081526007602090815260408083208054600181018255908452918320909101859055600f54905163e0a87de160e01b81526001600160a01b039091169063e0a87de19061116e908f9060040161347d565b60206040518083038186803b15801561118657600080fd5b505afa15801561119a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111be9190612f5a565b6001600160a01b031614156111e1576111e18366436f6e6669726d60c81b6120c4565b505050505050505050505050505050565b6111fa612e36565b816112175760405162461bcd60e51b815260040161031890613750565b5060009081526006602081815260409283902083516101a08101855281546001600160a01b0390811682526001830154811693820193909352600282015483169481019490945260038101548216606085015260048101549091166080840152600581015460a08401529081015460c0830152600781015460e083015260088101546101008301526009810154610120830152600a810154610140830152600b810154610160830152600c015461018082015290565b6000546001600160a01b031690565b600e54604051634427673360e01b815233916000916001600160a01b039091169063442767339061131190859060040161347d565b60606040518083038186803b15801561132957600080fd5b505afa15801561133d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136191906131fb565b505090508061044560f41b146113895760405162461bcd60e51b81526004016103189061377b565b6040516370a0823160e01b815285906001600160a01b038a16906370a08231906113b790339060040161347d565b60206040518083038186803b1580156113cf57600080fd5b505afa1580156113e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140791906131c2565b101580156114155750838510155b801561149d57506040516370a0823160e01b815283906001600160a01b038916906370a082319061144a90339060040161347d565b60206040518083038186803b15801561146257600080fd5b505afa158015611476573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149a91906131c2565b10155b6114b95760405162461bcd60e51b8152600401610318906137e9565b6040516323b872dd60e01b81526001600160a01b038816906323b872dd906114e990339030908890600401613491565b602060405180830381600087803b15801561150357600080fd5b505af1158015611517573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153b919061318a565b506040516323b872dd60e01b81526001600160a01b038916906323b872dd9061156c90339030908a90600401613491565b602060405180830381600087803b15801561158657600080fd5b505af115801561159a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115be919061318a565b50600f54604051634a161b2760e01b81526001600160a01b03808b16921690634a161b27906115f1908c9060040161347d565b60206040518083038186803b15801561160957600080fd5b505afa15801561161d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116419190612f5a565b6001600160a01b0316146116b6576002546040516372e0f85360e01b81526001600160a01b038a8116926372e0f8539261168392909116908a90600401613512565b600060405180830381600087803b15801561169d57600080fd5b505af11580156116b1573d6000803e3d6000fd5b505050505b600154600354604051631d3731e960e21b81526000926001600160a01b0316916374dcc7a4916116ee918d918d918b91600401613820565b602060405180830381600087803b15801561170857600080fd5b505af115801561171c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117409190612f5a565b90506000816001600160a01b03166338fff2d06040518163ffffffff1660e01b815260040160206040518083038186803b15801561177d57600080fd5b505afa158015611791573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b591906131c2565b905089600a600083815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555033600b600083815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055508060086000846001600160a01b03166001600160a01b0316815260200190815260200160002081905550816009600083815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055506060600260009054906101000a90046001600160a01b03166001600160a01b031663f94d4668836040518263ffffffff1660e01b81526004016118cc91906135f8565b60006040518083038186803b1580156118e457600080fd5b505afa1580156118f8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261192091908101906130be565b50509050606061192f82612b1d565b90506060825167ffffffffffffffff8111801561194b57600080fd5b50604051908082528060200260200182016040528015611975578160200160208202803683370190505b5060025460405163095ea7b360e01b81529192506001600160a01b03808f169263095ea7b3926119ab9216908c90600401613512565b602060405180830381600087803b1580156119c557600080fd5b505af11580156119d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119fd919061318a565b508c6001600160a01b031663095ea7b3600260009054906101000a90046001600160a01b03168c6040518363ffffffff1660e01b8152600401611a41929190613512565b602060405180830381600087803b158015611a5b57600080fd5b505af1158015611a6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a93919061318a565b5060005b8351811015611b61578d6001600160a01b0316848281518110611ab657fe5b60200260200101516001600160a01b03161415611aeb578a828281518110611ada57fe5b602002602001018181525050611b59565b8c6001600160a01b0316848281518110611b0157fe5b60200260200101516001600160a01b03161415611b255788828281518110611ada57fe5b611b406dffffffffffffffffffffffffffff620f4240612b07565b828281518110611b4c57fe5b6020026020010181815250505b600101611a97565b50611b6a612ddd565b6040518060800160405280848152602001838152602001600084604051602001611b959291906136c1565b60408051808303601f190181529181529082526000602090920191909152600254905163172b958560e31b81529192506001600160a01b03169063b95cac2890611be9908890309081908790600401613601565b600060405180830381600087803b158015611c0357600080fd5b505af1158015611c17573d6000803e3d6000fd5b505050505050505050505050505050505050565b6001600160a01b038083166000908152600560209081526040808320938516835292905220545b92915050565b611c64336109d76112cd565b600180546001600160a01b03199081166001600160a01b0398891617909155600395909555600e805486169487169490941790935560028054851692861692909217909155600f8054841692851692909217909155601080549092169216919091179055565b600e54604051634427673360e01b815233916000916001600160a01b0390911690634427673390611cff90859060040161347d565b60606040518083038186803b158015611d1757600080fd5b505afa158015611d2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d4f91906131fb565b505090508061044560f41b14611d775760405162461bcd60e51b81526004016103189061377b565b50506001600160a01b0392831660009081526005602090815260408083209490951682529290925291902055565b6000818152600a602052604080822054600f54915163e0a87de160e01b815260609333936001600160a01b0393841693919291169063e0a87de190611dee90859060040161347d565b60206040518083038186803b158015611e0657600080fd5b505afa158015611e1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3e9190612f5a565b9050826001600160a01b0316816001600160a01b031614611e715760405162461bcd60e51b815260040161031890613723565b6000858152600c6020908152604080832080548251818502810185019093528083529193909284015b82821015611f085760008481526020908190206040805160a0810182526005860290920180546001600160a01b039081168452600180830154821685870152600283015490911692840192909252600381015460608401526004015460808301529083529092019101611e9a565b505050509350505050919050565b6000818152600a602052604080822054600f54915163e0a87de160e01b815260609333936001600160a01b0393841693919291169063e0a87de190611f5f90859060040161347d565b60206040518083038186803b158015611f7757600080fd5b505afa158015611f8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611faf9190612f5a565b9050826001600160a01b0316816001600160a01b031614611fe25760405162461bcd60e51b815260040161031890613723565b6000868152600760209081526040918290208054835181840281018401909452808452909183018282801561203657602002820191906000526020600020905b815481526020019060010190808311612022575b5050505050935050505092915050565b612052336109d76112cd565b6120696001600160a01b03821615156101ab612b20565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000828152600660208190526040822001549066436f6e6669726d60c81b8314806120f75750826514995a9958dd60d21b145b6121135760405162461bcd60e51b8152600401610318906136ec565b600084815260066020908152604080832060038101546001600160a01b039081168552600584528285206004909201541684529091529020541561219e576000848152600660209081526040808320600981015460038201546001600160a01b039081168652600585528386206004909301541685529252909120546121999190612d36565b6121bd565b6000848152600660205260409020600901546003546121bd9190612d36565b600481815560008681526006602052604081209091015490916121ec91610d03906001600160a01b0316612c3e565b90508366436f6e6669726d60c81b148015612222575060008581526006602052604090206005015466436f6e6669726d60c81b14155b801561224657506000858152600660205260409020600501546311985a5b60e21b14155b15612772576000858152600660209081526040808320600401546001600160a01b03168352600d90915290205461227d9082612d6c565b6000868152600660208181526040808420600480820180546001600160a01b039081168852600d865284882098909855958c905293909252925460019091015492516323b872dd60e01b8152908416936323b872dd936122e4939116913091879101613491565b602060405180830381600087803b1580156122fe57600080fd5b505af1158015612312573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612336919061318a565b156124cb57600085815260066020526040908190208054600b820154600c830154600a9093015493516381b5da1d60e01b81526001600160a01b03909216936381b5da1d9361238a9390919060040161368b565b600060405180830381600087803b1580156123a457600080fd5b505af11580156123b8573d6000803e3d6000fd5b5050505060005b6000848152600760205260409020548110156124a25760008481526007602052604090208054879190839081106123f257fe5b9060005260206000200154141561249a576000848152600760205260409020546000190181141561244757600084815260076020526040902080548290811061243757fe5b600091825260208220015561249a565b600084815260076020526040902080546001830190811061246457fe5b906000526020600020015460076000868152602001908152602001600020828154811061248d57fe5b6000918252602090912001555b6001016123bf565b50600085815260066020526040902066436f6e6669726d60c81b6005909101556001915061276d565b6000858152600660205260408120600981015460049091015461250091906124fb906001600160a01b0316612c3e565b612d7e565b600087815260066020526040908190208054600b820154600883015460079093015493516307ef938960e41b81529495506001600160a01b0390911693637ef9389093612550939160040161368b565b600060405180830381600087803b15801561256a57600080fd5b505af115801561257e573d6000803e3d6000fd5b505050600087815260066020526040908190208054600c82015460079092015492516307ef938960e41b81526001600160a01b039091169350637ef93890926125cd929186919060040161368b565b600060405180830381600087803b1580156125e757600080fd5b505af11580156125fb573d6000803e3d6000fd5b50505060008781526006602052604090819020600480820154600183015460029093015493516323b872dd60e01b81526001600160a01b0391821695506323b872dd9461265094831693921691879101613491565b602060405180830381600087803b15801561266a57600080fd5b505af115801561267e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126a2919061318a565b506000868152600660205260409081902060038101546002820154600183015460089093015493516323b872dd60e01b81526001600160a01b03928316946323b872dd946126f894938416931691600401613491565b602060405180830381600087803b15801561271257600080fd5b505af1158015612726573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061274a919061318a565b505060008581526006602052604090206311985a5b60e21b600590910155600191505b612948565b836514995a9958dd60d21b1480156127a457506000858152600660205260409020600501546514995a9958dd60d21b14155b1561294857600085815260066020526040812060098101546004909101546127d991906124fb906001600160a01b0316612c3e565b60008781526006602052604090819020600480820154600183015460029093015493516323b872dd60e01b81529495506001600160a01b03908116946323b872dd9461282d94831693921691879101613491565b602060405180830381600087803b15801561284757600080fd5b505af115801561285b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061287f919061318a565b506000868152600660205260409081902060038101546002820154600183015460089093015493516323b872dd60e01b81526001600160a01b03928316946323b872dd946128d594938416931691600401613491565b602060405180830381600087803b1580156128ef57600080fd5b505af1158015612903573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612927919061318a565b505060008581526006602052604090206514995a9958dd60d21b6005909101555b600085815260066020908152604080832054815163038fff2d60e41b815291516001600160a01b03909116926338fff2d09260048082019391829003018186803b15801561299557600080fd5b505afa1580156129a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129cd91906131c2565b9050807f85da739f35224c9e70f00cc38f01a704522dd70184a2105bf841163edb96ba506006600089815260200190815260200160002060010160009054906101000a90046001600160a01b0316600660008a815260200190815260200160002060020160009054906101000a90046001600160a01b0316600660008b815260200190815260200160002060080154600660008c815260200190815260200160002060030160009054906101000a90046001600160a01b0316600660008d815260200190815260200160002060070154600660008e815260200190815260200160002060040160009054906101000a90046001600160a01b0316600660008f8152602001908152602001600020600501548e8b42604051612af79a999897969594939291906134b5565b60405180910390a2505050505050565b6000612b17838311156001612b20565b50900390565b90565b81612b2e57612b2e81612d8a565b5050565b600f5460405163e0a87de160e01b815260009182916001600160a01b039091169063e0a87de190612b6790869060040161347d565b60206040518083038186803b158015612b7f57600080fd5b505afa158015612b93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bb79190612f5a565b600e5460405162157d5560e61b81529192506001600160a01b03169063055f554090612be790849060040161347d565b60206040518083038186803b158015612bff57600080fd5b505afa158015612c13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c3791906131c2565b9392505050565b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015612c7a57600080fd5b505afa158015612c8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb29190613320565b60ff1690506000612cc4601283612b07565b600a0a670de0b6b3a764000002949350505050565b6000612c378383612d36565b6000612cf48215156004612b20565b82612d0157506000611c52565b670de0b6b3a764000083810290612d2490858381612d1b57fe5b04146005612b20565b828181612d2d57fe5b04915050611c52565b6000828202612d5a841580612d53575083858381612d5057fe5b04145b6003612b20565b670de0b6b3a764000090049392505050565b6000828201612c378482101583612b20565b6000612c378383612ce5565b62461bcd60e51b6000908152602060045260076024526642414c23000030600a808404818106603090810160081b95839006959095019082900491820690940160101b939093010160c81b604452606490fd5b60405180608001604052806060815260200160608152602001606081526020016000151581525090565b6040805160a0810182526000808252602082018190529091820190815260200160008152602001600081525090565b604080516101a081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081019190915290565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b600082601f830112612ee0578081fd5b8151612ef3612eee826139a2565b61397b565b818152915060208083019084810181840286018201871015612f1457600080fd5b60005b84811015612f3357815184529282019290820190600101612f17565b505050505092915050565b600060208284031215612f4f578081fd5b8135612c37816139c2565b600060208284031215612f6b578081fd5b8151612c37816139c2565b60008060408385031215612f88578081fd5b8235612f93816139c2565b91506020830135612fa3816139c2565b809150509250929050565b600080600060608486031215612fc2578081fd5b8335612fcd816139c2565b92506020840135612fdd816139c2565b929592945050506040919091013590565b60008060008060008060c08789031215613006578182fd5b8635613011816139c2565b95506020870135613021816139c2565b95989597505050506040840135936060810135936080820135935060a0909101359150565b60008060008060008060c0878903121561305e578182fd5b8635613069816139c2565b9550602087013594506040870135613080816139c2565b93506060870135613090816139c2565b925060808701356130a0816139c2565b915060a08701356130b0816139c2565b809150509295509295509295565b6000806000606084860312156130d2578081fd5b835167ffffffffffffffff808211156130e9578283fd5b818601915086601f8301126130fc578283fd5b815161310a612eee826139a2565b80828252602080830192508086018b82838702890101111561312a578788fd5b8796505b84871015613155578051613141816139c2565b84526001969096019592810192810161312e565b50890151909750935050508082111561316c578283fd5b5061317986828701612ed0565b925050604084015190509250925092565b60006020828403121561319b578081fd5b81518015158114612c37578182fd5b6000602082840312156131bb578081fd5b5035919050565b6000602082840312156131d3578081fd5b5051919050565b600080604083850312156131ec578182fd5b50508035926020909101359150565b60008060006060848603121561320f578081fd5b8351925060208401519150604084015190509250925092565b600060a08284031215613239578081fd5b61324360a061397b565b825161324e816139c2565b8152602083015161325e816139c2565b6020820152604083015160038110613274578283fd5b604082015260608301516005811061328a578283fd5b60608201526080928301519281019290925250919050565b60008082840360e08112156132b5578283fd5b60c08112156132c2578283fd5b506132cd60c061397b565b83356132d8816139c2565b808252506020840135602082015260408401356040820152606084013560608201526080840135608082015260a084013560a08201528092505060c0830135612fa3816139c2565b600060208284031215613331578081fd5b815160ff81168114612c37578182fd5b6001600160a01b03169052565b6000815180845260208085019450808401835b8381101561337d57815187529582019590820190600101613361565b509495945050505050565b15159052565b60008151808452815b818110156133b357602081850181015186830182015201613397565b818111156133c45782602083870101525b50601f01601f19169290920160200192915050565b8051608080845281519084018190526000916020919082019060a0860190845b8181101561341e5783516001600160a01b0316835292840192918401916001016133f9565b505082850151915085810383870152613437818361334e565b9250505060408301518482036040860152613452828261338e565b91505060608301516134676060860182613388565b509392505050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b039a8b168152988a1660208a0152604089019790975294881660608801526080870193909352951660a085015260c084019490945260e08301939093526101008201929092526101208101919091526101400190565b6001600160a01b03929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b8181101561356357835183529284019291840191600101613547565b50909695505050505050565b602080825282518282018190526000919060409081850190868401855b828110156135eb57815180516001600160a01b03168552868101516135b388870182613341565b50858101516135c487870182613341565b50606081810151908601526080908101519085015260a0909301929085019060010161358c565b5091979650505050505050565b90815260200190565b8481526001600160a01b03848116602083015283166040820152608060608201819052600090613633908301846133d9565b9695505050505050565b9889526001600160a01b0397881660208a01529587166040890152939095166060870152608086019190915260a085015260c084019290925260e08301919091526101008201526101200190565b9283526020830191909152604082015260600190565b60408101600284106136af57fe5b92815260ff9190911660209091015290565b6000600484106136cd57fe5b838252604060208301526136e4604083018461334e565b949350505050565b60208082526019908201527f536574746c656d656e742073746174757320696e76616c696400000000000000604082015260600190565b6020808252601390820152724f6e6c79206973737565206d616e616765727360681b604082015260600190565b602080825260119082015270496e76616c6964207265666572656e636560781b604082015260600190565b6020808252601b908201527f4f6e6c79204465706f736974617279207061727469636970616e740000000000604082015260600190565b6020808252601f908201527f556e617574686f72697a656420636f6c6c656374696f6e207265717565737400604082015260600190565b60208082526019908201527f4e6f2062616c616e636520746f2063726561746520706f6f6c00000000000000604082015260600190565b60c0808252601390820152722b32b934b334b2b2102837b7b6102a37b5b2b760691b60e0820152610100602082018190526003908201526215941560ea1b6101208201526001600160a01b039485166040820152929093166060830152608082015260a08101919091526101400190565b602080825260149082015273125b9d985b1a59081c1bdbdb081c995c5d595cdd60621b604082015260600190565b60006101a0820190506138d3828451613341565b60208301516138e56020840182613341565b5060408301516138f86040840182613341565b50606083015161390b6060840182613341565b50608083015161391e6080840182613341565b5060a0838101519083015260c0808401519083015260e08084015190830152610100808401519083015261012080840151908301526101408084015190830152610160808401519083015261018092830151929091019190915290565b60405181810167ffffffffffffffff8111828210171561399a57600080fd5b604052919050565b600067ffffffffffffffff8211156139b8578081fd5b5060209081020190565b6001600160a01b03811681146139d757600080fd5b5056fea2646970667358221220248986833c041ed56b85c2640c88c223b75b8f8ad13618ea8eb4da5831aaff3764736f6c63430007010033",
    "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80638da5cb5b11610097578063b431657c11610066578063b431657c146101e7578063bfa0caa7146101fa578063c9fca3c71461021a578063f2fde38b1461023a576100f5565b80638da5cb5b14610199578063905ec5ce146101ae5780639f2a0ccc146101c1578063a2dc2ab7146101d4576100f5565b806369fe0e2d116100d357806369fe0e2d1461014b578063715018a61461015e57806371eedc7f1461016657806379a7dc0e14610179576100f5565b806304967159146100fa5780632d9167461461010f57806339c79e0c14610138575b600080fd5b61010d6101083660046131da565b61024d565b005b61012261011d366004612f3e565b610332565b60405161012f91906135f8565b60405180910390f35b61010d6101463660046131aa565b610465565b61010d6101593660046131aa565b6109cb565b61010d6109ee565b61010d6101743660046132a2565b610a44565b61018c6101873660046131aa565b6111f2565b60405161012f91906138bf565b6101a16112cd565b60405161012f919061347d565b61010d6101bc366004612fee565b6112dc565b6101226101cf366004612f76565b611c2b565b61010d6101e2366004613046565b611c58565b61010d6101f5366004612fae565b611cca565b61020d6102083660046131aa565b611da5565b60405161012f919061356f565b61022d6102283660046131da565b611f16565b60405161012f919061352b565b61010d610248366004612f3e565b612046565b60008281526006602052604080822060030154600f54915163e0a87de160e01b815233936001600160a01b03928316939092169063e0a87de19061029590859060040161347d565b60206040518083038186803b1580156102ad57600080fd5b505afa1580156102c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102e59190612f5a565b9050826001600160a01b0316816001600160a01b0316146103215760405162461bcd60e51b815260040161031890613723565b60405180910390fd5b61032b85856120c4565b5050505050565b6010546000906001600160a01b0316331461035f5760405162461bcd60e51b8152600401610318906137b2565b6001600160a01b0382166000908152600d60205260409020546103828180612b07565b6001600160a01b038085166000818152600d60205260409081902093909355601054925163a9059cbb60e01b8152909263a9059cbb926103c9929116908590600401613512565b602060405180830381600087803b1580156103e357600080fd5b505af11580156103f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041b919061318a565b50306001600160a01b03167feaad90c8664cdf61d60bd7ba6745a881fd1c38d9f4ff0b373b4365cdeeb0f9e8824260405161045792919061346f565b60405180910390a292915050565b6000818152600a602052604080822054600f54915163e0a87de160e01b815233936001600160a01b03928316939092169063e0a87de1906104aa90859060040161347d565b60206040518083038186803b1580156104c257600080fd5b505afa1580156104d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104fa9190612f5a565b9050826001600160a01b0316816001600160a01b03161461052d5760405162461bcd60e51b815260040161031890613723565b6000848152600960209081526040808320548151636945c1fd60e01b815291516001600160a01b0390911692636945c1fd9260048082019391829003018186803b15801561057a57600080fd5b505afa15801561058e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b29190612f5a565b600254604051631f29a8cd60e31b81529192506060916001600160a01b039091169063f94d4668906105e89089906004016135f8565b60006040518083038186803b15801561060057600080fd5b505afa158015610614573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261063c91908101906130be565b50509050606061064b82612b1d565b90506060825167ffffffffffffffff8111801561066757600080fd5b50604051908082528060200260200182016040528015610691578160200160208202803683370190505b50905061069c612ddd565b6040518060800160405280848152602001838152602001600160006040516020016106c89291906136a1565b60408051808303601f1901815291815290825260006020909201919091526002549051638bdb391360e01b81529192506001600160a01b031690638bdb39139061071c908c90309081908790600401613601565b600060405180830381600087803b15801561073657600080fd5b505af115801561074a573d6000803e3d6000fd5b50505060008a8152600a6020526040908190205490518b92507f56eadf552f1d54f8f73fbbf801097c1c4d7bb3d77d5ac2bebfd0a8151642d55a9161079c916001600160a01b03909116904290613512565b60405180910390a26000898152600b6020526040908190205490516370a0823160e01b81526001600160a01b038088169263a9059cbb9291169083906370a08231906107ec90309060040161347d565b60206040518083038186803b15801561080457600080fd5b505afa158015610818573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083c91906131c2565b6040518363ffffffff1660e01b8152600401610859929190613512565b602060405180830381600087803b15801561087357600080fd5b505af1158015610887573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ab919061318a565b506000898152600a6020818152604080842054600b8352938190205492909152516370a0823160e01b81526001600160a01b039283169263a9059cbb92169083906370a082319061090090309060040161347d565b60206040518083038186803b15801561091857600080fd5b505afa15801561092c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095091906131c2565b6040518363ffffffff1660e01b815260040161096d929190613512565b602060405180830381600087803b15801561098757600080fd5b505af115801561099b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109bf919061318a565b50505050505050505050565b6109e9336109d76112cd565b6001600160a01b0316146101aa612b20565b600355565b6109fa336109d76112cd565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b33600090815260086020526040902054610a705760405162461bcd60e51b815260040161031890613891565b610a78612e07565b6020830151604051632bbc239560e11b81526001600160a01b03841691635778472a91610aa891906004016135f8565b60a06040518083038186803b158015610ac057600080fd5b505afa158015610ad4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af89190613228565b9050610b02612e07565b6040808501519051632bbc239560e11b81526001600160a01b03851691635778472a91610b3291906004016135f8565b60a06040518083038186803b158015610b4a57600080fd5b505afa158015610b5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b829190613228565b90506000836001600160a01b0316632541897f6040518163ffffffff1660e01b815260040160206040518083038186803b158015610bbf57600080fd5b505afa158015610bd3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf79190612f5a565b90506000846001600160a01b0316636945c1fd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610c3457600080fd5b505afa158015610c48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6c9190612f5a565b90506000826001600160a01b031685602001516001600160a01b031614610c94578351610c97565b84515b90506000826001600160a01b031685602001516001600160a01b031614610cbf578551610cc2565b84515b60808901519091506000610cd586612b32565b90506000610d08610cf28c60a00151610ced89612c3e565b612cd9565b610d038d60800151610ced8b612c3e565b612ce5565b9050610d12612e36565b604051806101a001604052808c6001600160a01b03168152602001876001600160a01b03168152602001866001600160a01b03168152602001896001600160a01b03168152602001886001600160a01b031681526020016650656e64696e6760c81b8152602001848152602001838152602001858152602001610d9c8e60a00151610ced8b612c3e565b81526020018d606001518152602001896001600160a01b03168c602001516001600160a01b031614610dd2578d60400151610dd8565b8d602001515b8152602001886001600160a01b03168b602001516001600160a01b031614610e04578d60200151610e0a565b8d604001515b815250905060008c602001518d60400151604051602001610e2c92919061346f565b60408051808303601f1901815291815281516020928301206000818152600680855290839020865181546001600160a01b03199081166001600160a01b0392831617835595880151600183018054881691831691909117905593870151600282018054871691861691909117905560608701516003820180548716918616919091179055608087015160048201805490961694169390931790935560a0850151600583015560c08501519282019290925560e0840151600782015561010084015160088201556101208401516009820155610140840151600a820155610160840151600b820155610180840151600c909101559050610f29612ea2565b6040518060a00160405280886001600160a01b031681526020018b6001600160a01b031681526020018a6001600160a01b0316815260200187815260200185815250905060008d6001600160a01b03166338fff2d06040518163ffffffff1660e01b815260040160206040518083038186803b158015610fa857600080fd5b505afa158015610fbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe091906131c2565b9050600c600082815260200190815260200160002082908060018154018082558091505060019003906000526020600020906005020160009091909190915060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015550508a6001600160a01b03167f0dd4a121adafd4537e046c792647be3f3978f362ad83b50586e249ae8641de2f828b8b8e8c88608001518a8c60c001514260405161110d9998979695949392919061363d565b60405180910390a260c084015160009081526007602090815260408083208054600181018255908452918320909101859055600f54905163e0a87de160e01b81526001600160a01b039091169063e0a87de19061116e908f9060040161347d565b60206040518083038186803b15801561118657600080fd5b505afa15801561119a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111be9190612f5a565b6001600160a01b031614156111e1576111e18366436f6e6669726d60c81b6120c4565b505050505050505050505050505050565b6111fa612e36565b816112175760405162461bcd60e51b815260040161031890613750565b5060009081526006602081815260409283902083516101a08101855281546001600160a01b0390811682526001830154811693820193909352600282015483169481019490945260038101548216606085015260048101549091166080840152600581015460a08401529081015460c0830152600781015460e083015260088101546101008301526009810154610120830152600a810154610140830152600b810154610160830152600c015461018082015290565b6000546001600160a01b031690565b600e54604051634427673360e01b815233916000916001600160a01b039091169063442767339061131190859060040161347d565b60606040518083038186803b15801561132957600080fd5b505afa15801561133d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136191906131fb565b505090508061044560f41b146113895760405162461bcd60e51b81526004016103189061377b565b6040516370a0823160e01b815285906001600160a01b038a16906370a08231906113b790339060040161347d565b60206040518083038186803b1580156113cf57600080fd5b505afa1580156113e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140791906131c2565b101580156114155750838510155b801561149d57506040516370a0823160e01b815283906001600160a01b038916906370a082319061144a90339060040161347d565b60206040518083038186803b15801561146257600080fd5b505afa158015611476573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149a91906131c2565b10155b6114b95760405162461bcd60e51b8152600401610318906137e9565b6040516323b872dd60e01b81526001600160a01b038816906323b872dd906114e990339030908890600401613491565b602060405180830381600087803b15801561150357600080fd5b505af1158015611517573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153b919061318a565b506040516323b872dd60e01b81526001600160a01b038916906323b872dd9061156c90339030908a90600401613491565b602060405180830381600087803b15801561158657600080fd5b505af115801561159a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115be919061318a565b50600f54604051634a161b2760e01b81526001600160a01b03808b16921690634a161b27906115f1908c9060040161347d565b60206040518083038186803b15801561160957600080fd5b505afa15801561161d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116419190612f5a565b6001600160a01b0316146116b6576002546040516372e0f85360e01b81526001600160a01b038a8116926372e0f8539261168392909116908a90600401613512565b600060405180830381600087803b15801561169d57600080fd5b505af11580156116b1573d6000803e3d6000fd5b505050505b600154600354604051631d3731e960e21b81526000926001600160a01b0316916374dcc7a4916116ee918d918d918b91600401613820565b602060405180830381600087803b15801561170857600080fd5b505af115801561171c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117409190612f5a565b90506000816001600160a01b03166338fff2d06040518163ffffffff1660e01b815260040160206040518083038186803b15801561177d57600080fd5b505afa158015611791573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b591906131c2565b905089600a600083815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555033600b600083815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055508060086000846001600160a01b03166001600160a01b0316815260200190815260200160002081905550816009600083815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055506060600260009054906101000a90046001600160a01b03166001600160a01b031663f94d4668836040518263ffffffff1660e01b81526004016118cc91906135f8565b60006040518083038186803b1580156118e457600080fd5b505afa1580156118f8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261192091908101906130be565b50509050606061192f82612b1d565b90506060825167ffffffffffffffff8111801561194b57600080fd5b50604051908082528060200260200182016040528015611975578160200160208202803683370190505b5060025460405163095ea7b360e01b81529192506001600160a01b03808f169263095ea7b3926119ab9216908c90600401613512565b602060405180830381600087803b1580156119c557600080fd5b505af11580156119d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119fd919061318a565b508c6001600160a01b031663095ea7b3600260009054906101000a90046001600160a01b03168c6040518363ffffffff1660e01b8152600401611a41929190613512565b602060405180830381600087803b158015611a5b57600080fd5b505af1158015611a6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a93919061318a565b5060005b8351811015611b61578d6001600160a01b0316848281518110611ab657fe5b60200260200101516001600160a01b03161415611aeb578a828281518110611ada57fe5b602002602001018181525050611b59565b8c6001600160a01b0316848281518110611b0157fe5b60200260200101516001600160a01b03161415611b255788828281518110611ada57fe5b611b406dffffffffffffffffffffffffffff620f4240612b07565b828281518110611b4c57fe5b6020026020010181815250505b600101611a97565b50611b6a612ddd565b6040518060800160405280848152602001838152602001600084604051602001611b959291906136c1565b60408051808303601f190181529181529082526000602090920191909152600254905163172b958560e31b81529192506001600160a01b03169063b95cac2890611be9908890309081908790600401613601565b600060405180830381600087803b158015611c0357600080fd5b505af1158015611c17573d6000803e3d6000fd5b505050505050505050505050505050505050565b6001600160a01b038083166000908152600560209081526040808320938516835292905220545b92915050565b611c64336109d76112cd565b600180546001600160a01b03199081166001600160a01b0398891617909155600395909555600e805486169487169490941790935560028054851692861692909217909155600f8054841692851692909217909155601080549092169216919091179055565b600e54604051634427673360e01b815233916000916001600160a01b0390911690634427673390611cff90859060040161347d565b60606040518083038186803b158015611d1757600080fd5b505afa158015611d2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d4f91906131fb565b505090508061044560f41b14611d775760405162461bcd60e51b81526004016103189061377b565b50506001600160a01b0392831660009081526005602090815260408083209490951682529290925291902055565b6000818152600a602052604080822054600f54915163e0a87de160e01b815260609333936001600160a01b0393841693919291169063e0a87de190611dee90859060040161347d565b60206040518083038186803b158015611e0657600080fd5b505afa158015611e1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3e9190612f5a565b9050826001600160a01b0316816001600160a01b031614611e715760405162461bcd60e51b815260040161031890613723565b6000858152600c6020908152604080832080548251818502810185019093528083529193909284015b82821015611f085760008481526020908190206040805160a0810182526005860290920180546001600160a01b039081168452600180830154821685870152600283015490911692840192909252600381015460608401526004015460808301529083529092019101611e9a565b505050509350505050919050565b6000818152600a602052604080822054600f54915163e0a87de160e01b815260609333936001600160a01b0393841693919291169063e0a87de190611f5f90859060040161347d565b60206040518083038186803b158015611f7757600080fd5b505afa158015611f8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611faf9190612f5a565b9050826001600160a01b0316816001600160a01b031614611fe25760405162461bcd60e51b815260040161031890613723565b6000868152600760209081526040918290208054835181840281018401909452808452909183018282801561203657602002820191906000526020600020905b815481526020019060010190808311612022575b5050505050935050505092915050565b612052336109d76112cd565b6120696001600160a01b03821615156101ab612b20565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000828152600660208190526040822001549066436f6e6669726d60c81b8314806120f75750826514995a9958dd60d21b145b6121135760405162461bcd60e51b8152600401610318906136ec565b600084815260066020908152604080832060038101546001600160a01b039081168552600584528285206004909201541684529091529020541561219e576000848152600660209081526040808320600981015460038201546001600160a01b039081168652600585528386206004909301541685529252909120546121999190612d36565b6121bd565b6000848152600660205260409020600901546003546121bd9190612d36565b600481815560008681526006602052604081209091015490916121ec91610d03906001600160a01b0316612c3e565b90508366436f6e6669726d60c81b148015612222575060008581526006602052604090206005015466436f6e6669726d60c81b14155b801561224657506000858152600660205260409020600501546311985a5b60e21b14155b15612772576000858152600660209081526040808320600401546001600160a01b03168352600d90915290205461227d9082612d6c565b6000868152600660208181526040808420600480820180546001600160a01b039081168852600d865284882098909855958c905293909252925460019091015492516323b872dd60e01b8152908416936323b872dd936122e4939116913091879101613491565b602060405180830381600087803b1580156122fe57600080fd5b505af1158015612312573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612336919061318a565b156124cb57600085815260066020526040908190208054600b820154600c830154600a9093015493516381b5da1d60e01b81526001600160a01b03909216936381b5da1d9361238a9390919060040161368b565b600060405180830381600087803b1580156123a457600080fd5b505af11580156123b8573d6000803e3d6000fd5b5050505060005b6000848152600760205260409020548110156124a25760008481526007602052604090208054879190839081106123f257fe5b9060005260206000200154141561249a576000848152600760205260409020546000190181141561244757600084815260076020526040902080548290811061243757fe5b600091825260208220015561249a565b600084815260076020526040902080546001830190811061246457fe5b906000526020600020015460076000868152602001908152602001600020828154811061248d57fe5b6000918252602090912001555b6001016123bf565b50600085815260066020526040902066436f6e6669726d60c81b6005909101556001915061276d565b6000858152600660205260408120600981015460049091015461250091906124fb906001600160a01b0316612c3e565b612d7e565b600087815260066020526040908190208054600b820154600883015460079093015493516307ef938960e41b81529495506001600160a01b0390911693637ef9389093612550939160040161368b565b600060405180830381600087803b15801561256a57600080fd5b505af115801561257e573d6000803e3d6000fd5b505050600087815260066020526040908190208054600c82015460079092015492516307ef938960e41b81526001600160a01b039091169350637ef93890926125cd929186919060040161368b565b600060405180830381600087803b1580156125e757600080fd5b505af11580156125fb573d6000803e3d6000fd5b50505060008781526006602052604090819020600480820154600183015460029093015493516323b872dd60e01b81526001600160a01b0391821695506323b872dd9461265094831693921691879101613491565b602060405180830381600087803b15801561266a57600080fd5b505af115801561267e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126a2919061318a565b506000868152600660205260409081902060038101546002820154600183015460089093015493516323b872dd60e01b81526001600160a01b03928316946323b872dd946126f894938416931691600401613491565b602060405180830381600087803b15801561271257600080fd5b505af1158015612726573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061274a919061318a565b505060008581526006602052604090206311985a5b60e21b600590910155600191505b612948565b836514995a9958dd60d21b1480156127a457506000858152600660205260409020600501546514995a9958dd60d21b14155b1561294857600085815260066020526040812060098101546004909101546127d991906124fb906001600160a01b0316612c3e565b60008781526006602052604090819020600480820154600183015460029093015493516323b872dd60e01b81529495506001600160a01b03908116946323b872dd9461282d94831693921691879101613491565b602060405180830381600087803b15801561284757600080fd5b505af115801561285b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061287f919061318a565b506000868152600660205260409081902060038101546002820154600183015460089093015493516323b872dd60e01b81526001600160a01b03928316946323b872dd946128d594938416931691600401613491565b602060405180830381600087803b1580156128ef57600080fd5b505af1158015612903573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612927919061318a565b505060008581526006602052604090206514995a9958dd60d21b6005909101555b600085815260066020908152604080832054815163038fff2d60e41b815291516001600160a01b03909116926338fff2d09260048082019391829003018186803b15801561299557600080fd5b505afa1580156129a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129cd91906131c2565b9050807f85da739f35224c9e70f00cc38f01a704522dd70184a2105bf841163edb96ba506006600089815260200190815260200160002060010160009054906101000a90046001600160a01b0316600660008a815260200190815260200160002060020160009054906101000a90046001600160a01b0316600660008b815260200190815260200160002060080154600660008c815260200190815260200160002060030160009054906101000a90046001600160a01b0316600660008d815260200190815260200160002060070154600660008e815260200190815260200160002060040160009054906101000a90046001600160a01b0316600660008f8152602001908152602001600020600501548e8b42604051612af79a999897969594939291906134b5565b60405180910390a2505050505050565b6000612b17838311156001612b20565b50900390565b90565b81612b2e57612b2e81612d8a565b5050565b600f5460405163e0a87de160e01b815260009182916001600160a01b039091169063e0a87de190612b6790869060040161347d565b60206040518083038186803b158015612b7f57600080fd5b505afa158015612b93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bb79190612f5a565b600e5460405162157d5560e61b81529192506001600160a01b03169063055f554090612be790849060040161347d565b60206040518083038186803b158015612bff57600080fd5b505afa158015612c13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c3791906131c2565b9392505050565b600080826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015612c7a57600080fd5b505afa158015612c8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb29190613320565b60ff1690506000612cc4601283612b07565b600a0a670de0b6b3a764000002949350505050565b6000612c378383612d36565b6000612cf48215156004612b20565b82612d0157506000611c52565b670de0b6b3a764000083810290612d2490858381612d1b57fe5b04146005612b20565b828181612d2d57fe5b04915050611c52565b6000828202612d5a841580612d53575083858381612d5057fe5b04145b6003612b20565b670de0b6b3a764000090049392505050565b6000828201612c378482101583612b20565b6000612c378383612ce5565b62461bcd60e51b6000908152602060045260076024526642414c23000030600a808404818106603090810160081b95839006959095019082900491820690940160101b939093010160c81b604452606490fd5b60405180608001604052806060815260200160608152602001606081526020016000151581525090565b6040805160a0810182526000808252602082018190529091820190815260200160008152602001600081525090565b604080516101a081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081019190915290565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b600082601f830112612ee0578081fd5b8151612ef3612eee826139a2565b61397b565b818152915060208083019084810181840286018201871015612f1457600080fd5b60005b84811015612f3357815184529282019290820190600101612f17565b505050505092915050565b600060208284031215612f4f578081fd5b8135612c37816139c2565b600060208284031215612f6b578081fd5b8151612c37816139c2565b60008060408385031215612f88578081fd5b8235612f93816139c2565b91506020830135612fa3816139c2565b809150509250929050565b600080600060608486031215612fc2578081fd5b8335612fcd816139c2565b92506020840135612fdd816139c2565b929592945050506040919091013590565b60008060008060008060c08789031215613006578182fd5b8635613011816139c2565b95506020870135613021816139c2565b95989597505050506040840135936060810135936080820135935060a0909101359150565b60008060008060008060c0878903121561305e578182fd5b8635613069816139c2565b9550602087013594506040870135613080816139c2565b93506060870135613090816139c2565b925060808701356130a0816139c2565b915060a08701356130b0816139c2565b809150509295509295509295565b6000806000606084860312156130d2578081fd5b835167ffffffffffffffff808211156130e9578283fd5b818601915086601f8301126130fc578283fd5b815161310a612eee826139a2565b80828252602080830192508086018b82838702890101111561312a578788fd5b8796505b84871015613155578051613141816139c2565b84526001969096019592810192810161312e565b50890151909750935050508082111561316c578283fd5b5061317986828701612ed0565b925050604084015190509250925092565b60006020828403121561319b578081fd5b81518015158114612c37578182fd5b6000602082840312156131bb578081fd5b5035919050565b6000602082840312156131d3578081fd5b5051919050565b600080604083850312156131ec578182fd5b50508035926020909101359150565b60008060006060848603121561320f578081fd5b8351925060208401519150604084015190509250925092565b600060a08284031215613239578081fd5b61324360a061397b565b825161324e816139c2565b8152602083015161325e816139c2565b6020820152604083015160038110613274578283fd5b604082015260608301516005811061328a578283fd5b60608201526080928301519281019290925250919050565b60008082840360e08112156132b5578283fd5b60c08112156132c2578283fd5b506132cd60c061397b565b83356132d8816139c2565b808252506020840135602082015260408401356040820152606084013560608201526080840135608082015260a084013560a08201528092505060c0830135612fa3816139c2565b600060208284031215613331578081fd5b815160ff81168114612c37578182fd5b6001600160a01b03169052565b6000815180845260208085019450808401835b8381101561337d57815187529582019590820190600101613361565b509495945050505050565b15159052565b60008151808452815b818110156133b357602081850181015186830182015201613397565b818111156133c45782602083870101525b50601f01601f19169290920160200192915050565b8051608080845281519084018190526000916020919082019060a0860190845b8181101561341e5783516001600160a01b0316835292840192918401916001016133f9565b505082850151915085810383870152613437818361334e565b9250505060408301518482036040860152613452828261338e565b91505060608301516134676060860182613388565b509392505050565b918252602082015260400190565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b039a8b168152988a1660208a0152604089019790975294881660608801526080870193909352951660a085015260c084019490945260e08301939093526101008201929092526101208101919091526101400190565b6001600160a01b03929092168252602082015260400190565b6020808252825182820181905260009190848201906040850190845b8181101561356357835183529284019291840191600101613547565b50909695505050505050565b602080825282518282018190526000919060409081850190868401855b828110156135eb57815180516001600160a01b03168552868101516135b388870182613341565b50858101516135c487870182613341565b50606081810151908601526080908101519085015260a0909301929085019060010161358c565b5091979650505050505050565b90815260200190565b8481526001600160a01b03848116602083015283166040820152608060608201819052600090613633908301846133d9565b9695505050505050565b9889526001600160a01b0397881660208a01529587166040890152939095166060870152608086019190915260a085015260c084019290925260e08301919091526101008201526101200190565b9283526020830191909152604082015260600190565b60408101600284106136af57fe5b92815260ff9190911660209091015290565b6000600484106136cd57fe5b838252604060208301526136e4604083018461334e565b949350505050565b60208082526019908201527f536574746c656d656e742073746174757320696e76616c696400000000000000604082015260600190565b6020808252601390820152724f6e6c79206973737565206d616e616765727360681b604082015260600190565b602080825260119082015270496e76616c6964207265666572656e636560781b604082015260600190565b6020808252601b908201527f4f6e6c79204465706f736974617279207061727469636970616e740000000000604082015260600190565b6020808252601f908201527f556e617574686f72697a656420636f6c6c656374696f6e207265717565737400604082015260600190565b60208082526019908201527f4e6f2062616c616e636520746f2063726561746520706f6f6c00000000000000604082015260600190565b60c0808252601390820152722b32b934b334b2b2102837b7b6102a37b5b2b760691b60e0820152610100602082018190526003908201526215941560ea1b6101208201526001600160a01b039485166040820152929093166060830152608082015260a08101919091526101400190565b602080825260149082015273125b9d985b1a59081c1bdbdb081c995c5d595cdd60621b604082015260600190565b60006101a0820190506138d3828451613341565b60208301516138e56020840182613341565b5060408301516138f86040840182613341565b50606083015161390b6060840182613341565b50608083015161391e6080840182613341565b5060a0838101519083015260c0808401519083015260e08084015190830152610100808401519083015261012080840151908301526101408084015190830152610160808401519083015261018092830151929091019190915290565b60405181810167ffffffffffffffff8111828210171561399a57600080fd5b604052919050565b600067ffffffffffffffff8211156139b8578081fd5b5060209081020190565b6001600160a01b03811681146139d757600080fd5b5056fea2646970667358221220248986833c041ed56b85c2640c88c223b75b8f8ad13618ea8eb4da5831aaff3764736f6c63430007010033",
    "immutableReferences": {},
    "sourceMap": "864:18884:19:-:0;;;;;;;;;;;;-1:-1:-1;993:6:9;:19;;-1:-1:-1;;;;;;993:19:9;1002:10;993:19;;;;;1027:44;;1002:10;;993:6;1027:44;;993:6;;1027:44;864:18884:19;;;;;;",
    "deployedSourceMap": "864:18884:19:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12575:174;;;;;;:::i;:::-;;:::i;:::-;;17265:437;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11316:1076;;;;;;:::i;:::-;;:::i;4346:74::-;;;;;;:::i;:::-;;:::i;1777:145:9:-;;;:::i;7720:2855:19:-;;;;;;:::i;:::-;;:::i;11126:180::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1154:85:9:-;;;:::i;:::-;;;;;;;:::i;4967:2248:19:-;;;;;;:::i;:::-;;:::i;7396:151::-;;;;;;:::i;:::-;;:::i;3967:373::-;;;;;;:::i;:::-;;:::i;7221:169::-;;;;;;:::i;:::-;;:::i;16621:195::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;10797:196::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2071:225:9:-;;;;;;:::i;:::-;;:::i;12575:174:19:-;12680:16;;;;:11;:16;;;;;;:25;;;3309:8;;:24;;-1:-1:-1;;;3309:24:19;;12668:10;;-1:-1:-1;;;;;12680:25:19;;;;:16;;3309:8;;:14;;:24;;12680:25;;3309:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3296:37;;3355:6;-1:-1:-1;;;;;3351:10:19;:2;-1:-1:-1;;;;;3351:10:19;;3343:42;;;;-1:-1:-1;;;3343:42:19;;;;;;;:::i;:::-;;;;;;;;;12716:26:::1;12730:3;12735:6;12716:13;:26::i;:::-;12575:174:::0;;;;;:::o;17265:437::-;17377:12;;17339:7;;-1:-1:-1;;;;;17377:12:19;17365:10;:24;17357:68;;;;-1:-1:-1;;;17357:68:19;;;;;;;:::i;:::-;-1:-1:-1;;;;;17458:12:19;;17435:20;17458:12;;;:4;:12;;;;;;17495:36;17458:12;;17495:8;:36::i;:::-;-1:-1:-1;;;;;17480:12:19;;;;;;;:4;:12;;;;;;;:51;;;;17565:12;;17541:51;;-1:-1:-1;;;17541:51:19;;17480:12;;17541:23;;:51;;17565:12;;;17579;;17541:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17629:4;-1:-1:-1;;;;;17607:59:19;;17636:12;17650:15;17607:59;;;;;;;:::i;:::-;;;;;;;;17683:12;17265:437;-1:-1:-1;;17265:437:19:o;11316:1076::-;11394:20;;;;:12;:20;;;;;;;3309:8;;:24;;-1:-1:-1;;;3309:24:19;;11382:10;;-1:-1:-1;;;;;11394:20:19;;;;;;3309:8;;:14;;:24;;11394:20;;3309:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3296:37;;3355:6;-1:-1:-1;;;;;3351:10:19;:2;-1:-1:-1;;;;;3351:10:19;;3343:42;;;;-1:-1:-1;;;3343:42:19;;;;;;;:::i;:::-;11426:16:::1;11465:19:::0;;;:11:::1;:19;::::0;;;;;;;;11445:54;;-1:-1:-1;;;11445:54:19;;;;-1:-1:-1;;;;;11465:19:19;;::::1;::::0;11445:52:::1;::::0;:54:::1;::::0;;::::1;::::0;;;;;;;11465:19;11445:54;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11581:5;::::0;11574:35:::1;::::0;-1:-1:-1;;;11574:35:19;;11426:73;;-1:-1:-1;11544:22:19::1;::::0;-1:-1:-1;;;;;11581:5:19;;::::1;::::0;11574:27:::1;::::0;:35:::1;::::0;11602:6;;11574:35:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;11574:35:19::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;11543:66;;;;11619:22;11644:30;11667:6;11644:22;:30::i;:::-;11619:55;;11684:27;11728:6;:13;11714:28;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;11714:28:19::1;;11684:58;;11752:37;;:::i;:::-;11792:214;;;;;;;;11837:6;11792:214;;;;11872:10;11792:214;;;;11917:36;11955:1;11906:51;;;;;;;;;:::i;:::-;;::::0;;;;::::1;-1:-1:-1::0;;11906:51:19;;;;;;11792:214;;;11990:5:::1;11906:51;11792:214:::0;;::::1;::::0;;;;12032:5:::1;::::0;12025:78;;-1:-1:-1;;;12025:78:19;;11752:254;;-1:-1:-1;;;;;;12032:5:19::1;::::0;12025:22:::1;::::0;:78:::1;::::0;12048:6;;12064:4:::1;::::0;;;11752:254;;12025:78:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;12135:20:19::1;::::0;;;:12:::1;:20;::::0;;;;;;;12118:55;;12127:6;;-1:-1:-1;12118:55:19::1;::::0;::::1;::::0;-1:-1:-1;;;;;12135:20:19;;::::1;::::0;12157:15:::1;::::0;12118:55:::1;:::i;:::-;;;;;;;;12209:14;::::0;;;:6:::1;:14;::::0;;;;;;;12225:41;;-1:-1:-1;;;12225:41:19;;-1:-1:-1;;;;;12183:25:19;;::::1;::::0;::::1;::::0;12209:14;::::1;::::0;12183:25;;12225:26:::1;::::0;:41:::1;::::0;12260:4:::1;::::0;12225:41:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12183:84;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12284:20:19::1;::::0;;;:12:::1;:20;::::0;;;;;;;;12315:6:::1;:14:::0;;;;;;;12338:20;;;;12331:53;-1:-1:-1;;;12331:53:19;;-1:-1:-1;;;;;12284:20:19;;::::1;::::0;12277:37:::1;::::0;12315:14:::1;::::0;12284:20;;12331:38:::1;::::0;:53:::1;::::0;12378:4:::1;::::0;12331:53:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12277:108;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3395:1;;;;;11316:1076:::0;;;;:::o;4346:74::-;1358:59:9;1378:10;1367:7;:5;:7::i;:::-;-1:-1:-1;;;;;1367:21:9;;9498:3:0;1358:8:9;:59::i;:::-;4403:3:19::1;:10:::0;4346:74::o;1777:145:9:-;1358:59;1378:10;1367:7;:5;:7::i;1358:59::-;1883:1:::1;1867:6:::0;;1846:40:::1;::::0;-1:-1:-1;;;;;1867:6:9;;::::1;::::0;1846:40:::1;::::0;1883:1;;1846:40:::1;1913:1;1896:19:::0;;-1:-1:-1;;;;;;1896:19:9::1;::::0;;1777:145::o;7720:2855:19:-;7842:10;7836:17;;;;:5;:17;;;;;;7828:54;;;;-1:-1:-1;;;7828:54:19;;;;;;;:::i;:::-;7892:32;;:::i;:::-;7946:22;;;;7927:42;;-1:-1:-1;;;7927:42:19;;-1:-1:-1;;;;;7927:18:19;;;;;:42;;7946:22;7927:42;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7892:77;;7979:39;;:::i;:::-;8040:29;;;;;8021:49;;-1:-1:-1;;;8021:49:19;;-1:-1:-1;;;;;8021:18:19;;;;;:49;;8040:29;8021:49;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7979:91;;8080:22;8105:9;-1:-1:-1;;;;;8105:21:19;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8080:48;;8139:23;8165:9;-1:-1:-1;;;;;8165:21:19;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8139:49;;8198:13;8236:14;-1:-1:-1;;;;;8214:36:19;:12;:20;;;-1:-1:-1;;;;;8214:36:19;;:85;;8274:25;;8214:85;;;8253:18;;8214:85;8198:101;;8309:20;8361:15;-1:-1:-1;;;;;8332:44:19;:19;:27;;;-1:-1:-1;;;;;8332:44:19;;:93;;8407:18;;8332:93;;;8379:25;;8332:93;8452:28;;;;8309:116;;-1:-1:-1;8435:14:19;8507:32;8524:14;8507:16;:32::i;:::-;8491:48;;8549:13;8565:193;8584:86;8593:13;:28;;;8623:46;8652:15;8623:21;:46::i;:::-;8584:8;:86::i;:::-;8672:85;8681:13;:28;;;8711:45;8740:14;8711:21;:45::i;8672:85::-;8565:18;:193::i;:::-;8549:209;;8768:40;;:::i;:::-;8811:776;;;;;;;;9567:9;-1:-1:-1;;;;;8811:776:19;;;;;8857:5;-1:-1:-1;;;;;8811:776:19;;;;;8907:12;-1:-1:-1;;;;;8811:776:19;;;;;8961:14;-1:-1:-1;;;;;8811:776:19;;;;;9030:15;-1:-1:-1;;;;;8811:776:19;;;;;-1:-1:-1;;;8811:776:19;;;;9537:5;8811:776;;;;9066:5;8811:776;;;;9102:6;8811:776;;;;9137:86;9146:13;:28;;;9176:46;9205:15;9176:21;:46::i;9137:86::-;8811:776;;;;9252:13;:16;;;8811:776;;;;9314:14;-1:-1:-1;;;;;9292:36:19;:12;:20;;;-1:-1:-1;;;;;9292:36:19;;:93;;9356:13;:29;;;9292:93;;;9331:13;:22;;;9292:93;8811:776;;;;9445:15;-1:-1:-1;;;;;9416:44:19;:19;:27;;;-1:-1:-1;;;;;9416:44:19;;:101;;9495:13;:22;;;9416:101;;;9463:13;:29;;;9416:101;8811:776;;;8768:819;;9597:11;9638:13;:22;;;9662:13;:29;;;9621:71;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;9621:71:19;;;;;;9611:82;;9621:71;9611:82;;;;9764:16;;;;:11;:16;;;;;;;:32;;;;-1:-1:-1;;;;;;9764:32:19;;;-1:-1:-1;;;;;9764:32:19;;;;;;;;;;-1:-1:-1;9764:32:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9611:82;-1:-1:-1;9810:42:19;;:::i;:::-;9855:249;;;;;;;;9906:12;-1:-1:-1;;;;;9855:249:19;;;;;9965:14;-1:-1:-1;;;;;9855:249:19;;;;;10007:15;-1:-1:-1;;;;;9855:249:19;;;;;10049:6;9855:249;;;;10083:5;9855:249;;;9810:294;;10118:14;10135:9;-1:-1:-1;;;;;10135:19:19;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10118:38;;10170:9;:17;10180:6;10170:17;;;;;;;;;;;10193:12;10170:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10170:36:19;;;;;-1:-1:-1;;;;;10170:36:19;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10170:36:19;;;;;-1:-1:-1;;;;;10170:36:19;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10170:36:19;;;;;-1:-1:-1;;;;;10170:36:19;;;;;;;;;;;;;;;;;;;;;;;;10266:14;-1:-1:-1;;;;;10225:143:19;;10237:6;10245:5;10252:12;10282:15;10299:6;10307:12;:18;;;10327:3;10332:13;:18;;;10352:15;10225:143;;;;;;;;;;;;;;:::i;:::-;;;;;;;;10389:18;;;;10382:26;;;;:6;:26;;;;;;;;:36;;;;;;;;;;;;;;;;;;;10435:8;;:30;;-1:-1:-1;;;10435:30:19;;-1:-1:-1;;;;;10435:8:19;;;;:14;;:30;;10450:14;;10435:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10435:44:19;;10432:124;;;10527:29;10541:3;-1:-1:-1;;;10527:13:19;:29::i;:::-;7720:2855;;;;;;;;;;;;;;;:::o;11126:180::-;11200:17;;:::i;:::-;11236:7;11228:37;;;;-1:-1:-1;;;11228:37:19;;;;;;;:::i;:::-;-1:-1:-1;11283:16:19;;;;:11;:16;;;;;;;;;11276:23;;;;;;;;;-1:-1:-1;;;;;11276:23:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11126:180::o;1154:85:9:-;1200:7;1226:6;-1:-1:-1;;;;;1226:6:9;1154:85;:::o;4967:2248:19:-;3471:6;;:22;;-1:-1:-1;;;3471:22:19;;5152:10;;3451:12;;-1:-1:-1;;;;;3471:6:19;;;;:14;;:22;;5152:10;;3471:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3450:43;;;;3511:4;-1:-1:-1;;;3511:10:19;3503:50;;;;-1:-1:-1;;;3503:50:19;;;;;;;:::i;:::-;5181:38:::1;::::0;-1:-1:-1;;;5181:38:19;;5221:15;;-1:-1:-1;;;;;5181:26:19;::::1;::::0;::::1;::::0;:38:::1;::::0;5208:10:::1;::::0;5181:38:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:55;;:92;;;;;5257:16;5240:15;:33;;5181:92;:146;;;;-1:-1:-1::0;5277:38:19::1;::::0;-1:-1:-1;;;5277:38:19;;5317:10;;-1:-1:-1;;;;;5277:26:19;::::1;::::0;::::1;::::0;:38:::1;::::0;5304:10:::1;::::0;5277:38:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:50;;5181:146;5173:201;;;;-1:-1:-1::0;;;5173:201:19::1;;;;;;;:::i;:::-;5384:67;::::0;-1:-1:-1;;;5384:67:19;;-1:-1:-1;;;;;5384:28:19;::::1;::::0;::::1;::::0;:67:::1;::::0;5413:10:::1;::::0;5433:4:::1;::::0;5440:10;;5384:67:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;5461:72:19::1;::::0;-1:-1:-1;;;5461:72:19;;-1:-1:-1;;;;;5461:28:19;::::1;::::0;::::1;::::0;:72:::1;::::0;5490:10:::1;::::0;5510:4:::1;::::0;5517:15;;5461:72:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;5546:8:19::1;::::0;:30:::1;::::0;-1:-1:-1;;;5546:30:19;;-1:-1:-1;;;;;5546:40:19;;::::1;::::0;:8:::1;::::0;:20:::1;::::0;:30:::1;::::0;5578:8;;5546:30:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5546:40:19::1;;5543:169;;5671:5;::::0;5641:57:::1;::::0;-1:-1:-1;;;5641:57:19;;-1:-1:-1;;;;;5641:29:19;;::::1;::::0;::::1;::::0;:57:::1;::::0;5671:5;;::::1;::::0;5678:19;;5641:57:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5543:169;5763:7;::::0;5920:3:::1;::::0;5736:197:::1;::::0;-1:-1:-1;;;5736:197:19;;5721:12:::1;::::0;-1:-1:-1;;;;;5763:7:19::1;::::0;5736:42:::1;::::0;:197:::1;::::0;5846:8;;5868;;5890:16;;5736:197:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5721:212;;5944:14;5981:4;-1:-1:-1::0;;;;;5961:35:19::1;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5944:54;;6033:8;6010:12;:20;6023:6;6010:20;;;;;;;;;;;;:31;;;;;-1:-1:-1::0;;;;;6010:31:19::1;;;;;-1:-1:-1::0;;;;;6010:31:19::1;;;;;;6069:10;6052:6;:14;6059:6;6052:14;;;;;;;;;;;;:27;;;;;-1:-1:-1::0;;;;;6052:27:19::1;;;;;-1:-1:-1::0;;;;;6052:27:19::1;;;;;;6103:6;6089:5;:11;6095:4;-1:-1:-1::0;;;;;6089:11:19::1;-1:-1:-1::0;;;;;6089:11:19::1;;;;;;;;;;;;:20;;;;6141:4;6119:11;:19;6131:6;6119:19;;;;;;;;;;;;:26;;;;;-1:-1:-1::0;;;;;6119:26:19::1;;;;;-1:-1:-1::0;;;;;6119:26:19::1;;;;;;6202:22;6239:5;;;;;;;;;-1:-1:-1::0;;;;;6239:5:19::1;-1:-1:-1::0;;;;;6232:27:19::1;;6260:6;6232:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;6232:35:19::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;6201:66;;;;6277:22;6302:30;6325:6;6302:22;:30::i;:::-;6277:55;;6342:29;6388:6;:13;6374:28;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;6374:28:19::1;-1:-1:-1::0;6436:5:19::1;::::0;6412:42:::1;::::0;-1:-1:-1;;;6412:42:19;;6342:60;;-1:-1:-1;;;;;;6412:23:19;;::::1;::::0;::::1;::::0;:42:::1;::::0;6436:5:::1;::::0;6443:10;;6412:42:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6470:8;-1:-1:-1::0;;;;;6464:23:19::1;;6488:5;;;;;;;;;-1:-1:-1::0;;;;;6488:5:19::1;6495:15;6464:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6525:9;6521:345;6540:6;:13;6536:1;:17;6521:345;;;6595:8;-1:-1:-1::0;;;;;6577:27:19::1;:6;6584:1;6577:9;;;;;;;;;;;;;;-1:-1:-1::0;;;;;6577:27:19::1;;6574:281;;;6640:15;6622:12;6635:1;6622:15;;;;;;;;;;;;;:33;;;::::0;::::1;6574:281;;;6695:8;-1:-1:-1::0;;;;;6677:27:19::1;:6;6684:1;6677:9;;;;;;;;;;;;;;-1:-1:-1::0;;;;;6677:27:19::1;;6674:181;;;6740:10;6722:12;6735:1;6722:15;;;;;;;6674:181;6804:51;2381:12;2447:3;6804:8;:51::i;:::-;6786:12;6799:1;6786:15;;;;;;;;;;;;;:69;;;::::0;::::1;6674:181;6555:3;;6521:345;;;;6875:37;;:::i;:::-;6915:205;;;;;;;;6960:6;6915:205;;;;6994:12;6915:205;;;;7041:13;7056:12;7030:39;;;;;;;;;:::i;:::-;;::::0;;;;::::1;-1:-1:-1::0;;7030:39:19;;;;;;6915:205;;;7104:5:::1;7030:39;6915:205:::0;;::::1;::::0;;;;7146:5:::1;::::0;7139:69;;-1:-1:-1;;;7139:69:19;;6875:245;;-1:-1:-1;;;;;;7146:5:19::1;::::0;7139:22:::1;::::0;:69:::1;::::0;7162:6;;7178:4:::1;::::0;;;6875:245;;7139:69:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3563:1;;;;;;4967:2248:::0;;;;;;;;:::o;7396:151::-;-1:-1:-1;;;;;7511:19:19;;;7486:7;7511:19;;;:9;:19;;;;;;;;:29;;;;;;;;;;7396:151;;;;;:::o;3967:373::-;1358:59:9;1378:10;1367:7;:5;:7::i;1358:59::-;4136:7:19::1;:18:::0;;-1:-1:-1;;;;;;4136:18:19;;::::1;-1:-1:-1::0;;;;;4136:18:19;;::::1;;::::0;;;4164:3:::1;:25:::0;;;;4199:6:::1;:32:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;4241:5:::1;:14:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;4265:8:::1;:30:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;4305:12:::1;:28:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;3967:373::o;7221:169::-;3471:6;;:22;;-1:-1:-1;;;3471:22:19;;7322:10;;3451:12;;-1:-1:-1;;;;;3471:6:19;;;;:14;;:22;;7322:10;;3471:22;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3450:43;;;;3511:4;-1:-1:-1;;;3511:10:19;3503:50;;;;-1:-1:-1;;;3503:50:19;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;7344:19:19;;::::1;;::::0;;;:9:::1;:19;::::0;;;;;;;:29;;;::::1;::::0;;;;;;;;;:39;7221:169::o;16621:195::-;16713:20;;;;:12;:20;;;;;;;3309:8;;:24;;-1:-1:-1;;;3309:24:19;;16743:31;;16701:10;;-1:-1:-1;;;;;16713:20:19;;;;;;3309:8;;;:14;;:24;;16713:20;;3309:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3296:37;;3355:6;-1:-1:-1;;;;;3351:10:19;:2;-1:-1:-1;;;;;3351:10:19;;3343:42;;;;-1:-1:-1;;;3343:42:19;;;;;;;:::i;:::-;16792:17:::1;::::0;;;:9:::1;:17;::::0;;;;;;;16785:24;;;;;;::::1;::::0;;;;;;;;;;;;16792:17;;16785:24;::::1;;;;;;;;;::::0;;;::::1;::::0;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;;-1:-1:-1;;;;;16785:24:19;;::::1;::::0;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;;;;;::::1;::::0;::::1;::::0;;;;;::::1;;::::0;;;;;;;;;;::::1;::::0;::::1;;;;;;;;;;16621:195:::0;;;;;;:::o;10797:196::-;10910:20;;;;:12;:20;;;;;;;3309:8;;:24;;-1:-1:-1;;;3309:24:19;;10940:16;;10898:10;;-1:-1:-1;;;;;10910:20:19;;;;;;3309:8;;;:14;;:24;;10910:20;;3309:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3296:37;;3355:6;-1:-1:-1;;;;;3351:10:19;:2;-1:-1:-1;;;;;3351:10:19;;3343:42;;;;-1:-1:-1;;;3343:42:19;;;;;;;:::i;:::-;10974:12:::1;::::0;;;:6:::1;:12;::::0;;;;;;;;10967:19;;;;;;::::1;::::0;;;;;;;;;;10974:12;;10967:19;::::1;10974:12:::0;10967:19;;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10797:196:::0;;;;;;;:::o;2071:225:9:-;1358:59;1378:10;1367:7;:5;:7::i;1358:59::-;2151:58:::1;-1:-1:-1::0;;;;;2160:22:9;::::1;::::0;::::1;9553:3:0;2151:8:9;:58::i;:::-;2245:6;::::0;;2224:38:::1;::::0;-1:-1:-1;;;;;2224:38:9;;::::1;::::0;2245:6;::::1;::::0;2224:38:::1;::::0;::::1;2272:6;:17:::0;;-1:-1:-1;;;;;;2272:17:9::1;-1:-1:-1::0;;;;;2272:17:9;;;::::1;::::0;;;::::1;::::0;;2071:225::o;12759:3756:19:-;12829:12;12844:16;;;:11;:16;;;;;;;:21;;;-1:-1:-1;;;12913:17:19;;;:37;;;12934:6;-1:-1:-1;;;12934:16:19;12913:37;12905:75;;;;-1:-1:-1;;;12905:75:19;;;;;;;:::i;:::-;13006:36;13016:16;;;:11;:16;;;;;;;;:25;;;;-1:-1:-1;;;;;13016:25:19;;;13006:36;;:9;:36;;;;;13043:25;;;;;;13006:63;;;;;;;;:66;:262;;13172:16;;;;:11;:16;;;;;;;;:30;;;;13214:25;;;;-1:-1:-1;;;;;13214:25:19;;;13204:36;;:9;:36;;;;;13241:25;;;;;;13204:63;;;;;;;;13153:115;;13172:30;13153:18;:115::i;:::-;13006:262;;;13094:16;;;;:11;:16;;;;;:30;;;13126:3;;13075:55;;13094:30;13075:18;:55::i;:::-;12990:13;:278;;;13278:11;13355:16;;;:11;:16;;;;;:25;;;;13278:11;;13292:91;;13326:56;;-1:-1:-1;;;;;13355:25:19;13326:21;:56::i;13292:91::-;13278:105;;13396:6;-1:-1:-1;;;13396:17:19;:55;;;;-1:-1:-1;13417:16:19;;;;:11;:16;;;;;:23;;;-1:-1:-1;;;13417:34:19;;13396:55;:90;;;;-1:-1:-1;13455:16:19;;;;:11;:16;;;;;:23;;;-1:-1:-1;;;13455:31:19;;13396:90;13393:2403;;;13556:31;13561:16;;;:11;:16;;;;;;;;:25;;;-1:-1:-1;;;;;13561:25:19;13556:31;;:4;:31;;;;;;13547:46;;13589:3;13547:8;:46::i;:::-;13513:31;13518:16;;;:11;:16;;;;;;;;:25;;;;;;-1:-1:-1;;;;;13518:25:19;;;13513:31;;:4;:31;;;;;:80;;;;13617:16;;;;;;;;:25;;13518;13657:27;;;;13610:95;;-1:-1:-1;;;13610:95:19;;13617:25;;;;13610:46;;:95;;13657:27;;;13694:4;;13701:3;;13610:95;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13607:1593;;;13786:16;;;;:11;:16;;;;;;;:26;;13825:25;;;;13852:32;;;;13886:30;;;;;13786:131;;-1:-1:-1;;;13786:131:19;;-1:-1:-1;;;;;13786:26:19;;;;:38;;:131;;13852:32;;13886:30;13786:131;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13939:6;13935:327;13951:12;;;;:6;:12;;;;;:19;13949:21;;13935:327;;;14001:12;;;;:6;:12;;;;;:15;;14018:3;;14001:12;14014:1;;14001:15;;;;;;;;;;;;;;:20;13998:246;;;14054:12;;;;:6;:12;;;;;:19;-1:-1:-1;;14054:21:19;14051:24;;14048:173;;;14112:12;;;;:6;:12;;;;;:15;;14125:1;;14112:15;;;;;;;;;;;;;;14105:22;14048:173;;;14204:12;;;;:6;:12;;;;;:17;;14219:1;14217:3;;;14204:17;;;;;;;;;;;;;;14186:6;:12;14193:4;14186:12;;;;;;;;;;;14199:1;14186:15;;;;;;;;;;;;;;;;;:35;14048:173;13972:3;;13935:327;;;-1:-1:-1;14279:16:19;;;;:11;:16;;;;;-1:-1:-1;;;14279:23:19;;;;:35;14346:4;;-1:-1:-1;13607:1593:19;;;14412:21;14451:16;;;:11;:16;;;;;:30;;;;14512:25;;;;;14436:104;;14451:30;14483:56;;-1:-1:-1;;;;;14512:25:19;14483:21;:56::i;:::-;14436:14;:104::i;:::-;14558:16;;;;:11;:16;;;;;;;:26;;14597:25;;;;14624:32;;;;14658:22;;;;;14558:123;;-1:-1:-1;;;14558:123:19;;14412:128;;-1:-1:-1;;;;;;14558:26:19;;;;:38;;:123;;14624:32;14558:123;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14699:16:19;;;;:11;:16;;;;;;;:26;;14738:32;;;;14787:22;;;;;14699:111;;-1:-1:-1;;;14699:111:19;;-1:-1:-1;;;;;14699:26:19;;;;-1:-1:-1;14699:38:19;;:111;;14738:32;14772:13;;14787:22;14699:111;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;14835:16:19;;;;:11;:16;;;;;;;:25;;;;;;14875:27;;;14904;;;;;14828:119;;-1:-1:-1;;;14828:119:19;;-1:-1:-1;;;;;14835:25:19;;;;-1:-1:-1;14828:46:19;;:119;;14875:27;;;14904;;;14933:13;;14828:119;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;14972:16:19;;;;:11;:16;;;;;;;:25;;;;15012:27;;;;14972:25;15041:27;;;15070:32;;;;;14965:138;;-1:-1:-1;;;14965:138:19;;-1:-1:-1;;;;;14972:25:19;;;;14965:46;;:138;;15012:27;;;;15041;;14965:138;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;15121:16:19;;;;:11;:16;;;;;-1:-1:-1;;;15121:23:19;;;;:32;15181:4;;-1:-1:-1;13607:1593:19;13393:2403;;;15227:6;-1:-1:-1;;;15227:16:19;:53;;;;-1:-1:-1;15247:16:19;;;;:11;:16;;;;;:23;;;-1:-1:-1;;;15247:33:19;;15227:53;15224:572;;;15295:21;15334:16;;;:11;:16;;;;;:30;;;;15395:25;;;;;15319:104;;15334:30;15366:56;;-1:-1:-1;;;;;15395:25:19;15366:21;:56::i;15319:104::-;15444:16;;;;:11;:16;;;;;;;:25;;;;;;15484:27;;;15513;;;;;15437:119;;-1:-1:-1;;;15437:119:19;;15295:128;;-1:-1:-1;;;;;;15444:25:19;;;;15437:46;;:119;;15484:27;;;15513;;;15295:128;;15437:119;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;15577:16:19;;;;:11;:16;;;;;;;:25;;;;15617:27;;;;15577:25;15646:27;;;15675:32;;;;;15570:138;;-1:-1:-1;;;15570:138:19;;-1:-1:-1;;;;;15577:25:19;;;;15570:46;;:138;;15617:27;;;;15646;;15570:138;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;15722:16:19;;;;:11;:16;;;;;-1:-1:-1;;;15722:23:19;;;;:34;15224:572;15832:14;15849:16;;;:11;:16;;;;;;;;:26;:38;;-1:-1:-1;;;15849:38:19;;;;-1:-1:-1;;;;;15849:26:19;;;;:36;;:38;;;;;;;;;;;:26;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15832:55;;15948:6;15906:578;15984:11;:16;15996:3;15984:16;;;;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;;;;15984:27:19;16042:11;:16;16054:3;16042:16;;;;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;;;;16042:27:19;16100:11;:16;16112:3;16100:16;;;;;;;;;;;:32;;;16162:11;:16;16174:3;16162:16;;;;;;;;;;;:25;;;;;;;;;;-1:-1:-1;;;;;16162:25:19;16217:11;:16;16229:3;16217:16;;;;;;;;;;;:22;;;16269:11;:16;16281:3;16269:16;;;;;;;;;;;:25;;;;;;;;;;-1:-1:-1;;;;;16269:25:19;16324:11;:16;16336:3;16324:16;;;;;;;;;;;:23;;;16377:3;16410;16443:15;15906:578;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;12759:3756;;;;;;:::o;948:166:5:-;1006:7;1025:37;1039:1;1034;:6;;4370:1:0;1025:8:5;:37::i;:::-;-1:-1:-1;1084:5:5;;;948:166::o;17831:224:19:-;18033:6;18009:40::o;866:101:0:-;935:9;930:34;;946:18;954:9;946:7;:18::i;:::-;866:101;;:::o;16949:172:19:-;17045:8;;:24;;-1:-1:-1;;;17045:24:19;;17014:7;;;;-1:-1:-1;;;;;17045:8:19;;;;:14;;:24;;17060:8;;17045:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17086:6;;:27;;-1:-1:-1;;;17086:27:19;;17032:37;;-1:-1:-1;;;;;;17086:6:19;;:23;;:27;;17032:37;;17086:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17079:35;16949:172;-1:-1:-1;;;16949:172:19:o;18223:417::-;18291:7;18390:21;18428:5;-1:-1:-1;;;;;18414:30:19;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18390:56;;;;18521:26;18550:27;18559:2;18563:13;18550:8;:27::i;:::-;18611:2;:22;893:4:3;18594:39:19;;;-1:-1:-1;;;;18223:417:19:o;19166:579::-;19246:7;19697:41;19716:6;19724:13;19697:18;:41::i;2485:355:3:-;2547:7;2566:38;2575:6;;;4516:1:0;2566:8:3;:38::i;:::-;2619:6;2615:219;;-1:-1:-1;2648:1:3;2641:8;;2615:219;893:4;2700:7;;;;2721:51;;2700:1;:7;:1;2730:13;;;;;:20;4564:1:0;2721:8:3;:51::i;:::-;2822:1;2810:9;:13;;;;;;2803:20;;;;;1647:209;1709:7;1746:5;;;1761:57;1770:6;;;:26;;;1795:1;1790;1780:7;:11;;;;;;:16;1770:26;4467:1:0;1761:8:3;:57::i;:::-;893:4;1836:13;;;;-1:-1:-1;;;1647:209:3:o;367:166:5:-;425:7;456:5;;;471:37;480:6;;;;425:7;471:8;:37::i;18844:160:19:-;18930:7;18956:41;18975:6;18983:13;18956:18;:41::i;1074:3172:0:-;-1:-1:-1;;;3588:3:0;3581:79;;;3799:66;3793:4;3786:80;3941:1;3935:4;3928:15;2999:73;2210:2;2243:18;;;2288;;;2215:4;2284:29;;;3040:1;3036:14;2195:18;;;;3025:26;;;;2336:18;;;;2383;;;2379:29;;;3057:2;3053:17;3021:50;;;;2999:73;2994:3;2990:83;4008:4;4001:26;4234:3;;4224:14;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1102:722::-;;1230:3;1223:4;1215:6;1211:17;1207:27;1197:2;;-1:-1;;1238:12;1197:2;1278:6;1272:13;1300:80;1315:64;1372:6;1315:64;:::i;:::-;1300:80;:::i;:::-;1408:21;;;1291:89;-1:-1;1452:4;1465:14;;;;1440:17;;;1554;;;1545:27;;;;1542:36;-1:-1;1539:2;;;1591:1;;1581:12;1539:2;1616:1;1601:217;1626:6;1623:1;1620:13;1601:217;;;5300:13;;1694:61;;1769:14;;;;1797;;;;1648:1;1641:9;1601:217;;;1605:14;;;;;1190:634;;;;:::o;5500:241::-;;5604:2;5592:9;5583:7;5579:23;5575:32;5572:2;;;-1:-1;;5610:12;5572:2;85:6;72:20;97:33;124:5;97:33;:::i;5748:263::-;;5863:2;5851:9;5842:7;5838:23;5834:32;5831:2;;;-1:-1;;5869:12;5831:2;226:6;220:13;238:33;265:5;238:33;:::i;6018:366::-;;;6139:2;6127:9;6118:7;6114:23;6110:32;6107:2;;;-1:-1;;6145:12;6107:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;6197:63;-1:-1;6297:2;6336:22;;72:20;97:33;72:20;97:33;:::i;:::-;6305:63;;;;6101:283;;;;;:::o;6391:491::-;;;;6529:2;6517:9;6508:7;6504:23;6500:32;6497:2;;;-1:-1;;6535:12;6497:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;6587:63;-1:-1;6687:2;6726:22;;72:20;97:33;72:20;97:33;:::i;:::-;6491:391;;6695:63;;-1:-1;;;6795:2;6834:22;;;;5152:20;;6491:391::o;6889:869::-;;;;;;;7078:3;7066:9;7057:7;7053:23;7049:33;7046:2;;;-1:-1;;7085:12;7046:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;7137:63;-1:-1;7237:2;7276:22;;72:20;97:33;72:20;97:33;:::i;:::-;7040:718;;7245:63;;-1:-1;;;;7345:2;7384:22;;5152:20;;7453:2;7492:22;;5152:20;;7561:3;7601:22;;5152:20;;-1:-1;7670:3;7710:22;;;5152:20;;-1:-1;7040:718::o;7765:869::-;;;;;;;7954:3;7942:9;7933:7;7929:23;7925:33;7922:2;;;-1:-1;;7961:12;7922:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;8013:63;-1:-1;8113:2;8152:22;;5152:20;;-1:-1;8221:2;8260:22;;72:20;97:33;72:20;97:33;:::i;:::-;8229:63;-1:-1;8329:2;8368:22;;72:20;97:33;72:20;97:33;:::i;:::-;8337:63;-1:-1;8437:3;8477:22;;72:20;97:33;72:20;97:33;:::i;:::-;8446:63;-1:-1;8546:3;8586:22;;72:20;97:33;72:20;97:33;:::i;:::-;8555:63;;;;7916:718;;;;;;;;:::o;8641:823::-;;;;8855:2;8843:9;8834:7;8830:23;8826:32;8823:2;;;-1:-1;;8861:12;8823:2;8912:17;8906:24;8950:18;;8942:6;8939:30;8936:2;;;-1:-1;;8972:12;8936:2;9089:6;9078:9;9074:22;;;452:3;445:4;437:6;433:17;429:27;419:2;;-1:-1;;460:12;419:2;500:6;494:13;522:95;537:79;609:6;537:79;:::i;522:95::-;623:16;659:6;652:5;645:21;689:4;;706:3;702:14;695:21;;689:4;681:6;677:17;811:3;689:4;;795:6;791:17;681:6;782:27;;779:36;776:2;;;-1:-1;;818:12;776:2;-1:-1;844:10;;838:232;863:6;860:1;857:13;838:232;;;2344:6;2338:13;2356:48;2398:5;2356:48;:::i;:::-;931:76;;885:1;878:9;;;;;1021:14;;;;1049;;838:232;;;-1:-1;9149:18;;9143:25;8992:114;;-1:-1;9143:25;-1:-1;;;9177:30;;;9174:2;;;-1:-1;;9210:12;9174:2;;9240:89;9321:7;9312:6;9301:9;9297:22;9240:89;:::i;:::-;9230:99;;;9366:2;9420:9;9416:22;5300:13;9374:74;;8817:647;;;;;:::o;9471:257::-;;9583:2;9571:9;9562:7;9558:23;9554:32;9551:2;;;-1:-1;;9589:12;9551:2;1913:6;1907:13;50237:5;47077:13;47070:21;50215:5;50212:32;50202:2;;-1:-1;;50248:12;9735:241;;9839:2;9827:9;9818:7;9814:23;9810:32;9807:2;;;-1:-1;;9845:12;9807:2;-1:-1;2034:20;;9801:175;-1:-1;9801:175::o;9983:263::-;;10098:2;10086:9;10077:7;10073:23;10069:32;10066:2;;;-1:-1;;10104:12;10066:2;-1:-1;2182:13;;10060:186;-1:-1;10060:186::o;10253:366::-;;;10374:2;10362:9;10353:7;10349:23;10345:32;10342:2;;;-1:-1;;10380:12;10342:2;-1:-1;;2034:20;;;10532:2;10571:22;;;2034:20;;-1:-1;10336:283::o;10626:535::-;;;;10775:2;10763:9;10754:7;10750:23;10746:32;10743:2;;;-1:-1;;10781:12;10743:2;2188:6;2182:13;10833:74;;10944:2;10998:9;10994:22;2182:13;10952:74;;11063:2;11117:9;11113:22;2182:13;11071:74;;10737:424;;;;;:::o;11168:312::-;;11307:3;11295:9;11286:7;11282:23;11278:33;11275:2;;;-1:-1;;11314:12;11275:2;3117:20;11307:3;3117:20;:::i;:::-;226:6;220:13;238:33;265:5;238:33;:::i;:::-;3195:86;;3345:2;3410:22;;220:13;238:33;220:13;238:33;:::i;:::-;3345:2;3360:16;;3353:86;3501:2;3581:22;;2853:13;50910:1;50900:12;;50890:2;;-1:-1;;50916:12;50890:2;3501;3516:16;;3509:101;3673:2;3755:22;;2680:13;50794:1;50784:12;;50774:2;;-1:-1;;50800:12;50774:2;3673;3688:16;;3681:103;3844:3;3910:22;;;5300:13;3860:16;;;3853:86;;;;-1:-1;3692:5;11269:211;-1:-1;11269:211::o;11487:448::-;;;11636:9;11627:7;11623:23;11648:3;11623:23;11619:33;11616:2;;;-1:-1;;11655:12;11616:2;4106:4;4085:19;4081:30;4078:2;;;-1:-1;;4114:12;4078:2;;4142:20;4106:4;4142:20;:::i;:::-;85:6;72:20;97:33;124:5;97:33;:::i;:::-;4252:49;4234:16;4227:75;;4367:2;4425:9;4421:22;2034:20;4367:2;4386:5;4382:16;4375:75;4522:2;4580:9;4576:22;2034:20;4522:2;4541:5;4537:16;4530:75;4664:2;4722:9;4718:22;5152:20;4664:2;4683:5;4679:16;4672:75;4818:3;4877:9;4873:22;5152:20;4818:3;4838:5;4834:16;4827:75;4973:3;5032:9;5028:22;5152:20;4973:3;4993:5;4989:16;4982:75;11707:87;;;;4106:4;11891:9;11887:22;2499:20;2524:49;2567:5;2524:49;:::i;12460:259::-;;12573:2;12561:9;12552:7;12548:23;12544:32;12541:2;;;-1:-1;;12579:12;12541:2;5445:6;5439:13;47969:4;51149:5;47958:16;51126:5;51123:33;51113:2;;-1:-1;;51160:12;13761:137;-1:-1;;;;;47753:54;13848:45;;13842:56::o;16716:670::-;;16899:5;44372:12;45648:6;45643:3;45636:19;45685:4;;45680:3;45676:14;16911:83;;45685:4;17065:5;43705:14;-1:-1;17104:260;17129:6;17126:1;17123:13;17104:260;;;17190:13;;18285:37;;13584:14;;;;45109;;;;17151:1;17144:9;17104:260;;;-1:-1;17370:10;;16830:556;-1:-1;;;;;16830:556::o;18123:94::-;47077:13;47070:21;18178:34;;18172:45::o;18613:323::-;;18745:5;44372:12;45648:6;45643:3;45636:19;-1:-1;49418:101;49432:6;49429:1;49426:13;49418:101;;;45685:4;49499:11;;;;;49493:18;49480:11;;;;;49473:39;49447:10;49418:101;;;49534:6;49531:1;49528:13;49525:2;;;-1:-1;45685:4;49590:6;45680:3;49581:16;;49574:27;49525:2;-1:-1;49787:7;49771:14;-1:-1;;49767:28;18892:39;;;;45685:4;18892:39;;18693:243;-1:-1;;18693:243::o;22745:1142::-;22980:23;;22912:4;23016:38;;;44372:12;;22903:14;;;45636:19;;;22745:1142;;45685:4;;43705:14;;;;45676;;;;22745:1142;15336:290;15361:6;15358:1;15355:13;15336:290;;;15422:13;;-1:-1;;;;;47753:54;19019:65;;45109:14;;;;13092;;;;8950:18;15376:9;15336:290;;;15340:14;;45685:4;23274:5;23270:16;23264:23;23244:43;;23333:3;23327:4;23323:14;45685:4;23311:3;23307:14;23300:38;23353:103;23451:4;23437:12;23353:103;:::i;:::-;23345:111;;;;23545:4;23538:5;23534:16;23528:23;23597:3;23591:4;23587:14;23545:4;23575:3;23571:14;23564:38;23617:71;23683:4;23669:12;23617:71;:::i;:::-;23609:79;;;23786:4;23779:5;23775:16;23769:23;23798:57;23786:4;23844:3;23840:14;23826:12;23798:57;:::i;:::-;-1:-1;23871:11;22885:1002;-1:-1;;;22885:1002::o;28731:392::-;18285:37;;;28984:2;28975:12;;18285:37;29086:12;;;28875:248::o;29130:222::-;-1:-1;;;;;47753:54;;;;13848:45;;29257:2;29242:18;;29228:124::o;29604:460::-;-1:-1;;;;;47753:54;;;13691:58;;47753:54;;;;29967:2;29952:18;;13848:45;30050:2;30035:18;;18285:37;;;;29795:2;29780:18;;29766:298::o;30522:1228::-;-1:-1;;;;;47753:54;;;13848:45;;47753:54;;;31066:2;31051:18;;13848:45;31149:2;31134:18;;18285:37;;;;47753:54;;;31232:2;31217:18;;13848:45;31315:3;31300:19;;18285:37;;;;47753:54;;47764:42;31384:19;;13848:45;31483:3;31468:19;;18285:37;;;;31567:3;31552:19;;18285:37;;;;31651:3;31636:19;;18285:37;;;;31735:3;31720:19;;18285:37;;;;30901:3;30886:19;;30872:878::o;31757:333::-;-1:-1;;;;;47753:54;;;;13848:45;;32076:2;32061:18;;18285:37;31912:2;31897:18;;31883:207::o;32097:370::-;32274:2;32288:47;;;44372:12;;32259:18;;;45636:19;;;32097:370;;32274:2;43705:14;;;;45676;;;;32097:370;14574:260;14599:6;14596:1;14593:13;14574:260;;;14660:13;;18285:37;;45109:14;;;;12880;;;;14621:1;14614:9;14574:260;;;-1:-1;32341:116;;32245:222;-1:-1;;;;;;32245:222::o;32474:498::-;32715:2;32729:47;;;44372:12;;32700:18;;;45636:19;;;32474:498;;32715:2;45676:14;;;;;;43705;;;32474:498;16299:356;16324:6;16321:1;16318:13;16299:356;;;16385:13;;27757:23;;-1:-1;;;;;47753:54;13848:45;;27918:16;;;27912:23;27941:63;27989:14;;;27912:23;27941:63;:::i;:::-;;45676:14;28080:5;28076:16;28070:23;28099:63;45676:14;28151:3;28147:14;28133:12;28099:63;:::i;:::-;-1:-1;28243:4;28232:16;;;28226:23;28303:14;;;18285:37;28398:4;28387:16;;;28381:23;28458:14;;;18285:37;13411:4;13402:14;;;;45109;;;;16346:1;16339:9;16299:356;;;-1:-1;32782:180;;32686:286;-1:-1;;;;;;;32686:286::o;32979:222::-;18285:37;;;33106:2;33091:18;;33077:124::o;33208:768::-;18285:37;;;-1:-1;;;;;47753:54;;;33666:2;33651:18;;13848:45;47753:54;;33765:2;33750:18;;13848:45;33501:3;33802:2;33787:18;;33780:48;;;33208:768;;33842:124;;33486:19;;33952:6;33842:124;:::i;:::-;33834:132;33472:504;-1:-1;;;;;;33472:504::o;33983:1116::-;18285:37;;;-1:-1;;;;;47753:54;;;34499:2;34484:18;;13848:45;47753:54;;;34582:2;34567:18;;13848:45;47753:54;;;;34665:2;34650:18;;13848:45;34748:3;34733:19;;18285:37;;;;47764:42;34817:19;;18285:37;34916:3;34901:19;;18285:37;;;;35000:3;34985:19;;18285:37;;;;35084:3;35069:19;;18285:37;34334:3;34319:19;;34305:794::o;35849:444::-;18285:37;;;36196:2;36181:18;;18285:37;;;;36279:2;36264:18;;18285:37;36032:2;36017:18;;36003:290::o;36751:369::-;36924:2;36909:18;;49891:1;49881:12;;49871:2;;49897:9;49871:2;19334:62;;;47969:4;47958:16;;;;37106:2;37091:18;;;19642:56;36895:225;:::o;37127:505::-;;50003:1;49996:5;49993:12;49983:2;;50009:9;49983:2;48933:38;19498:3;19491:62;37344:2;37474;37463:9;37459:18;37452:48;37514:108;37344:2;37333:9;37329:18;37608:6;37514:108;:::i;:::-;37506:116;37315:317;-1:-1;;;;37315:317::o;37639:416::-;37839:2;37853:47;;;19935:2;37824:18;;;45636:19;19971:27;45676:14;;;19951:48;20018:12;;;37810:245::o;38062:416::-;38262:2;38276:47;;;20269:2;38247:18;;;45636:19;-1:-1;;;45676:14;;;20285:42;20346:12;;;38233:245::o;38485:416::-;38685:2;38699:47;;;20908:2;38670:18;;;45636:19;-1:-1;;;45676:14;;;20924:40;20983:12;;;38656:245::o;38908:416::-;39108:2;39122:47;;;21234:2;39093:18;;;45636:19;21270:29;45676:14;;;21250:50;21319:12;;;39079:245::o;39331:416::-;39531:2;39545:47;;;21570:2;39516:18;;;45636:19;21606:33;45676:14;;;21586:54;21659:12;;;39502:245::o;39754:416::-;39954:2;39968:47;;;21910:2;39939:18;;;45636:19;21946:27;45676:14;;;21926:48;21993:12;;;39925:245::o;40177:1168::-;40590:3;40605:47;;;22244:2;40575:19;;;45636;-1:-1;;;45676:14;;;22260:42;22321:12;45685:4;40815:18;;40808:48;;;20597:1;22321:12;;;45636:19;-1:-1;;;45676:14;;;20612:26;-1:-1;;;;;47753:54;;;41080:2;41065:18;;13848:45;47753:54;;;;41163:2;41148:18;;13848:45;-1:-1;41231:19;;18285:37;-1:-1;41315:19;;18285:37;;;;20657:12;;;40561:784::o;41352:416::-;41552:2;41566:47;;;22572:2;41537:18;;;45636:19;-1:-1;;;45676:14;;;22588:43;22650:12;;;41523:245::o;41775:339::-;;41960:3;41949:9;41945:19;41937:27;;25429:79;25493:14;25406:16;25400:23;25429:79;:::i;:::-;25593:4;25586:5;25582:16;25576:23;25605:63;25593:4;25657:3;25653:14;25639:12;25605:63;:::i;:::-;;25753:4;25746:5;25742:16;25736:23;25765:63;25753:4;25817:3;25813:14;25799:12;25765:63;:::i;:::-;;25911:4;25904:5;25900:16;25894:23;25923:63;25911:4;25975:3;25971:14;25957:12;25923:63;:::i;:::-;;26069:4;26062:5;26058:16;26052:23;26081:63;26069:4;26133:3;26129:14;26115:12;26081:63;:::i;:::-;-1:-1;26225:4;26214:16;;;26208:23;26285:14;;;18285:37;26379:4;26368:16;;;26362:23;26439:14;;;18285:37;26534:4;26523:16;;;26517:23;26594:14;;;18285:37;26699:6;26688:18;;;26682:25;26761:16;;;18285:37;26866:6;26855:18;;;26849:25;26928:16;;;18285:37;27033:6;27022:18;;;27016:25;27095:16;;;18285:37;27195:6;27184:18;;;27178:25;27257:16;;;18285:37;27364:6;27353:18;;;27347:25;27426:16;;;;18285:37;;;;41931:183;:::o;42690:256::-;42752:2;42746:9;42778:17;;;42853:18;42838:34;;42874:22;;;42835:62;42832:2;;;42910:1;;42900:12;42832:2;42752;42919:22;42730:216;;-1:-1;42730:216::o;42953:319::-;;43127:18;43119:6;43116:30;43113:2;;;-1:-1;;43149:12;43113:2;-1:-1;43194:4;43182:17;;;43247:15;;43050:222::o;50032:117::-;-1:-1;;;;;47753:54;;50091:35;;50081:2;;50140:1;;50130:12;50081:2;50075:74;:::o",
    "source": "// External interface for settlement of trades\n// (c) Kallol Borah, 2022\n// \"SPDX-License-Identifier: BUSL1.1\"\n\npragma solidity 0.7.1;\npragma experimental ABIEncoderV2;\n\nimport \"./interfaces/ISettlor.sol\";\nimport \"./interfaces/IOrder.sol\";\nimport \"./interfaces/ITrade.sol\";\nimport \"./interfaces/IFactory.sol\";\nimport \"./interfaces/ISecurity.sol\";\nimport \"./interfaces/VerifiedClient.sol\";\nimport \"./interfaces/ISecondaryIssuePool.sol\";\nimport \"./interfaces/ISecondaryIssuePoolFactory.sol\";\n\nimport \"@balancer-labs/v2-solidity-utils/contracts/math/Math.sol\";\nimport \"@balancer-labs/v2-solidity-utils/contracts/math/FixedPoint.sol\";\nimport \"@balancer-labs/v2-solidity-utils/contracts/openzeppelin/ERC20.sol\";\nimport \"@balancer-labs/v2-solidity-utils/contracts/openzeppelin/IERC20.sol\";\nimport \"@balancer-labs/v2-solidity-utils/contracts/openzeppelin/Ownable.sol\";\n \ncontract SecondaryIssueManager is ISettlor, Ownable {\n\n    using Math for uint256;\n    using FixedPoint for uint256;\n\n    // balancer variables\n    address private factory;    \n\n    address private vault;\n\n    // standard fee\n    uint256 private fee;\n    uint256 private settlementFee;\n\n    // mapping security to currency to fee set for it by DP\n    mapping(address => mapping(address => uint256)) private customFee;\n\n    // mapping settlement ref to trade execution data\n    mapping(bytes32 => ISettlor.settlement) settlements;\n\n    //mapping depository participants to trades they are part of\n    mapping(bytes32 => bytes32[]) private trades;\n\n    //mapping pool address to pool id\n    mapping(address => bytes32) private pools;\n\n    //mapping pool id to pool address\n    mapping(bytes32 => address) private poolAddress;\n\n    //mapping pool id to security token traded\n    mapping(bytes32 => address) private poolSecurity;\n\n    //mapping pool id to issuer\n    mapping(bytes32 => address) private issuer;\n\n    //mapping pool id to investors\n    mapping(bytes32 => subscriptions[]) internal investors; \n\n    // mapping token address to issuing fee collected\n    mapping(address => uint256) private fees;\n\n    // reference to the Verified Client contract\n    VerifiedClient private client;\n\n    // reference to the Verified factory contract that this asset manager checks security token issues with\n    IFactory private products;\n\n    address private distribution;\n\n    uint256 private constant _INITIAL_BPT_SUPPLY = 2**(112) - 1;\n    uint256 private constant _DEFAULT_MINIMUM_BPT = 1e6;\n\n    event tradeSettled( \n        bytes32 indexed poolid,\n        address transferor,\n        address transferee,\n        uint256 unitsToTransfer,\n        address security,\n        uint256 price,\n        address currency,\n        bytes32 settlementStatus,\n        bytes32 tradeRef,\n        uint256 fee,\n        uint256 timestamp\n    );\n\n    event subscribers(bytes32 poolId, address seller, address investor, \n                        address indexed securityTraded, address currencySettled, uint256 amount, uint256 price,\n                        bytes32 tradeRef, bytes32 DPID, uint256 timestamp);\n\n    event closures(bytes32 indexed poolId, address security, uint256 timestamp);\n    event feecollection(address indexed platform, uint256 collection, uint256 timestamp);\n\n    modifier onlyIssueManager(address sender, address security){\n        address DP = products.getDP(security);\n        require(DP==sender, \"Only issue managers\");\n        _;\n    }\n\n    modifier onlyDP(address sender){\n        (bytes32 role, , ) = client.getRole(sender);\n        require(role==\"DP\", \"Only Depositary participant\");\n        _;\n    }\n\n    /**\n        Initializes this asset management contract\n        @param  _factory            reference to the secondary issue pool factory contract\n        @param  _issueFeePercentage  percentage of trading fee to be charged by the asset manager\n        @param  _client             address of Verified client contract\n        @param  _vault              address of balancer vault\n     */\n    function initialize(address _factory, uint256 _issueFeePercentage, address _client, address _vault, address _distribution, address _products) public onlyOwner {\n        factory = _factory;\n        fee = _issueFeePercentage;\n        client = VerifiedClient(_client);\n        vault = _vault;\n        products = IFactory(_products);\n        distribution = _distribution;\n    }\n\n    function setFee(uint256 _fee) public onlyOwner {\n        fee = _fee;\n    }\n    \n    /**\n        Joins existing (secondary) tokenized assets into pool by primary issue token holders\n        @param  security            reference to asset issued\n        @param  currency            reference to cash (settlement) token\n        @param  securityOutstanding total number of securities outstanding\n        @param  securityOffered     amount of security to issue\n        @param  minSecurityOrder    minimum order size of securities issued in pool\n        @param  cashAmount          amount of currency issued in pool\n     */\n    function issueSecondary(address security, address currency, uint256 securityOutstanding, uint256 securityOffered, uint256 minSecurityOrder, uint256 cashAmount) override external onlyDP(msg.sender){\n        require(IERC20(security).balanceOf(msg.sender)>=securityOffered && securityOffered>=minSecurityOrder && IERC20(currency).balanceOf(msg.sender)>=cashAmount\n                , \"No balance to create pool\");\n        ERC20(currency).transferFrom(msg.sender, address(this), cashAmount);\n        ERC20(security).transferFrom(msg.sender, address(this), securityOffered);\n        if(products.getSecurity(security)!=security){ //if the security is issued on Verified\n            ISecurity(security).whiteList(vault, securityOutstanding);   \n        }\n        address pool = ISecondaryIssuePoolFactory(factory).create(\n            \"Verified Pool Token\",\n            \"VPT\",\n            security,\n            currency,\n            minSecurityOrder,\n            fee\n        ); \n        bytes32 poolId = ISecondaryIssuePool(pool).getPoolId();  \n        poolSecurity[poolId] = security; \n        issuer[poolId] = msg.sender;\n        pools[pool] = poolId;\n        poolAddress[poolId] = pool;\n        // join the pool here                \n        (IERC20[] memory tokens, , ) = IVault(vault).getPoolTokens(poolId);\n        IAsset[] memory assets = _convertERC20sToAssets(tokens);\n        uint256[] memory maxAmountsIn = new uint256[](tokens.length);\n        ERC20(currency).approve(vault, cashAmount);\n        ERC20(security).approve(vault, securityOffered);\n        for(uint256 t; t < tokens.length; t++) {\n            if(tokens[t]==IERC20(security))\n                maxAmountsIn[t] = securityOffered;\n            else if(tokens[t]==IERC20(currency))\n                maxAmountsIn[t] = cashAmount;\n            else \n                maxAmountsIn[t] = Math.sub(_INITIAL_BPT_SUPPLY, _DEFAULT_MINIMUM_BPT);\n        }\n        IVault.JoinPoolRequest memory request = IVault.JoinPoolRequest({\n            assets: assets,\n            maxAmountsIn: maxAmountsIn,\n            userData: abi.encode(JoinKind.INIT, maxAmountsIn),\n            fromInternalBalance: false\n        });         \n        IVault(vault).joinPool(poolId, address(this), address(this), request);\n    }\n\n    function setIssuingFee(address security, address currency, uint256 swapfee) override external onlyDP(msg.sender) {\n        customFee[security][currency] = swapfee;\n    }\n\n    function getIssuingFee(address security, address currency) override external view returns(uint256){\n        return customFee[security][currency];\n    }\n    \n    \n    /**\n        Used by Secondary pools to request settlement for trades\n        @param  tradeToReport     data structure holding order matching data\n     */\n    function requestSettlement(ITrade.trade memory tradeToReport, IOrder orderbook) override external {\n        require(pools[msg.sender]!=\"\", \"Invalid pool request\");\n        IOrder.order memory orderByParty = orderbook.getOrder(tradeToReport.partyRef);\n        IOrder.order memory orderByCounterparty = orderbook.getOrder(tradeToReport.counterpartyRef);\n        address securityTraded = orderbook.getSecurity(); \n        address currencySettled = orderbook.getCurrency();\n        address party = orderByParty.tokenIn==securityTraded ? orderByParty.party : orderByCounterparty.party;\n        address counterparty = orderByCounterparty.tokenIn==currencySettled ? orderByCounterparty.party : orderByParty.party;\n        uint256 amount = tradeToReport.securityTraded; \n        bytes32 _DPID = getTransferAgent(securityTraded);\n        uint256 price = FixedPoint.divDown(_upscale(tradeToReport.currencyTraded, _computeScalingFactor(IERC20(currencySettled))), _upscale(tradeToReport.securityTraded, _computeScalingFactor(IERC20(securityTraded))));\n        ISettlor.settlement memory tradeToSettle = ISettlor.settlement({\n            transferor: party, //sells securities\n            transferee: counterparty, //buys securities\n            security: securityTraded,\n            status: \"Pending\",\n            currency: currencySettled,\n            price: price,\n            unitsToTransfer: amount,\n            consideration: _upscale(tradeToReport.currencyTraded, _computeScalingFactor(IERC20(currencySettled))),\n            executionDate: tradeToReport.dt,\n            partyRef: orderByParty.tokenIn==securityTraded ? tradeToReport.partyRef : tradeToReport.counterpartyRef,\n            counterpartyRef: orderByCounterparty.tokenIn==currencySettled ? tradeToReport.counterpartyRef : tradeToReport.partyRef,\n            DPID: _DPID,\n            orderPool: orderbook\n        });\n        bytes32 ref = keccak256(abi.encodePacked(tradeToReport.partyRef, tradeToReport.counterpartyRef));\n        //if(settlements[ref].transferor==address(0x0)){\n            settlements[ref] = tradeToSettle;\n            ISettlor.subscriptions memory subscription = ISettlor.subscriptions({\n                investor: counterparty, //buyer of securities\n                asset: securityTraded,\n                currency: currencySettled, \n                amount: amount,   \n                price: price \n            });\n            bytes32 poolId = orderbook.getPoolId();\n            investors[poolId].push(subscription);\n            emit subscribers(poolId, party, counterparty, securityTraded, currencySettled, amount, subscription.price, ref, tradeToSettle.DPID, block.timestamp);\n            trades[tradeToSettle.DPID].push(ref);\n            if(products.getDP(securityTraded)==address(0x0)) //if the issue is not managed\n                setSettlement(ref, \"Confirm\");\n        //}\n    }\n    \n    /**\n        Fetches trade settlement requests for depository participant\n        @param  dpid         identifier of depository participant (eg, transfer agent) that is authorized to settle the asset \n     */\n    function getSettlementRequests(bytes32 dpid, bytes32 poolId) override external view onlyIssueManager(msg.sender, poolSecurity[poolId]) returns(bytes32[] memory){\n        return trades[dpid];\n    }\n\n    /**\n        Fetches a specific trade settlement request        \n        @param  ref         reference to the trade\n     */\n    function getSettlementRequest(bytes32 ref) override external view returns(settlement memory){\n        require(ref!=\"\", \"Invalid reference\"); \n        return settlements[ref];\n    }\n    \n    function close(bytes32 poolId) override external onlyIssueManager(msg.sender, poolSecurity[poolId]) {\n        address currency = ISecondaryIssuePool(poolAddress[poolId]).getCurrency(); \n        // exit the pool here   \n        (IERC20[] memory tokens, , ) = IVault(vault).getPoolTokens(poolId);\n        IAsset[] memory assets = _convertERC20sToAssets(tokens);\n        uint256[] memory amountsOut = new uint256[](tokens.length);\n        IVault.ExitPoolRequest memory request = IVault.ExitPoolRequest({\n            assets: assets,\n            minAmountsOut: amountsOut,\n            userData: abi.encode(ExitKind.EXACT_BPT_IN_FOR_TOKENS_OUT, 0),\n            toInternalBalance: false\n        });         \n        IVault(vault).exitPool(poolId, address(this), payable(address(this)), request);\n        emit closures(poolId, poolSecurity[poolId], block.timestamp);\n        IERC20(currency).transfer(issuer[poolId], IERC20(currency).balanceOf(address(this)));\n        IERC20(poolSecurity[poolId]).transfer(issuer[poolId], IERC20(poolSecurity[poolId]).balanceOf(address(this)));\n    }\n    \n    /**\n        Sets settlement status for trades executed\n        @param  ref         reference to the trade executed\n        @param  status      settlement status\n     */\n    function setSettlementStatus(bytes32 ref, bytes32 status) override external onlyIssueManager(msg.sender, settlements[ref].security){\n        setSettlement(ref, status);\n    }\n    \n    function setSettlement(bytes32 ref, bytes32 status) private {\n        bytes32 DPID = settlements[ref].DPID;\n        bool settled = false;\n        require(status==\"Confirm\" || status==\"Reject\", \"Settlement status invalid\");\n        settlementFee = customFee[settlements[ref].security][settlements[ref].currency]==0 ? FixedPoint.mulDown(settlements[ref].consideration, fee)\n                    : FixedPoint.mulDown(settlements[ref].consideration, customFee[settlements[ref].security][settlements[ref].currency]);\n        uint256 pay = FixedPoint.divDown(settlementFee, _computeScalingFactor(IERC20(settlements[ref].currency)));\n        if(status==\"Confirm\" && settlements[ref].status!=\"Confirm\" && settlements[ref].status!=\"Fail\"){            \n            fees[settlements[ref].currency] = Math.add(fees[settlements[ref].currency], pay);\n            if(IERC20(settlements[ref].currency).transferFrom(settlements[ref].transferor, address(this), pay)){  //seller pays the fee after getting paid from pool          \n                settlements[ref].orderPool.orderFilled(settlements[ref].partyRef, settlements[ref].counterpartyRef, settlements[ref].executionDate);\n                for(uint i=0; i<trades[DPID].length; i++){\n                    if(trades[DPID][i]==ref){\n                        if(i==trades[DPID].length-1)\n                            delete trades[DPID][i];\n                        else\n                            trades[DPID][i] = trades[DPID][i+1];\n                    }\n                }\n                settlements[ref].status = \"Confirm\";    \n                settled = true;            \n            }\n            else{\n                uint256 consideration = _downscaleDown(settlements[ref].consideration, _computeScalingFactor(IERC20(settlements[ref].currency)));\n                settlements[ref].orderPool.revertTrade(settlements[ref].partyRef, settlements[ref].unitsToTransfer, settlements[ref].price);\n                settlements[ref].orderPool.revertTrade(settlements[ref].counterpartyRef, consideration, settlements[ref].price);\n                IERC20(settlements[ref].currency).transferFrom(settlements[ref].transferor, settlements[ref].transferee, consideration);\n                IERC20(settlements[ref].security).transferFrom(settlements[ref].transferee, settlements[ref].transferor, settlements[ref].unitsToTransfer);\n                settlements[ref].status = \"Fail\";\n                settled = true;\n            }\n        }\n        else if(status==\"Reject\" && settlements[ref].status!=\"Reject\"){\n            uint256 consideration = _downscaleDown(settlements[ref].consideration, _computeScalingFactor(IERC20(settlements[ref].currency)));\n            IERC20(settlements[ref].currency).transferFrom(settlements[ref].transferor, settlements[ref].transferee, consideration);\n            IERC20(settlements[ref].security).transferFrom(settlements[ref].transferee, settlements[ref].transferor, settlements[ref].unitsToTransfer);\n            settlements[ref].status = \"Reject\";\n            settled == true;\n        }\n        //if(settled){\n            bytes32 poolId = settlements[ref].orderPool.getPoolId();\n            emit tradeSettled(\n                            poolId,\n                            settlements[ref].transferor, \n                            settlements[ref].transferee, \n                            settlements[ref].unitsToTransfer,\n                            settlements[ref].security,\n                            settlements[ref].price,\n                            settlements[ref].currency,\n                            settlements[ref].status,\n                            ref,\n                            pay,\n                            block.timestamp\n                        );  \n        //}          \n    }\n\n    /**\n        Retrieve investors in secondary pools\n        @param  poolId  pool identity\n     */\n    function getSubscribers(bytes32 poolId) override external view onlyIssueManager(msg.sender, poolSecurity[poolId]) returns(ISettlor.subscriptions[] memory){\n        return investors[poolId];\n    }\n\n    /**\n        Gets transfer agent for the security in the trade\n        @param  security  address of security traded\n     */\n    function getTransferAgent(address security) private view returns(bytes32){\n        address dp = products.getDP(security);\n        return(client.getTransferAgent(dp));\n    } \n\n    /**\n        Fetch trading fee collected in Balancer vault\n        @param  _token  address of token in which fee is collected\n     */\n    function getTradingFeeCollected(address _token) override external returns(uint256){\n        require(msg.sender==distribution, \"Unauthorized collection request\");\n        uint256 feeCollected = fees[_token];\n        fees[_token] = Math.sub(fees[_token], feeCollected);\n        IERC20(_token).transfer(distribution, feeCollected);\n        emit feecollection(address(this), feeCollected, block.timestamp);\n        return feeCollected;\n    }   \n\n    /**\n     * @dev This helper function is a fast and cheap way to convert between IERC20[] and IAsset[] types\n     */\n    function _convertERC20sToAssets(IERC20[] memory tokens) internal pure returns (IAsset[] memory assets) {\n        // solhint-disable-next-line no-inline-assembly\n        assembly {\n            assets := tokens\n        }\n    }\n\n    /**\n     * @dev Returns a scaling factor that, when multiplied to a token amount for `token`, normalizes its balance as if\n     * it had 18 decimals.\n     */\n    function _computeScalingFactor(IERC20 token) internal view returns (uint256) {\n        // Tokens that don't implement the `decimals` method are not supported.\n        uint256 tokenDecimals = ERC20(address(token)).decimals();\n\n        // Tokens with more than 18 decimals are not supported.\n        uint256 decimalsDifference = Math.sub(18, tokenDecimals);\n        return FixedPoint.ONE * 10**decimalsDifference;\n    }\n\n    /**\n     * @dev Reverses the `scalingFactor` applied to `amount`, resulting in a smaller or equal value depending on\n     * whether it needed scaling or not. The result is rounded down.\n     */\n    function _downscaleDown(uint256 amount, uint256 scalingFactor) internal pure returns (uint256) {\n        return FixedPoint.divDown(amount, scalingFactor);\n    }\n\n    /**\n     * @dev Applies `scalingFactor` to `amount`, resulting in a larger or equal value depending on whether it needed\n     * scaling or not.\n     */\n    function _upscale(uint256 amount, uint256 scalingFactor) internal pure returns (uint256) {\n        // Upscale rounding wouldn't necessarily always go in the same direction: in a swap for example the balance of\n        // token in should be rounded up, and that of token out rounded down. This is the only place where we round in\n        // the same direction for all amounts, as the impact of this rounding is expected to be minimal (and there's no\n        // rounding error unless `_scalingFactor()` is overriden).\n        return FixedPoint.mulDown(amount, scalingFactor);\n    }\n\n}",
    "sourcePath": "D:\\Code\\verified-balancer\\contracts\\SecondaryIssueManager.sol",
    "ast": {
        "absolutePath": "project:/contracts/SecondaryIssueManager.sol",
        "exportedSymbols": {
            "SecondaryIssueManager": [
                10930
            ]
        },
        "id": 10931,
        "license": "BUSL1.1",
        "nodeType": "SourceUnit",
        "nodes": [
            {
                "id": 9285,
                "literals": [
                    "solidity",
                    "0.7",
                    ".1"
                ],
                "nodeType": "PragmaDirective",
                "src": "112:22:19"
            },
            {
                "id": 9286,
                "literals": [
                    "experimental",
                    "ABIEncoderV2"
                ],
                "nodeType": "PragmaDirective",
                "src": "135:33:19"
            },
            {
                "absolutePath": "project:/contracts/interfaces/ISettlor.sol",
                "file": "./interfaces/ISettlor.sol",
                "id": 9287,
                "nodeType": "ImportDirective",
                "scope": 10931,
                "sourceUnit": 12259,
                "src": "170:35:19",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/IOrder.sol",
                "file": "./interfaces/IOrder.sol",
                "id": 9288,
                "nodeType": "ImportDirective",
                "scope": 10931,
                "sourceUnit": 11978,
                "src": "206:33:19",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/ITrade.sol",
                "file": "./interfaces/ITrade.sol",
                "id": 9289,
                "nodeType": "ImportDirective",
                "scope": 10931,
                "sourceUnit": 12276,
                "src": "240:33:19",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/IFactory.sol",
                "file": "./interfaces/IFactory.sol",
                "id": 9290,
                "nodeType": "ImportDirective",
                "scope": 10931,
                "sourceUnit": 11118,
                "src": "274:35:19",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/ISecurity.sol",
                "file": "./interfaces/ISecurity.sol",
                "id": 9291,
                "nodeType": "ImportDirective",
                "scope": 10931,
                "sourceUnit": 12123,
                "src": "310:36:19",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/VerifiedClient.sol",
                "file": "./interfaces/VerifiedClient.sol",
                "id": 9292,
                "nodeType": "ImportDirective",
                "scope": 10931,
                "sourceUnit": 12415,
                "src": "347:41:19",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/ISecondaryIssuePool.sol",
                "file": "./interfaces/ISecondaryIssuePool.sol",
                "id": 9293,
                "nodeType": "ImportDirective",
                "scope": 10931,
                "sourceUnit": 12073,
                "src": "389:46:19",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "project:/contracts/interfaces/ISecondaryIssuePoolFactory.sol",
                "file": "./interfaces/ISecondaryIssuePoolFactory.sol",
                "id": 9294,
                "nodeType": "ImportDirective",
                "scope": 10931,
                "sourceUnit": 12094,
                "src": "436:53:19",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "@balancer-labs/v2-solidity-utils/contracts/math/Math.sol",
                "file": "@balancer-labs/v2-solidity-utils/contracts/math/Math.sol",
                "id": 9295,
                "nodeType": "ImportDirective",
                "scope": 10931,
                "sourceUnit": 2368,
                "src": "491:66:19",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "@balancer-labs/v2-solidity-utils/contracts/math/FixedPoint.sol",
                "file": "@balancer-labs/v2-solidity-utils/contracts/math/FixedPoint.sol",
                "id": 9296,
                "nodeType": "ImportDirective",
                "scope": 10931,
                "sourceUnit": 781,
                "src": "558:72:19",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "@balancer-labs/v2-solidity-utils/contracts/openzeppelin/ERC20.sol",
                "file": "@balancer-labs/v2-solidity-utils/contracts/openzeppelin/ERC20.sol",
                "id": 9297,
                "nodeType": "ImportDirective",
                "scope": 10931,
                "sourceUnit": 2861,
                "src": "631:75:19",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "@balancer-labs/v2-solidity-utils/contracts/openzeppelin/IERC20.sol",
                "file": "@balancer-labs/v2-solidity-utils/contracts/openzeppelin/IERC20.sol",
                "id": 9298,
                "nodeType": "ImportDirective",
                "scope": 10931,
                "sourceUnit": 2939,
                "src": "707:76:19",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "@balancer-labs/v2-solidity-utils/contracts/openzeppelin/Ownable.sol",
                "file": "@balancer-labs/v2-solidity-utils/contracts/openzeppelin/Ownable.sol",
                "id": 9299,
                "nodeType": "ImportDirective",
                "scope": 10931,
                "sourceUnit": 3046,
                "src": "784:77:19",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "abstract": false,
                "baseContracts": [
                    {
                        "baseName": {
                            "id": 9300,
                            "name": "ISettlor",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 12258,
                            "src": "898:8:19",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ISettlor_$12258",
                                "typeString": "contract ISettlor"
                            }
                        },
                        "id": 9301,
                        "nodeType": "InheritanceSpecifier",
                        "src": "898:8:19"
                    },
                    {
                        "baseName": {
                            "id": 9302,
                            "name": "Ownable",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 3045,
                            "src": "908:7:19",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Ownable_$3045",
                                "typeString": "contract Ownable"
                            }
                        },
                        "id": 9303,
                        "nodeType": "InheritanceSpecifier",
                        "src": "908:7:19"
                    }
                ],
                "contractDependencies": [
                    3045,
                    12258
                ],
                "contractKind": "contract",
                "fullyImplemented": true,
                "id": 10930,
                "linearizedBaseContracts": [
                    10930,
                    3045,
                    12258
                ],
                "name": "SecondaryIssueManager",
                "nodeType": "ContractDefinition",
                "nodes": [
                    {
                        "id": 9306,
                        "libraryName": {
                            "id": 9304,
                            "name": "Math",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 2367,
                            "src": "929:4:19",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Math_$2367",
                                "typeString": "library Math"
                            }
                        },
                        "nodeType": "UsingForDirective",
                        "src": "923:23:19",
                        "typeName": {
                            "id": 9305,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "938:7:19",
                            "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                            }
                        }
                    },
                    {
                        "id": 9309,
                        "libraryName": {
                            "id": 9307,
                            "name": "FixedPoint",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 780,
                            "src": "957:10:19",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_FixedPoint_$780",
                                "typeString": "library FixedPoint"
                            }
                        },
                        "nodeType": "UsingForDirective",
                        "src": "951:29:19",
                        "typeName": {
                            "id": 9308,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "972:7:19",
                            "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                            }
                        }
                    },
                    {
                        "constant": false,
                        "id": 9311,
                        "mutability": "mutable",
                        "name": "factory",
                        "nodeType": "VariableDeclaration",
                        "scope": 10930,
                        "src": "1012:23:19",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                        },
                        "typeName": {
                            "id": 9310,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "1012:7:19",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 9313,
                        "mutability": "mutable",
                        "name": "vault",
                        "nodeType": "VariableDeclaration",
                        "scope": 10930,
                        "src": "1046:21:19",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                        },
                        "typeName": {
                            "id": 9312,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "1046:7:19",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 9315,
                        "mutability": "mutable",
                        "name": "fee",
                        "nodeType": "VariableDeclaration",
                        "scope": 10930,
                        "src": "1094:19:19",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                        },
                        "typeName": {
                            "id": 9314,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "1094:7:19",
                            "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 9317,
                        "mutability": "mutable",
                        "name": "settlementFee",
                        "nodeType": "VariableDeclaration",
                        "scope": 10930,
                        "src": "1119:29:19",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                        },
                        "typeName": {
                            "id": 9316,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "1119:7:19",
                            "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 9323,
                        "mutability": "mutable",
                        "name": "customFee",
                        "nodeType": "VariableDeclaration",
                        "scope": 10930,
                        "src": "1215:65:19",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
                            "typeString": "mapping(address => mapping(address => uint256))"
                        },
                        "typeName": {
                            "id": 9322,
                            "keyType": {
                                "id": 9318,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "1223:7:19",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "1215:47:19",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
                                "typeString": "mapping(address => mapping(address => uint256))"
                            },
                            "valueType": {
                                "id": 9321,
                                "keyType": {
                                    "id": 9319,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1242:7:19",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    }
                                },
                                "nodeType": "Mapping",
                                "src": "1234:27:19",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                    "typeString": "mapping(address => uint256)"
                                },
                                "valueType": {
                                    "id": 9320,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1253:7:19",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    }
                                }
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 9327,
                        "mutability": "mutable",
                        "name": "settlements",
                        "nodeType": "VariableDeclaration",
                        "scope": 10930,
                        "src": "1341:51:19",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                            "typeString": "mapping(bytes32 => struct ISettlor.settlement)"
                        },
                        "typeName": {
                            "id": 9326,
                            "keyType": {
                                "id": 9324,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "1349:7:19",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "1341:39:19",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                "typeString": "mapping(bytes32 => struct ISettlor.settlement)"
                            },
                            "valueType": {
                                "id": 9325,
                                "name": "ISettlor.settlement",
                                "nodeType": "UserDefinedTypeName",
                                "referencedDeclaration": 12173,
                                "src": "1360:19:19",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_settlement_$12173_storage_ptr",
                                    "typeString": "struct ISettlor.settlement"
                                }
                            }
                        },
                        "visibility": "internal"
                    },
                    {
                        "constant": false,
                        "id": 9332,
                        "mutability": "mutable",
                        "name": "trades",
                        "nodeType": "VariableDeclaration",
                        "scope": 10930,
                        "src": "1464:44:19",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_bytes32_$dyn_storage_$",
                            "typeString": "mapping(bytes32 => bytes32[])"
                        },
                        "typeName": {
                            "id": 9331,
                            "keyType": {
                                "id": 9328,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "1472:7:19",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "1464:29:19",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_bytes32_$dyn_storage_$",
                                "typeString": "mapping(bytes32 => bytes32[])"
                            },
                            "valueType": {
                                "baseType": {
                                    "id": 9329,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1483:7:19",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    }
                                },
                                "id": 9330,
                                "nodeType": "ArrayTypeName",
                                "src": "1483:9:19",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                    "typeString": "bytes32[]"
                                }
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 9336,
                        "mutability": "mutable",
                        "name": "pools",
                        "nodeType": "VariableDeclaration",
                        "scope": 10930,
                        "src": "1553:41:19",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$",
                            "typeString": "mapping(address => bytes32)"
                        },
                        "typeName": {
                            "id": 9335,
                            "keyType": {
                                "id": 9333,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "1561:7:19",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "1553:27:19",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$",
                                "typeString": "mapping(address => bytes32)"
                            },
                            "valueType": {
                                "id": 9334,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "1572:7:19",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                }
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 9340,
                        "mutability": "mutable",
                        "name": "poolAddress",
                        "nodeType": "VariableDeclaration",
                        "scope": 10930,
                        "src": "1639:47:19",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                            "typeString": "mapping(bytes32 => address)"
                        },
                        "typeName": {
                            "id": 9339,
                            "keyType": {
                                "id": 9337,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "1647:7:19",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "1639:27:19",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                "typeString": "mapping(bytes32 => address)"
                            },
                            "valueType": {
                                "id": 9338,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "1658:7:19",
                                "stateMutability": "nonpayable",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 9344,
                        "mutability": "mutable",
                        "name": "poolSecurity",
                        "nodeType": "VariableDeclaration",
                        "scope": 10930,
                        "src": "1740:48:19",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                            "typeString": "mapping(bytes32 => address)"
                        },
                        "typeName": {
                            "id": 9343,
                            "keyType": {
                                "id": 9341,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "1748:7:19",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "1740:27:19",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                "typeString": "mapping(bytes32 => address)"
                            },
                            "valueType": {
                                "id": 9342,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "1759:7:19",
                                "stateMutability": "nonpayable",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 9348,
                        "mutability": "mutable",
                        "name": "issuer",
                        "nodeType": "VariableDeclaration",
                        "scope": 10930,
                        "src": "1827:42:19",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                            "typeString": "mapping(bytes32 => address)"
                        },
                        "typeName": {
                            "id": 9347,
                            "keyType": {
                                "id": 9345,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "1835:7:19",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "1827:27:19",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                "typeString": "mapping(bytes32 => address)"
                            },
                            "valueType": {
                                "id": 9346,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "1846:7:19",
                                "stateMutability": "nonpayable",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 9353,
                        "mutability": "mutable",
                        "name": "investors",
                        "nodeType": "VariableDeclaration",
                        "scope": 10930,
                        "src": "1911:54:19",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_subscriptions_$12146_storage_$dyn_storage_$",
                            "typeString": "mapping(bytes32 => struct ISettlor.subscriptions[])"
                        },
                        "typeName": {
                            "id": 9352,
                            "keyType": {
                                "id": 9349,
                                "name": "bytes32",
                                "nodeType": "ElementaryTypeName",
                                "src": "1919:7:19",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "1911:35:19",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_subscriptions_$12146_storage_$dyn_storage_$",
                                "typeString": "mapping(bytes32 => struct ISettlor.subscriptions[])"
                            },
                            "valueType": {
                                "baseType": {
                                    "id": 9350,
                                    "name": "subscriptions",
                                    "nodeType": "UserDefinedTypeName",
                                    "referencedDeclaration": 12146,
                                    "src": "1930:13:19",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_subscriptions_$12146_storage_ptr",
                                        "typeString": "struct ISettlor.subscriptions"
                                    }
                                },
                                "id": 9351,
                                "nodeType": "ArrayTypeName",
                                "src": "1930:15:19",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_struct$_subscriptions_$12146_storage_$dyn_storage_ptr",
                                    "typeString": "struct ISettlor.subscriptions[]"
                                }
                            }
                        },
                        "visibility": "internal"
                    },
                    {
                        "constant": false,
                        "id": 9357,
                        "mutability": "mutable",
                        "name": "fees",
                        "nodeType": "VariableDeclaration",
                        "scope": 10930,
                        "src": "2027:40:19",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                            "typeString": "mapping(address => uint256)"
                        },
                        "typeName": {
                            "id": 9356,
                            "keyType": {
                                "id": 9354,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "2035:7:19",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                }
                            },
                            "nodeType": "Mapping",
                            "src": "2027:27:19",
                            "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                "typeString": "mapping(address => uint256)"
                            },
                            "valueType": {
                                "id": 9355,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "2046:7:19",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                }
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 9359,
                        "mutability": "mutable",
                        "name": "client",
                        "nodeType": "VariableDeclaration",
                        "scope": 10930,
                        "src": "2123:29:19",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_contract$_VerifiedClient_$12414",
                            "typeString": "contract VerifiedClient"
                        },
                        "typeName": {
                            "id": 9358,
                            "name": "VerifiedClient",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 12414,
                            "src": "2123:14:19",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_VerifiedClient_$12414",
                                "typeString": "contract VerifiedClient"
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 9361,
                        "mutability": "mutable",
                        "name": "products",
                        "nodeType": "VariableDeclaration",
                        "scope": 10930,
                        "src": "2267:25:19",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IFactory_$11117",
                            "typeString": "contract IFactory"
                        },
                        "typeName": {
                            "id": 9360,
                            "name": "IFactory",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 11117,
                            "src": "2267:8:19",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IFactory_$11117",
                                "typeString": "contract IFactory"
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": false,
                        "id": 9363,
                        "mutability": "mutable",
                        "name": "distribution",
                        "nodeType": "VariableDeclaration",
                        "scope": 10930,
                        "src": "2299:28:19",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                        },
                        "typeName": {
                            "id": 9362,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "2299:7:19",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": true,
                        "id": 9371,
                        "mutability": "constant",
                        "name": "_INITIAL_BPT_SUPPLY",
                        "nodeType": "VariableDeclaration",
                        "scope": 10930,
                        "src": "2334:59:19",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                        },
                        "typeName": {
                            "id": 9364,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "2334:7:19",
                            "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                            }
                        },
                        "value": {
                            "commonType": {
                                "typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
                                "typeString": "int_const 5192...(26 digits omitted)...0095"
                            },
                            "id": 9370,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "leftExpression": {
                                "commonType": {
                                    "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
                                    "typeString": "int_const 5192...(26 digits omitted)...0096"
                                },
                                "id": 9368,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "leftExpression": {
                                    "hexValue": "32",
                                    "id": 9365,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2381:1:19",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_rational_2_by_1",
                                        "typeString": "int_const 2"
                                    },
                                    "value": "2"
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "**",
                                "rightExpression": {
                                    "components": [
                                        {
                                            "hexValue": "313132",
                                            "id": 9366,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "2385:3:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_112_by_1",
                                                "typeString": "int_const 112"
                                            },
                                            "value": "112"
                                        }
                                    ],
                                    "id": 9367,
                                    "isConstant": false,
                                    "isInlineArray": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "TupleExpression",
                                    "src": "2384:5:19",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_rational_112_by_1",
                                        "typeString": "int_const 112"
                                    }
                                },
                                "src": "2381:8:19",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
                                    "typeString": "int_const 5192...(26 digits omitted)...0096"
                                }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                                "hexValue": "31",
                                "id": 9369,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2392:1:19",
                                "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                },
                                "value": "1"
                            },
                            "src": "2381:12:19",
                            "typeDescriptions": {
                                "typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
                                "typeString": "int_const 5192...(26 digits omitted)...0095"
                            }
                        },
                        "visibility": "private"
                    },
                    {
                        "constant": true,
                        "id": 9374,
                        "mutability": "constant",
                        "name": "_DEFAULT_MINIMUM_BPT",
                        "nodeType": "VariableDeclaration",
                        "scope": 10930,
                        "src": "2399:51:19",
                        "stateVariable": true,
                        "storageLocation": "default",
                        "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                        },
                        "typeName": {
                            "id": 9372,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "2399:7:19",
                            "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                            }
                        },
                        "value": {
                            "hexValue": "316536",
                            "id": 9373,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2447:3:19",
                            "typeDescriptions": {
                                "typeIdentifier": "t_rational_1000000_by_1",
                                "typeString": "int_const 1000000"
                            },
                            "value": "1e6"
                        },
                        "visibility": "private"
                    },
                    {
                        "anonymous": false,
                        "id": 9398,
                        "name": "tradeSettled",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 9397,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 9376,
                                    "indexed": true,
                                    "mutability": "mutable",
                                    "name": "poolid",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9398,
                                    "src": "2486:22:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 9375,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2486:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9378,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "transferor",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9398,
                                    "src": "2518:18:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 9377,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2518:7:19",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9380,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "transferee",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9398,
                                    "src": "2546:18:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 9379,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2546:7:19",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9382,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "unitsToTransfer",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9398,
                                    "src": "2574:23:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 9381,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2574:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9384,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "security",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9398,
                                    "src": "2607:16:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 9383,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2607:7:19",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9386,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "price",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9398,
                                    "src": "2633:13:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 9385,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2633:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9388,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9398,
                                    "src": "2656:16:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 9387,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2656:7:19",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9390,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "settlementStatus",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9398,
                                    "src": "2682:24:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 9389,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2682:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9392,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "tradeRef",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9398,
                                    "src": "2716:16:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 9391,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2716:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9394,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "fee",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9398,
                                    "src": "2742:11:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 9393,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2742:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9396,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "timestamp",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9398,
                                    "src": "2763:17:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 9395,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2763:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2475:311:19"
                        },
                        "src": "2457:330:19"
                    },
                    {
                        "anonymous": false,
                        "id": 9420,
                        "name": "subscribers",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 9419,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 9400,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "poolId",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9420,
                                    "src": "2811:14:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 9399,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2811:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9402,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "seller",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9420,
                                    "src": "2827:14:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 9401,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2827:7:19",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9404,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "investor",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9420,
                                    "src": "2843:16:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 9403,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2843:7:19",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9406,
                                    "indexed": true,
                                    "mutability": "mutable",
                                    "name": "securityTraded",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9420,
                                    "src": "2886:30:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 9405,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2886:7:19",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9408,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "currencySettled",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9420,
                                    "src": "2918:23:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 9407,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2918:7:19",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9410,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9420,
                                    "src": "2943:14:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 9409,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2943:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9412,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "price",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9420,
                                    "src": "2959:13:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 9411,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2959:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9414,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "tradeRef",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9420,
                                    "src": "2998:16:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 9413,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "2998:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9416,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "DPID",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9420,
                                    "src": "3016:12:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 9415,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3016:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9418,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "timestamp",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9420,
                                    "src": "3030:17:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 9417,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3030:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "2810:238:19"
                        },
                        "src": "2793:256:19"
                    },
                    {
                        "anonymous": false,
                        "id": 9428,
                        "name": "closures",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 9427,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 9422,
                                    "indexed": true,
                                    "mutability": "mutable",
                                    "name": "poolId",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9428,
                                    "src": "3070:22:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 9421,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3070:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9424,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "security",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9428,
                                    "src": "3094:16:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 9423,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3094:7:19",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9426,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "timestamp",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9428,
                                    "src": "3112:17:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 9425,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3112:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "3069:61:19"
                        },
                        "src": "3055:76:19"
                    },
                    {
                        "anonymous": false,
                        "id": 9436,
                        "name": "feecollection",
                        "nodeType": "EventDefinition",
                        "parameters": {
                            "id": 9435,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 9430,
                                    "indexed": true,
                                    "mutability": "mutable",
                                    "name": "platform",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9436,
                                    "src": "3156:24:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 9429,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3156:7:19",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9432,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "collection",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9436,
                                    "src": "3182:18:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 9431,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3182:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9434,
                                    "indexed": false,
                                    "mutability": "mutable",
                                    "name": "timestamp",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9436,
                                    "src": "3202:17:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 9433,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3202:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "3155:65:19"
                        },
                        "src": "3136:85:19"
                    },
                    {
                        "body": {
                            "id": 9457,
                            "nodeType": "Block",
                            "src": "3286:117:19",
                            "statements": [
                                {
                                    "assignments": [
                                        9443
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 9443,
                                            "mutability": "mutable",
                                            "name": "DP",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 9457,
                                            "src": "3296:10:19",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "typeName": {
                                                "id": 9442,
                                                "name": "address",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "3296:7:19",
                                                "stateMutability": "nonpayable",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 9448,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "id": 9446,
                                                "name": "security",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9440,
                                                "src": "3324:8:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "expression": {
                                                "id": 9444,
                                                "name": "products",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9361,
                                                "src": "3309:8:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_IFactory_$11117",
                                                    "typeString": "contract IFactory"
                                                }
                                            },
                                            "id": 9445,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "getDP",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 11116,
                                            "src": "3309:14:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                                                "typeString": "function (address) view external returns (address)"
                                            }
                                        },
                                        "id": 9447,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3309:24:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "3296:37:19"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "commonType": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                "id": 9452,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "id": 9450,
                                                    "name": "DP",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9443,
                                                    "src": "3351:2:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "id": 9451,
                                                    "name": "sender",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9438,
                                                    "src": "3355:6:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "src": "3351:10:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "hexValue": "4f6e6c79206973737565206d616e6167657273",
                                                "id": 9453,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "3363:21:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_5469c551907b09fc0ad4c47784eb4c2d1ad33bdbc0af57eae1b771927c4d0118",
                                                    "typeString": "literal_string \"Only issue managers\""
                                                },
                                                "value": "Only issue managers"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_5469c551907b09fc0ad4c47784eb4c2d1ad33bdbc0af57eae1b771927c4d0118",
                                                    "typeString": "literal_string \"Only issue managers\""
                                                }
                                            ],
                                            "id": 9449,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "3343:7:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 9454,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3343:42:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 9455,
                                    "nodeType": "ExpressionStatement",
                                    "src": "3343:42:19"
                                },
                                {
                                    "id": 9456,
                                    "nodeType": "PlaceholderStatement",
                                    "src": "3395:1:19"
                                }
                            ]
                        },
                        "id": 9458,
                        "name": "onlyIssueManager",
                        "nodeType": "ModifierDefinition",
                        "parameters": {
                            "id": 9441,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 9438,
                                    "mutability": "mutable",
                                    "name": "sender",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9458,
                                    "src": "3253:14:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 9437,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3253:7:19",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9440,
                                    "mutability": "mutable",
                                    "name": "security",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9458,
                                    "src": "3269:16:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 9439,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3269:7:19",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "3252:34:19"
                        },
                        "src": "3227:176:19",
                        "virtual": false,
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 9477,
                            "nodeType": "Block",
                            "src": "3440:131:19",
                            "statements": [
                                {
                                    "assignments": [
                                        9463,
                                        null,
                                        null
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 9463,
                                            "mutability": "mutable",
                                            "name": "role",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 9477,
                                            "src": "3451:12:19",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            },
                                            "typeName": {
                                                "id": 9462,
                                                "name": "bytes32",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "3451:7:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "visibility": "internal"
                                        },
                                        null,
                                        null
                                    ],
                                    "id": 9468,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "id": 9466,
                                                "name": "sender",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9460,
                                                "src": "3486:6:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "expression": {
                                                "id": 9464,
                                                "name": "client",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9359,
                                                "src": "3471:6:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_VerifiedClient_$12414",
                                                    "typeString": "contract VerifiedClient"
                                                }
                                            },
                                            "id": 9465,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "getRole",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 12315,
                                            "src": "3471:14:19",
                                            "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": 9467,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3471:22:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$_t_bytes32_$",
                                            "typeString": "tuple(bytes32,bytes32,bytes32)"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "3450:43:19"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "commonType": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                "id": 9472,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "id": 9470,
                                                    "name": "role",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9463,
                                                    "src": "3511:4:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "hexValue": "4450",
                                                    "id": 9471,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "string",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "3517:4:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_stringliteral_2e7a99dcc48463ba57667732f1d19d96afa51e11db099e5c9c708076a0a08040",
                                                        "typeString": "literal_string \"DP\""
                                                    },
                                                    "value": "DP"
                                                },
                                                "src": "3511:10:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "hexValue": "4f6e6c79204465706f736974617279207061727469636970616e74",
                                                "id": 9473,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "3523:29:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_894a32609b0720c7aeffef479ce5ac9284470305252de585494f8b33c6ad3c3f",
                                                    "typeString": "literal_string \"Only Depositary participant\""
                                                },
                                                "value": "Only Depositary participant"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_894a32609b0720c7aeffef479ce5ac9284470305252de585494f8b33c6ad3c3f",
                                                    "typeString": "literal_string \"Only Depositary participant\""
                                                }
                                            ],
                                            "id": 9469,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "3503:7:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 9474,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3503:50:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 9475,
                                    "nodeType": "ExpressionStatement",
                                    "src": "3503:50:19"
                                },
                                {
                                    "id": 9476,
                                    "nodeType": "PlaceholderStatement",
                                    "src": "3563:1:19"
                                }
                            ]
                        },
                        "id": 9478,
                        "name": "onlyDP",
                        "nodeType": "ModifierDefinition",
                        "parameters": {
                            "id": 9461,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 9460,
                                    "mutability": "mutable",
                                    "name": "sender",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9478,
                                    "src": "3425:14:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 9459,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3425:7:19",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "3424:16:19"
                        },
                        "src": "3409:162:19",
                        "virtual": false,
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 9524,
                            "nodeType": "Block",
                            "src": "4126:214:19",
                            "statements": [
                                {
                                    "expression": {
                                        "id": 9498,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "id": 9496,
                                            "name": "factory",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9311,
                                            "src": "4136:7:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "id": 9497,
                                            "name": "_factory",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9481,
                                            "src": "4146:8:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "src": "4136:18:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "id": 9499,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4136:18:19"
                                },
                                {
                                    "expression": {
                                        "id": 9502,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "id": 9500,
                                            "name": "fee",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9315,
                                            "src": "4164:3:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "id": 9501,
                                            "name": "_issueFeePercentage",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9483,
                                            "src": "4170:19:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "4164:25:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 9503,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4164:25:19"
                                },
                                {
                                    "expression": {
                                        "id": 9508,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "id": 9504,
                                            "name": "client",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9359,
                                            "src": "4199:6:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_VerifiedClient_$12414",
                                                "typeString": "contract VerifiedClient"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "arguments": [
                                                {
                                                    "id": 9506,
                                                    "name": "_client",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9485,
                                                    "src": "4223:7:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                ],
                                                "id": 9505,
                                                "name": "VerifiedClient",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 12414,
                                                "src": "4208:14:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_VerifiedClient_$12414_$",
                                                    "typeString": "type(contract VerifiedClient)"
                                                }
                                            },
                                            "id": 9507,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "4208:23:19",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_VerifiedClient_$12414",
                                                "typeString": "contract VerifiedClient"
                                            }
                                        },
                                        "src": "4199:32:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_VerifiedClient_$12414",
                                            "typeString": "contract VerifiedClient"
                                        }
                                    },
                                    "id": 9509,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4199:32:19"
                                },
                                {
                                    "expression": {
                                        "id": 9512,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "id": 9510,
                                            "name": "vault",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9313,
                                            "src": "4241:5:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "id": 9511,
                                            "name": "_vault",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9487,
                                            "src": "4249:6:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "src": "4241:14:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "id": 9513,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4241:14:19"
                                },
                                {
                                    "expression": {
                                        "id": 9518,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "id": 9514,
                                            "name": "products",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9361,
                                            "src": "4265:8:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_IFactory_$11117",
                                                "typeString": "contract IFactory"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "arguments": [
                                                {
                                                    "id": 9516,
                                                    "name": "_products",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9491,
                                                    "src": "4285:9:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                ],
                                                "id": 9515,
                                                "name": "IFactory",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 11117,
                                                "src": "4276:8:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_IFactory_$11117_$",
                                                    "typeString": "type(contract IFactory)"
                                                }
                                            },
                                            "id": 9517,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "4276:19:19",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_IFactory_$11117",
                                                "typeString": "contract IFactory"
                                            }
                                        },
                                        "src": "4265:30:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_IFactory_$11117",
                                            "typeString": "contract IFactory"
                                        }
                                    },
                                    "id": 9519,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4265:30:19"
                                },
                                {
                                    "expression": {
                                        "id": 9522,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "id": 9520,
                                            "name": "distribution",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9363,
                                            "src": "4305:12:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "id": 9521,
                                            "name": "_distribution",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9489,
                                            "src": "4320:13:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "src": "4305:28:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "id": 9523,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4305:28:19"
                                }
                            ]
                        },
                        "documentation": {
                            "id": 9479,
                            "nodeType": "StructuredDocumentation",
                            "src": "3577:385:19",
                            "text": "Initializes this asset management contract\n@param  _factory            reference to the secondary issue pool factory contract\n@param  _issueFeePercentage  percentage of trading fee to be charged by the asset manager\n@param  _client             address of Verified client contract\n@param  _vault              address of balancer vault"
                        },
                        "functionSelector": "a2dc2ab7",
                        "id": 9525,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "id": 9494,
                                "modifierName": {
                                    "id": 9493,
                                    "name": "onlyOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2993,
                                    "src": "4116:9:19",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "4116:9:19"
                            }
                        ],
                        "name": "initialize",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 9492,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 9481,
                                    "mutability": "mutable",
                                    "name": "_factory",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9525,
                                    "src": "3987:16:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 9480,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "3987:7:19",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9483,
                                    "mutability": "mutable",
                                    "name": "_issueFeePercentage",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9525,
                                    "src": "4005:27:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 9482,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4005:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9485,
                                    "mutability": "mutable",
                                    "name": "_client",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9525,
                                    "src": "4034:15:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 9484,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4034:7:19",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9487,
                                    "mutability": "mutable",
                                    "name": "_vault",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9525,
                                    "src": "4051:14:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 9486,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4051:7:19",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9489,
                                    "mutability": "mutable",
                                    "name": "_distribution",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9525,
                                    "src": "4067:21:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 9488,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4067:7:19",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9491,
                                    "mutability": "mutable",
                                    "name": "_products",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9525,
                                    "src": "4090:17:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 9490,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4090:7:19",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "3986:122:19"
                        },
                        "returnParameters": {
                            "id": 9495,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "4126:0:19"
                        },
                        "scope": 10930,
                        "src": "3967:373:19",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "public"
                    },
                    {
                        "body": {
                            "id": 9536,
                            "nodeType": "Block",
                            "src": "4393:27:19",
                            "statements": [
                                {
                                    "expression": {
                                        "id": 9534,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "id": 9532,
                                            "name": "fee",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9315,
                                            "src": "4403:3:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "id": 9533,
                                            "name": "_fee",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9527,
                                            "src": "4409:4:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "4403:10:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 9535,
                                    "nodeType": "ExpressionStatement",
                                    "src": "4403:10:19"
                                }
                            ]
                        },
                        "functionSelector": "69fe0e2d",
                        "id": 9537,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "id": 9530,
                                "modifierName": {
                                    "id": 9529,
                                    "name": "onlyOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 2993,
                                    "src": "4383:9:19",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "4383:9:19"
                            }
                        ],
                        "name": "setFee",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 9528,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 9527,
                                    "mutability": "mutable",
                                    "name": "_fee",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9537,
                                    "src": "4362:12:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 9526,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4362:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4361:14:19"
                        },
                        "returnParameters": {
                            "id": 9531,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "4393:0:19"
                        },
                        "scope": 10930,
                        "src": "4346:74:19",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "public"
                    },
                    {
                        "baseFunctions": [
                            12188
                        ],
                        "body": {
                            "id": 9804,
                            "nodeType": "Block",
                            "src": "5163:2052:19",
                            "statements": [
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 9581,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "id": 9571,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "commonType": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        "id": 9567,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftExpression": {
                                                            "arguments": [
                                                                {
                                                                    "expression": {
                                                                        "id": 9563,
                                                                        "name": "msg",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": -15,
                                                                        "src": "5208:3:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_magic_message",
                                                                            "typeString": "msg"
                                                                        }
                                                                    },
                                                                    "id": 9564,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "sender",
                                                                    "nodeType": "MemberAccess",
                                                                    "src": "5208:10:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address_payable",
                                                                        "typeString": "address payable"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address_payable",
                                                                        "typeString": "address payable"
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "arguments": [
                                                                        {
                                                                            "id": 9560,
                                                                            "name": "security",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 9540,
                                                                            "src": "5188:8:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "argumentTypes": [
                                                                            {
                                                                                "typeIdentifier": "t_address",
                                                                                "typeString": "address"
                                                                            }
                                                                        ],
                                                                        "id": 9559,
                                                                        "name": "IERC20",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 2938,
                                                                        "src": "5181:6:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                            "typeString": "type(contract IERC20)"
                                                                        }
                                                                    },
                                                                    "id": 9561,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "kind": "typeConversion",
                                                                    "lValueRequested": false,
                                                                    "names": [],
                                                                    "nodeType": "FunctionCall",
                                                                    "src": "5181:16:19",
                                                                    "tryCall": false,
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                        "typeString": "contract IERC20"
                                                                    }
                                                                },
                                                                "id": 9562,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "balanceOf",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 2877,
                                                                "src": "5181:26:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                                                    "typeString": "function (address) view external returns (uint256)"
                                                                }
                                                            },
                                                            "id": 9565,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "functionCall",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "5181:38:19",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "nodeType": "BinaryOperation",
                                                        "operator": ">=",
                                                        "rightExpression": {
                                                            "id": 9566,
                                                            "name": "securityOffered",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9546,
                                                            "src": "5221:15:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "src": "5181:55:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "&&",
                                                    "rightExpression": {
                                                        "commonType": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        "id": 9570,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftExpression": {
                                                            "id": 9568,
                                                            "name": "securityOffered",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9546,
                                                            "src": "5240:15:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "nodeType": "BinaryOperation",
                                                        "operator": ">=",
                                                        "rightExpression": {
                                                            "id": 9569,
                                                            "name": "minSecurityOrder",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9548,
                                                            "src": "5257:16:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "src": "5240:33:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "src": "5181:92:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "&&",
                                                "rightExpression": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "id": 9580,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "arguments": [
                                                            {
                                                                "expression": {
                                                                    "id": 9576,
                                                                    "name": "msg",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": -15,
                                                                    "src": "5304:3:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_magic_message",
                                                                        "typeString": "msg"
                                                                    }
                                                                },
                                                                "id": 9577,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "sender",
                                                                "nodeType": "MemberAccess",
                                                                "src": "5304:10:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "arguments": [
                                                                    {
                                                                        "id": 9573,
                                                                        "name": "currency",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 9542,
                                                                        "src": "5284:8:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "id": 9572,
                                                                    "name": "IERC20",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 2938,
                                                                    "src": "5277:6:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                        "typeString": "type(contract IERC20)"
                                                                    }
                                                                },
                                                                "id": 9574,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "typeConversion",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "5277:16:19",
                                                                "tryCall": false,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                    "typeString": "contract IERC20"
                                                                }
                                                            },
                                                            "id": 9575,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "balanceOf",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 2877,
                                                            "src": "5277:26:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                                                "typeString": "function (address) view external returns (uint256)"
                                                            }
                                                        },
                                                        "id": 9578,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "5277:38:19",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": ">=",
                                                    "rightExpression": {
                                                        "id": 9579,
                                                        "name": "cashAmount",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9550,
                                                        "src": "5317:10:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "5277:50:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "src": "5181:146:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "hexValue": "4e6f2062616c616e636520746f2063726561746520706f6f6c",
                                                "id": 9582,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "5346:27:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_d05be564bd54ad6151c2e50eb2ac86d2647726f6cf824747fecbebc8bc5730bc",
                                                    "typeString": "literal_string \"No balance to create pool\""
                                                },
                                                "value": "No balance to create pool"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_d05be564bd54ad6151c2e50eb2ac86d2647726f6cf824747fecbebc8bc5730bc",
                                                    "typeString": "literal_string \"No balance to create pool\""
                                                }
                                            ],
                                            "id": 9558,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "5173:7:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 9583,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5173:201:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 9584,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5173:201:19"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "expression": {
                                                    "id": 9589,
                                                    "name": "msg",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": -15,
                                                    "src": "5413:3:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_magic_message",
                                                        "typeString": "msg"
                                                    }
                                                },
                                                "id": 9590,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "sender",
                                                "nodeType": "MemberAccess",
                                                "src": "5413:10:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            },
                                            {
                                                "arguments": [
                                                    {
                                                        "id": 9593,
                                                        "name": "this",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": -28,
                                                        "src": "5433:4:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_SecondaryIssueManager_$10930",
                                                            "typeString": "contract SecondaryIssueManager"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_contract$_SecondaryIssueManager_$10930",
                                                            "typeString": "contract SecondaryIssueManager"
                                                        }
                                                    ],
                                                    "id": 9592,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "nodeType": "ElementaryTypeNameExpression",
                                                    "src": "5425:7:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_address_$",
                                                        "typeString": "type(address)"
                                                    },
                                                    "typeName": {
                                                        "id": 9591,
                                                        "name": "address",
                                                        "nodeType": "ElementaryTypeName",
                                                        "src": "5425:7:19",
                                                        "typeDescriptions": {}
                                                    }
                                                },
                                                "id": 9594,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "5425:13:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 9595,
                                                "name": "cashAmount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9550,
                                                "src": "5440:10:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "arguments": [
                                                    {
                                                        "id": 9586,
                                                        "name": "currency",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9542,
                                                        "src": "5390:8:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 9585,
                                                    "name": "ERC20",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 2860,
                                                    "src": "5384:5:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_ERC20_$2860_$",
                                                        "typeString": "type(contract ERC20)"
                                                    }
                                                },
                                                "id": 9587,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "5384:15:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_ERC20_$2860",
                                                    "typeString": "contract ERC20"
                                                }
                                            },
                                            "id": 9588,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "transferFrom",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 2582,
                                            "src": "5384:28:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                "typeString": "function (address,address,uint256) external returns (bool)"
                                            }
                                        },
                                        "id": 9596,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5384:67:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 9597,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5384:67:19"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "expression": {
                                                    "id": 9602,
                                                    "name": "msg",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": -15,
                                                    "src": "5490:3:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_magic_message",
                                                        "typeString": "msg"
                                                    }
                                                },
                                                "id": 9603,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "sender",
                                                "nodeType": "MemberAccess",
                                                "src": "5490:10:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            },
                                            {
                                                "arguments": [
                                                    {
                                                        "id": 9606,
                                                        "name": "this",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": -28,
                                                        "src": "5510:4:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_SecondaryIssueManager_$10930",
                                                            "typeString": "contract SecondaryIssueManager"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_contract$_SecondaryIssueManager_$10930",
                                                            "typeString": "contract SecondaryIssueManager"
                                                        }
                                                    ],
                                                    "id": 9605,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "nodeType": "ElementaryTypeNameExpression",
                                                    "src": "5502:7:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_address_$",
                                                        "typeString": "type(address)"
                                                    },
                                                    "typeName": {
                                                        "id": 9604,
                                                        "name": "address",
                                                        "nodeType": "ElementaryTypeName",
                                                        "src": "5502:7:19",
                                                        "typeDescriptions": {}
                                                    }
                                                },
                                                "id": 9607,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "5502:13:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 9608,
                                                "name": "securityOffered",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9546,
                                                "src": "5517:15:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "arguments": [
                                                    {
                                                        "id": 9599,
                                                        "name": "security",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9540,
                                                        "src": "5467:8:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 9598,
                                                    "name": "ERC20",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 2860,
                                                    "src": "5461:5:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_ERC20_$2860_$",
                                                        "typeString": "type(contract ERC20)"
                                                    }
                                                },
                                                "id": 9600,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "5461:15:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_ERC20_$2860",
                                                    "typeString": "contract ERC20"
                                                }
                                            },
                                            "id": 9601,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "transferFrom",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 2582,
                                            "src": "5461:28:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                "typeString": "function (address,address,uint256) external returns (bool)"
                                            }
                                        },
                                        "id": 9609,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5461:72:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 9610,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5461:72:19"
                                },
                                {
                                    "condition": {
                                        "commonType": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        },
                                        "id": 9616,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "arguments": [
                                                {
                                                    "id": 9613,
                                                    "name": "security",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9540,
                                                    "src": "5567:8:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                ],
                                                "expression": {
                                                    "id": 9611,
                                                    "name": "products",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9361,
                                                    "src": "5546:8:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_contract$_IFactory_$11117",
                                                        "typeString": "contract IFactory"
                                                    }
                                                },
                                                "id": 9612,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "getSecurity",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 11075,
                                                "src": "5546:20:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                                                    "typeString": "function (address) view external returns (address)"
                                                }
                                            },
                                            "id": 9614,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "5546:30:19",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "!=",
                                        "rightExpression": {
                                            "id": 9615,
                                            "name": "security",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9540,
                                            "src": "5578:8:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "src": "5546:40:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 9626,
                                    "nodeType": "IfStatement",
                                    "src": "5543:169:19",
                                    "trueBody": {
                                        "id": 9625,
                                        "nodeType": "Block",
                                        "src": "5587:125:19",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "arguments": [
                                                        {
                                                            "id": 9621,
                                                            "name": "vault",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9313,
                                                            "src": "5671:5:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "id": 9622,
                                                            "name": "securityOutstanding",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9544,
                                                            "src": "5678:19:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "arguments": [
                                                                {
                                                                    "id": 9618,
                                                                    "name": "security",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 9540,
                                                                    "src": "5651:8:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 9617,
                                                                "name": "ISecurity",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 12122,
                                                                "src": "5641:9:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_ISecurity_$12122_$",
                                                                    "typeString": "type(contract ISecurity)"
                                                                }
                                                            },
                                                            "id": 9619,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "5641:19:19",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_ISecurity_$12122",
                                                                "typeString": "contract ISecurity"
                                                            }
                                                        },
                                                        "id": 9620,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "whiteList",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 12121,
                                                        "src": "5641:29:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                                                            "typeString": "function (address,uint256) external"
                                                        }
                                                    },
                                                    "id": 9623,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "5641:57:19",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_tuple$__$",
                                                        "typeString": "tuple()"
                                                    }
                                                },
                                                "id": 9624,
                                                "nodeType": "ExpressionStatement",
                                                "src": "5641:57:19"
                                            }
                                        ]
                                    }
                                },
                                {
                                    "assignments": [
                                        9628
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 9628,
                                            "mutability": "mutable",
                                            "name": "pool",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 9804,
                                            "src": "5721:12:19",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "typeName": {
                                                "id": 9627,
                                                "name": "address",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "5721:7:19",
                                                "stateMutability": "nonpayable",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 9640,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "hexValue": "566572696669656420506f6f6c20546f6b656e",
                                                "id": 9633,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "5792:21:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_d8407c43b70b062a4ebfce2d65b9d672a39ddff01e2772e896f61833dce954b7",
                                                    "typeString": "literal_string \"Verified Pool Token\""
                                                },
                                                "value": "Verified Pool Token"
                                            },
                                            {
                                                "hexValue": "565054",
                                                "id": 9634,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "5827:5:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_7fee470b81c86493872dc1c9070ce794188d075d1c10f31e689bb13cbd714392",
                                                    "typeString": "literal_string \"VPT\""
                                                },
                                                "value": "VPT"
                                            },
                                            {
                                                "id": 9635,
                                                "name": "security",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9540,
                                                "src": "5846:8:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 9636,
                                                "name": "currency",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9542,
                                                "src": "5868:8:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 9637,
                                                "name": "minSecurityOrder",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9548,
                                                "src": "5890:16:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "id": 9638,
                                                "name": "fee",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9315,
                                                "src": "5920:3:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_stringliteral_d8407c43b70b062a4ebfce2d65b9d672a39ddff01e2772e896f61833dce954b7",
                                                    "typeString": "literal_string \"Verified Pool Token\""
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_7fee470b81c86493872dc1c9070ce794188d075d1c10f31e689bb13cbd714392",
                                                    "typeString": "literal_string \"VPT\""
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "arguments": [
                                                    {
                                                        "id": 9630,
                                                        "name": "factory",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9311,
                                                        "src": "5763:7:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 9629,
                                                    "name": "ISecondaryIssuePoolFactory",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 12093,
                                                    "src": "5736:26:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_ISecondaryIssuePoolFactory_$12093_$",
                                                        "typeString": "type(contract ISecondaryIssuePoolFactory)"
                                                    }
                                                },
                                                "id": 9631,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "5736:35:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_ISecondaryIssuePoolFactory_$12093",
                                                    "typeString": "contract ISecondaryIssuePoolFactory"
                                                }
                                            },
                                            "id": 9632,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "create",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 12092,
                                            "src": "5736:42:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_address_$",
                                                "typeString": "function (string memory,string memory,address,address,uint256,uint256) external returns (address)"
                                            }
                                        },
                                        "id": 9639,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5736:197:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "5721:212:19"
                                },
                                {
                                    "assignments": [
                                        9642
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 9642,
                                            "mutability": "mutable",
                                            "name": "poolId",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 9804,
                                            "src": "5944:14:19",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            },
                                            "typeName": {
                                                "id": 9641,
                                                "name": "bytes32",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "5944:7:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 9648,
                                    "initialValue": {
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "expression": {
                                                "arguments": [
                                                    {
                                                        "id": 9644,
                                                        "name": "pool",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9628,
                                                        "src": "5981:4:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 9643,
                                                    "name": "ISecondaryIssuePool",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 12072,
                                                    "src": "5961:19:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_ISecondaryIssuePool_$12072_$",
                                                        "typeString": "type(contract ISecondaryIssuePool)"
                                                    }
                                                },
                                                "id": 9645,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "5961:25:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_ISecondaryIssuePool_$12072",
                                                    "typeString": "contract ISecondaryIssuePool"
                                                }
                                            },
                                            "id": 9646,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "getPoolId",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 12056,
                                            "src": "5961:35:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                                                "typeString": "function () view external returns (bytes32)"
                                            }
                                        },
                                        "id": 9647,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5961:37:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "5944:54:19"
                                },
                                {
                                    "expression": {
                                        "id": 9653,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "baseExpression": {
                                                "id": 9649,
                                                "name": "poolSecurity",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9344,
                                                "src": "6010:12:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                    "typeString": "mapping(bytes32 => address)"
                                                }
                                            },
                                            "id": 9651,
                                            "indexExpression": {
                                                "id": 9650,
                                                "name": "poolId",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9642,
                                                "src": "6023:6:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "nodeType": "IndexAccess",
                                            "src": "6010:20:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "id": 9652,
                                            "name": "security",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9540,
                                            "src": "6033:8:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "src": "6010:31:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "id": 9654,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6010:31:19"
                                },
                                {
                                    "expression": {
                                        "id": 9660,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "baseExpression": {
                                                "id": 9655,
                                                "name": "issuer",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9348,
                                                "src": "6052:6:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                    "typeString": "mapping(bytes32 => address)"
                                                }
                                            },
                                            "id": 9657,
                                            "indexExpression": {
                                                "id": 9656,
                                                "name": "poolId",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9642,
                                                "src": "6059:6:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "nodeType": "IndexAccess",
                                            "src": "6052:14:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "expression": {
                                                "id": 9658,
                                                "name": "msg",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": -15,
                                                "src": "6069:3:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_magic_message",
                                                    "typeString": "msg"
                                                }
                                            },
                                            "id": 9659,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "sender",
                                            "nodeType": "MemberAccess",
                                            "src": "6069:10:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address_payable",
                                                "typeString": "address payable"
                                            }
                                        },
                                        "src": "6052:27:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "id": 9661,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6052:27:19"
                                },
                                {
                                    "expression": {
                                        "id": 9666,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "baseExpression": {
                                                "id": 9662,
                                                "name": "pools",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9336,
                                                "src": "6089:5:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$",
                                                    "typeString": "mapping(address => bytes32)"
                                                }
                                            },
                                            "id": 9664,
                                            "indexExpression": {
                                                "id": 9663,
                                                "name": "pool",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9628,
                                                "src": "6095:4:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "nodeType": "IndexAccess",
                                            "src": "6089:11:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "id": 9665,
                                            "name": "poolId",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9642,
                                            "src": "6103:6:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "src": "6089:20:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "id": 9667,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6089:20:19"
                                },
                                {
                                    "expression": {
                                        "id": 9672,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "baseExpression": {
                                                "id": 9668,
                                                "name": "poolAddress",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9340,
                                                "src": "6119:11:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                    "typeString": "mapping(bytes32 => address)"
                                                }
                                            },
                                            "id": 9670,
                                            "indexExpression": {
                                                "id": 9669,
                                                "name": "poolId",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9642,
                                                "src": "6131:6:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "nodeType": "IndexAccess",
                                            "src": "6119:19:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "id": 9671,
                                            "name": "pool",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9628,
                                            "src": "6141:4:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "src": "6119:26:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "id": 9673,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6119:26:19"
                                },
                                {
                                    "assignments": [
                                        9677,
                                        null,
                                        null
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 9677,
                                            "mutability": "mutable",
                                            "name": "tokens",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 9804,
                                            "src": "6202:22:19",
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr",
                                                "typeString": "contract IERC20[]"
                                            },
                                            "typeName": {
                                                "baseType": {
                                                    "id": 9675,
                                                    "name": "IERC20",
                                                    "nodeType": "UserDefinedTypeName",
                                                    "referencedDeclaration": 2938,
                                                    "src": "6202:6:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_contract$_IERC20_$2938",
                                                        "typeString": "contract IERC20"
                                                    }
                                                },
                                                "id": 9676,
                                                "nodeType": "ArrayTypeName",
                                                "src": "6202:8:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_storage_ptr",
                                                    "typeString": "contract IERC20[]"
                                                }
                                            },
                                            "visibility": "internal"
                                        },
                                        null,
                                        null
                                    ],
                                    "id": 9684,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "id": 9682,
                                                "name": "poolId",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9642,
                                                "src": "6260:6:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            ],
                                            "expression": {
                                                "arguments": [
                                                    {
                                                        "id": 9679,
                                                        "name": "vault",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9313,
                                                        "src": "6239:5:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 9678,
                                                    "name": "IVault",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 3688,
                                                    "src": "6232:6:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_IVault_$3688_$",
                                                        "typeString": "type(contract IVault)"
                                                    }
                                                },
                                                "id": 9680,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "6232:13:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_IVault_$3688",
                                                    "typeString": "contract IVault"
                                                }
                                            },
                                            "id": 9681,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "getPoolTokens",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 3444,
                                            "src": "6232:27:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$",
                                                "typeString": "function (bytes32) view external returns (contract IERC20[] memory,uint256[] memory,uint256)"
                                            }
                                        },
                                        "id": 9683,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6232:35:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$_t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$",
                                            "typeString": "tuple(contract IERC20[] memory,uint256[] memory,uint256)"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "6201:66:19"
                                },
                                {
                                    "assignments": [
                                        9688
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 9688,
                                            "mutability": "mutable",
                                            "name": "assets",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 9804,
                                            "src": "6277:22:19",
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_contract$_IAsset_$3127_$dyn_memory_ptr",
                                                "typeString": "contract IAsset[]"
                                            },
                                            "typeName": {
                                                "baseType": {
                                                    "id": 9686,
                                                    "name": "IAsset",
                                                    "nodeType": "UserDefinedTypeName",
                                                    "referencedDeclaration": 3127,
                                                    "src": "6277:6:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_contract$_IAsset_$3127",
                                                        "typeString": "contract IAsset"
                                                    }
                                                },
                                                "id": 9687,
                                                "nodeType": "ArrayTypeName",
                                                "src": "6277:8:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_contract$_IAsset_$3127_$dyn_storage_ptr",
                                                    "typeString": "contract IAsset[]"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 9692,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "id": 9690,
                                                "name": "tokens",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9677,
                                                "src": "6325:6:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr",
                                                    "typeString": "contract IERC20[] memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr",
                                                    "typeString": "contract IERC20[] memory"
                                                }
                                            ],
                                            "id": 9689,
                                            "name": "_convertERC20sToAssets",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 10860,
                                            "src": "6302:22:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr_$returns$_t_array$_t_contract$_IAsset_$3127_$dyn_memory_ptr_$",
                                                "typeString": "function (contract IERC20[] memory) pure returns (contract IAsset[] memory)"
                                            }
                                        },
                                        "id": 9691,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6302:30:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_contract$_IAsset_$3127_$dyn_memory_ptr",
                                            "typeString": "contract IAsset[] memory"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "6277:55:19"
                                },
                                {
                                    "assignments": [
                                        9697
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 9697,
                                            "mutability": "mutable",
                                            "name": "maxAmountsIn",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 9804,
                                            "src": "6342:29:19",
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                "typeString": "uint256[]"
                                            },
                                            "typeName": {
                                                "baseType": {
                                                    "id": 9695,
                                                    "name": "uint256",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "6342:7:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 9696,
                                                "nodeType": "ArrayTypeName",
                                                "src": "6342:9:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                                    "typeString": "uint256[]"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 9704,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "expression": {
                                                    "id": 9701,
                                                    "name": "tokens",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9677,
                                                    "src": "6388:6:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr",
                                                        "typeString": "contract IERC20[] memory"
                                                    }
                                                },
                                                "id": 9702,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "length",
                                                "nodeType": "MemberAccess",
                                                "src": "6388:13:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 9700,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "NewExpression",
                                            "src": "6374:13:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                                                "typeString": "function (uint256) pure returns (uint256[] memory)"
                                            },
                                            "typeName": {
                                                "baseType": {
                                                    "id": 9698,
                                                    "name": "uint256",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "6378:7:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 9699,
                                                "nodeType": "ArrayTypeName",
                                                "src": "6378:9:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                                    "typeString": "uint256[]"
                                                }
                                            }
                                        },
                                        "id": 9703,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6374:28:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                            "typeString": "uint256[] memory"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "6342:60:19"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "id": 9709,
                                                "name": "vault",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9313,
                                                "src": "6436:5:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 9710,
                                                "name": "cashAmount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9550,
                                                "src": "6443:10:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "arguments": [
                                                    {
                                                        "id": 9706,
                                                        "name": "currency",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9542,
                                                        "src": "6418:8:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 9705,
                                                    "name": "ERC20",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 2860,
                                                    "src": "6412:5:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_ERC20_$2860_$",
                                                        "typeString": "type(contract ERC20)"
                                                    }
                                                },
                                                "id": 9707,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "6412:15:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_ERC20_$2860",
                                                    "typeString": "contract ERC20"
                                                }
                                            },
                                            "id": 9708,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "approve",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 2543,
                                            "src": "6412:23:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                "typeString": "function (address,uint256) external returns (bool)"
                                            }
                                        },
                                        "id": 9711,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6412:42:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 9712,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6412:42:19"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "id": 9717,
                                                "name": "vault",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9313,
                                                "src": "6488:5:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 9718,
                                                "name": "securityOffered",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9546,
                                                "src": "6495:15:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "arguments": [
                                                    {
                                                        "id": 9714,
                                                        "name": "security",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9540,
                                                        "src": "6470:8:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 9713,
                                                    "name": "ERC20",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 2860,
                                                    "src": "6464:5:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_ERC20_$2860_$",
                                                        "typeString": "type(contract ERC20)"
                                                    }
                                                },
                                                "id": 9715,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "6464:15:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_ERC20_$2860",
                                                    "typeString": "contract ERC20"
                                                }
                                            },
                                            "id": 9716,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "approve",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 2543,
                                            "src": "6464:23:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                "typeString": "function (address,uint256) external returns (bool)"
                                            }
                                        },
                                        "id": 9719,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "6464:47:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 9720,
                                    "nodeType": "ExpressionStatement",
                                    "src": "6464:47:19"
                                },
                                {
                                    "body": {
                                        "id": 9769,
                                        "nodeType": "Block",
                                        "src": "6560:306:19",
                                        "statements": [
                                            {
                                                "condition": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_contract$_IERC20_$2938",
                                                        "typeString": "contract IERC20"
                                                    },
                                                    "id": 9737,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "baseExpression": {
                                                            "id": 9731,
                                                            "name": "tokens",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9677,
                                                            "src": "6577:6:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr",
                                                                "typeString": "contract IERC20[] memory"
                                                            }
                                                        },
                                                        "id": 9733,
                                                        "indexExpression": {
                                                            "id": 9732,
                                                            "name": "t",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9722,
                                                            "src": "6584:1:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "6577:9:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                            "typeString": "contract IERC20"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "arguments": [
                                                            {
                                                                "id": 9735,
                                                                "name": "security",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 9540,
                                                                "src": "6595:8:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "id": 9734,
                                                            "name": "IERC20",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 2938,
                                                            "src": "6588:6:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                "typeString": "type(contract IERC20)"
                                                            }
                                                        },
                                                        "id": 9736,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "6588:16:19",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                            "typeString": "contract IERC20"
                                                        }
                                                    },
                                                    "src": "6577:27:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "falseBody": {
                                                    "condition": {
                                                        "commonType": {
                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                            "typeString": "contract IERC20"
                                                        },
                                                        "id": 9750,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftExpression": {
                                                            "baseExpression": {
                                                                "id": 9744,
                                                                "name": "tokens",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 9677,
                                                                "src": "6677:6:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr",
                                                                    "typeString": "contract IERC20[] memory"
                                                                }
                                                            },
                                                            "id": 9746,
                                                            "indexExpression": {
                                                                "id": 9745,
                                                                "name": "t",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 9722,
                                                                "src": "6684:1:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "6677:9:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                "typeString": "contract IERC20"
                                                            }
                                                        },
                                                        "nodeType": "BinaryOperation",
                                                        "operator": "==",
                                                        "rightExpression": {
                                                            "arguments": [
                                                                {
                                                                    "id": 9748,
                                                                    "name": "currency",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 9542,
                                                                    "src": "6695:8:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 9747,
                                                                "name": "IERC20",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 2938,
                                                                "src": "6688:6:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                    "typeString": "type(contract IERC20)"
                                                                }
                                                            },
                                                            "id": 9749,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "6688:16:19",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                "typeString": "contract IERC20"
                                                            }
                                                        },
                                                        "src": "6677:27:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "falseBody": {
                                                        "expression": {
                                                            "id": 9765,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "leftHandSide": {
                                                                "baseExpression": {
                                                                    "id": 9757,
                                                                    "name": "maxAmountsIn",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 9697,
                                                                    "src": "6786:12:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                                        "typeString": "uint256[] memory"
                                                                    }
                                                                },
                                                                "id": 9759,
                                                                "indexExpression": {
                                                                    "id": 9758,
                                                                    "name": "t",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 9722,
                                                                    "src": "6799:1:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": true,
                                                                "nodeType": "IndexAccess",
                                                                "src": "6786:15:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "nodeType": "Assignment",
                                                            "operator": "=",
                                                            "rightHandSide": {
                                                                "arguments": [
                                                                    {
                                                                        "id": 9762,
                                                                        "name": "_INITIAL_BPT_SUPPLY",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 9371,
                                                                        "src": "6813:19:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    {
                                                                        "id": 9763,
                                                                        "name": "_DEFAULT_MINIMUM_BPT",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 9374,
                                                                        "src": "6834:20:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "id": 9760,
                                                                        "name": "Math",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 2367,
                                                                        "src": "6804:4:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_type$_t_contract$_Math_$2367_$",
                                                                            "typeString": "type(library Math)"
                                                                        }
                                                                    },
                                                                    "id": 9761,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "sub",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 2177,
                                                                    "src": "6804:8:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                    }
                                                                },
                                                                "id": 9764,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "6804:51:19",
                                                                "tryCall": false,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "src": "6786:69:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "id": 9766,
                                                        "nodeType": "ExpressionStatement",
                                                        "src": "6786:69:19"
                                                    },
                                                    "id": 9767,
                                                    "nodeType": "IfStatement",
                                                    "src": "6674:181:19",
                                                    "trueBody": {
                                                        "expression": {
                                                            "id": 9755,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "leftHandSide": {
                                                                "baseExpression": {
                                                                    "id": 9751,
                                                                    "name": "maxAmountsIn",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 9697,
                                                                    "src": "6722:12:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                                        "typeString": "uint256[] memory"
                                                                    }
                                                                },
                                                                "id": 9753,
                                                                "indexExpression": {
                                                                    "id": 9752,
                                                                    "name": "t",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 9722,
                                                                    "src": "6735:1:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": true,
                                                                "nodeType": "IndexAccess",
                                                                "src": "6722:15:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "nodeType": "Assignment",
                                                            "operator": "=",
                                                            "rightHandSide": {
                                                                "id": 9754,
                                                                "name": "cashAmount",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 9550,
                                                                "src": "6740:10:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "src": "6722:28:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "id": 9756,
                                                        "nodeType": "ExpressionStatement",
                                                        "src": "6722:28:19"
                                                    }
                                                },
                                                "id": 9768,
                                                "nodeType": "IfStatement",
                                                "src": "6574:281:19",
                                                "trueBody": {
                                                    "expression": {
                                                        "id": 9742,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftHandSide": {
                                                            "baseExpression": {
                                                                "id": 9738,
                                                                "name": "maxAmountsIn",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 9697,
                                                                "src": "6622:12:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                                    "typeString": "uint256[] memory"
                                                                }
                                                            },
                                                            "id": 9740,
                                                            "indexExpression": {
                                                                "id": 9739,
                                                                "name": "t",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 9722,
                                                                "src": "6635:1:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "nodeType": "IndexAccess",
                                                            "src": "6622:15:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "nodeType": "Assignment",
                                                        "operator": "=",
                                                        "rightHandSide": {
                                                            "id": 9741,
                                                            "name": "securityOffered",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9546,
                                                            "src": "6640:15:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "src": "6622:33:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "id": 9743,
                                                    "nodeType": "ExpressionStatement",
                                                    "src": "6622:33:19"
                                                }
                                            }
                                        ]
                                    },
                                    "condition": {
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 9727,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "id": 9724,
                                            "name": "t",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9722,
                                            "src": "6536:1:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "<",
                                        "rightExpression": {
                                            "expression": {
                                                "id": 9725,
                                                "name": "tokens",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9677,
                                                "src": "6540:6:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr",
                                                    "typeString": "contract IERC20[] memory"
                                                }
                                            },
                                            "id": 9726,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "length",
                                            "nodeType": "MemberAccess",
                                            "src": "6540:13:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "6536:17:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 9770,
                                    "initializationExpression": {
                                        "assignments": [
                                            9722
                                        ],
                                        "declarations": [
                                            {
                                                "constant": false,
                                                "id": 9722,
                                                "mutability": "mutable",
                                                "name": "t",
                                                "nodeType": "VariableDeclaration",
                                                "scope": 9770,
                                                "src": "6525:9:19",
                                                "stateVariable": false,
                                                "storageLocation": "default",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "typeName": {
                                                    "id": 9721,
                                                    "name": "uint256",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "6525:7:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "visibility": "internal"
                                            }
                                        ],
                                        "id": 9723,
                                        "nodeType": "VariableDeclarationStatement",
                                        "src": "6525:9:19"
                                    },
                                    "loopExpression": {
                                        "expression": {
                                            "id": 9729,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "UnaryOperation",
                                            "operator": "++",
                                            "prefix": false,
                                            "src": "6555:3:19",
                                            "subExpression": {
                                                "id": 9728,
                                                "name": "t",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9722,
                                                "src": "6555:1:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "id": 9730,
                                        "nodeType": "ExpressionStatement",
                                        "src": "6555:3:19"
                                    },
                                    "nodeType": "ForStatement",
                                    "src": "6521:345:19"
                                },
                                {
                                    "assignments": [
                                        9774
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 9774,
                                            "mutability": "mutable",
                                            "name": "request",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 9804,
                                            "src": "6875:37:19",
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_JoinPoolRequest_$3467_memory_ptr",
                                                "typeString": "struct IVault.JoinPoolRequest"
                                            },
                                            "typeName": {
                                                "id": 9773,
                                                "name": "IVault.JoinPoolRequest",
                                                "nodeType": "UserDefinedTypeName",
                                                "referencedDeclaration": 3467,
                                                "src": "6875:22:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_JoinPoolRequest_$3467_storage_ptr",
                                                    "typeString": "struct IVault.JoinPoolRequest"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 9787,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "id": 9777,
                                                "name": "assets",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9688,
                                                "src": "6960:6:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_contract$_IAsset_$3127_$dyn_memory_ptr",
                                                    "typeString": "contract IAsset[] memory"
                                                }
                                            },
                                            {
                                                "id": 9778,
                                                "name": "maxAmountsIn",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9697,
                                                "src": "6994:12:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                    "typeString": "uint256[] memory"
                                                }
                                            },
                                            {
                                                "arguments": [
                                                    {
                                                        "expression": {
                                                            "id": 9781,
                                                            "name": "JoinKind",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 12132,
                                                            "src": "7041:8:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_enum$_JoinKind_$12132_$",
                                                                "typeString": "type(enum ISettlor.JoinKind)"
                                                            }
                                                        },
                                                        "id": 9782,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "lValueRequested": false,
                                                        "memberName": "INIT",
                                                        "nodeType": "MemberAccess",
                                                        "src": "7041:13:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_enum$_JoinKind_$12132",
                                                            "typeString": "enum ISettlor.JoinKind"
                                                        }
                                                    },
                                                    {
                                                        "id": 9783,
                                                        "name": "maxAmountsIn",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9697,
                                                        "src": "7056:12:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                            "typeString": "uint256[] memory"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_enum$_JoinKind_$12132",
                                                            "typeString": "enum ISettlor.JoinKind"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                            "typeString": "uint256[] memory"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "id": 9779,
                                                        "name": "abi",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": -1,
                                                        "src": "7030:3:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_magic_abi",
                                                            "typeString": "abi"
                                                        }
                                                    },
                                                    "id": 9780,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "memberName": "encode",
                                                    "nodeType": "MemberAccess",
                                                    "src": "7030:10:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                                        "typeString": "function () pure returns (bytes memory)"
                                                    }
                                                },
                                                "id": 9784,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "7030:39:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes_memory_ptr",
                                                    "typeString": "bytes memory"
                                                }
                                            },
                                            {
                                                "hexValue": "66616c7365",
                                                "id": 9785,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "bool",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "7104:5:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "value": "false"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_array$_t_contract$_IAsset_$3127_$dyn_memory_ptr",
                                                    "typeString": "contract IAsset[] memory"
                                                },
                                                {
                                                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                    "typeString": "uint256[] memory"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes_memory_ptr",
                                                    "typeString": "bytes memory"
                                                },
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "expression": {
                                                "id": 9775,
                                                "name": "IVault",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3688,
                                                "src": "6915:6:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_IVault_$3688_$",
                                                    "typeString": "type(contract IVault)"
                                                }
                                            },
                                            "id": 9776,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "JoinPoolRequest",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 3467,
                                            "src": "6915:22:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_struct$_JoinPoolRequest_$3467_storage_ptr_$",
                                                "typeString": "type(struct IVault.JoinPoolRequest storage pointer)"
                                            }
                                        },
                                        "id": 9786,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "structConstructorCall",
                                        "lValueRequested": false,
                                        "names": [
                                            "assets",
                                            "maxAmountsIn",
                                            "userData",
                                            "fromInternalBalance"
                                        ],
                                        "nodeType": "FunctionCall",
                                        "src": "6915:205:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_JoinPoolRequest_$3467_memory_ptr",
                                            "typeString": "struct IVault.JoinPoolRequest memory"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "6875:245:19"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "id": 9792,
                                                "name": "poolId",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9642,
                                                "src": "7162:6:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "arguments": [
                                                    {
                                                        "id": 9795,
                                                        "name": "this",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": -28,
                                                        "src": "7178:4:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_SecondaryIssueManager_$10930",
                                                            "typeString": "contract SecondaryIssueManager"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_contract$_SecondaryIssueManager_$10930",
                                                            "typeString": "contract SecondaryIssueManager"
                                                        }
                                                    ],
                                                    "id": 9794,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "nodeType": "ElementaryTypeNameExpression",
                                                    "src": "7170:7:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_address_$",
                                                        "typeString": "type(address)"
                                                    },
                                                    "typeName": {
                                                        "id": 9793,
                                                        "name": "address",
                                                        "nodeType": "ElementaryTypeName",
                                                        "src": "7170:7:19",
                                                        "typeDescriptions": {}
                                                    }
                                                },
                                                "id": 9796,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "7170:13:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "arguments": [
                                                    {
                                                        "id": 9799,
                                                        "name": "this",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": -28,
                                                        "src": "7193:4:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_SecondaryIssueManager_$10930",
                                                            "typeString": "contract SecondaryIssueManager"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_contract$_SecondaryIssueManager_$10930",
                                                            "typeString": "contract SecondaryIssueManager"
                                                        }
                                                    ],
                                                    "id": 9798,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "nodeType": "ElementaryTypeNameExpression",
                                                    "src": "7185:7:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_address_$",
                                                        "typeString": "type(address)"
                                                    },
                                                    "typeName": {
                                                        "id": 9797,
                                                        "name": "address",
                                                        "nodeType": "ElementaryTypeName",
                                                        "src": "7185:7:19",
                                                        "typeDescriptions": {}
                                                    }
                                                },
                                                "id": 9800,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "7185:13:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 9801,
                                                "name": "request",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9774,
                                                "src": "7200:7:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_JoinPoolRequest_$3467_memory_ptr",
                                                    "typeString": "struct IVault.JoinPoolRequest memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_struct$_JoinPoolRequest_$3467_memory_ptr",
                                                    "typeString": "struct IVault.JoinPoolRequest memory"
                                                }
                                            ],
                                            "expression": {
                                                "arguments": [
                                                    {
                                                        "id": 9789,
                                                        "name": "vault",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9313,
                                                        "src": "7146:5:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 9788,
                                                    "name": "IVault",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 3688,
                                                    "src": "7139:6:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_IVault_$3688_$",
                                                        "typeString": "type(contract IVault)"
                                                    }
                                                },
                                                "id": 9790,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "7139:13:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_IVault_$3688",
                                                    "typeString": "contract IVault"
                                                }
                                            },
                                            "id": 9791,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "joinPool",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 3456,
                                            "src": "7139:22:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_payable$_t_bytes32_$_t_address_$_t_address_$_t_struct$_JoinPoolRequest_$3467_memory_ptr_$returns$__$",
                                                "typeString": "function (bytes32,address,address,struct IVault.JoinPoolRequest memory) payable external"
                                            }
                                        },
                                        "id": 9802,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7139:69:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 9803,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7139:69:19"
                                }
                            ]
                        },
                        "documentation": {
                            "id": 9538,
                            "nodeType": "StructuredDocumentation",
                            "src": "4430:532:19",
                            "text": "Joins existing (secondary) tokenized assets into pool by primary issue token holders\n@param  security            reference to asset issued\n@param  currency            reference to cash (settlement) token\n@param  securityOutstanding total number of securities outstanding\n@param  securityOffered     amount of security to issue\n@param  minSecurityOrder    minimum order size of securities issued in pool\n@param  cashAmount          amount of currency issued in pool"
                        },
                        "functionSelector": "905ec5ce",
                        "id": 9805,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "expression": {
                                            "id": 9554,
                                            "name": "msg",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": -15,
                                            "src": "5152:3:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_magic_message",
                                                "typeString": "msg"
                                            }
                                        },
                                        "id": 9555,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sender",
                                        "nodeType": "MemberAccess",
                                        "src": "5152:10:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    }
                                ],
                                "id": 9556,
                                "modifierName": {
                                    "id": 9553,
                                    "name": "onlyDP",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 9478,
                                    "src": "5145:6:19",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$",
                                        "typeString": "modifier (address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "5145:18:19"
                            }
                        ],
                        "name": "issueSecondary",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 9552,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "5127:8:19"
                        },
                        "parameters": {
                            "id": 9551,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 9540,
                                    "mutability": "mutable",
                                    "name": "security",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9805,
                                    "src": "4991:16:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 9539,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "4991:7:19",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9542,
                                    "mutability": "mutable",
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9805,
                                    "src": "5009:16:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 9541,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5009:7:19",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9544,
                                    "mutability": "mutable",
                                    "name": "securityOutstanding",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9805,
                                    "src": "5027:27:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 9543,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5027:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9546,
                                    "mutability": "mutable",
                                    "name": "securityOffered",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9805,
                                    "src": "5056:23:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 9545,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5056:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9548,
                                    "mutability": "mutable",
                                    "name": "minSecurityOrder",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9805,
                                    "src": "5081:24:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 9547,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5081:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9550,
                                    "mutability": "mutable",
                                    "name": "cashAmount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9805,
                                    "src": "5107:18:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 9549,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5107:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "4990:136:19"
                        },
                        "returnParameters": {
                            "id": 9557,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "5163:0:19"
                        },
                        "scope": 10930,
                        "src": "4967:2248:19",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "baseFunctions": [
                            12248
                        ],
                        "body": {
                            "id": 9827,
                            "nodeType": "Block",
                            "src": "7334:56:19",
                            "statements": [
                                {
                                    "expression": {
                                        "id": 9825,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "baseExpression": {
                                                "baseExpression": {
                                                    "id": 9819,
                                                    "name": "customFee",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9323,
                                                    "src": "7344:9:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                        "typeString": "mapping(address => mapping(address => uint256))"
                                                    }
                                                },
                                                "id": 9822,
                                                "indexExpression": {
                                                    "id": 9820,
                                                    "name": "security",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9807,
                                                    "src": "7354:8:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "7344:19:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                    "typeString": "mapping(address => uint256)"
                                                }
                                            },
                                            "id": 9823,
                                            "indexExpression": {
                                                "id": 9821,
                                                "name": "currency",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9809,
                                                "src": "7364:8:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "nodeType": "IndexAccess",
                                            "src": "7344:29:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "id": 9824,
                                            "name": "swapfee",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9811,
                                            "src": "7376:7:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "7344:39:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 9826,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7344:39:19"
                                }
                            ]
                        },
                        "functionSelector": "b431657c",
                        "id": 9828,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "expression": {
                                            "id": 9815,
                                            "name": "msg",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": -15,
                                            "src": "7322:3:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_magic_message",
                                                "typeString": "msg"
                                            }
                                        },
                                        "id": 9816,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sender",
                                        "nodeType": "MemberAccess",
                                        "src": "7322:10:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    }
                                ],
                                "id": 9817,
                                "modifierName": {
                                    "id": 9814,
                                    "name": "onlyDP",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 9478,
                                    "src": "7315:6:19",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$",
                                        "typeString": "modifier (address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "7315:18:19"
                            }
                        ],
                        "name": "setIssuingFee",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 9813,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "7297:8:19"
                        },
                        "parameters": {
                            "id": 9812,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 9807,
                                    "mutability": "mutable",
                                    "name": "security",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9828,
                                    "src": "7244:16:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 9806,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7244:7:19",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9809,
                                    "mutability": "mutable",
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9828,
                                    "src": "7262:16:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 9808,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7262:7:19",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9811,
                                    "mutability": "mutable",
                                    "name": "swapfee",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9828,
                                    "src": "7280:15:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 9810,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7280:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "7243:53:19"
                        },
                        "returnParameters": {
                            "id": 9818,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "7334:0:19"
                        },
                        "scope": 10930,
                        "src": "7221:169:19",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "baseFunctions": [
                            12257
                        ],
                        "body": {
                            "id": 9844,
                            "nodeType": "Block",
                            "src": "7494:53:19",
                            "statements": [
                                {
                                    "expression": {
                                        "baseExpression": {
                                            "baseExpression": {
                                                "id": 9838,
                                                "name": "customFee",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9323,
                                                "src": "7511:9:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                    "typeString": "mapping(address => mapping(address => uint256))"
                                                }
                                            },
                                            "id": 9840,
                                            "indexExpression": {
                                                "id": 9839,
                                                "name": "security",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9830,
                                                "src": "7521:8:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "7511:19:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                "typeString": "mapping(address => uint256)"
                                            }
                                        },
                                        "id": 9842,
                                        "indexExpression": {
                                            "id": 9841,
                                            "name": "currency",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9832,
                                            "src": "7531:8:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "7511:29:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "functionReturnParameters": 9837,
                                    "id": 9843,
                                    "nodeType": "Return",
                                    "src": "7504:36:19"
                                }
                            ]
                        },
                        "functionSelector": "9f2a0ccc",
                        "id": 9845,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getIssuingFee",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 9834,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "7455:8:19"
                        },
                        "parameters": {
                            "id": 9833,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 9830,
                                    "mutability": "mutable",
                                    "name": "security",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9845,
                                    "src": "7419:16:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 9829,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7419:7:19",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9832,
                                    "mutability": "mutable",
                                    "name": "currency",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9845,
                                    "src": "7437:16:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 9831,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7437:7:19",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "7418:36:19"
                        },
                        "returnParameters": {
                            "id": 9837,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 9836,
                                    "mutability": "mutable",
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9845,
                                    "src": "7486:7:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 9835,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "7486:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "7485:9:19"
                        },
                        "scope": 10930,
                        "src": "7396:151:19",
                        "stateMutability": "view",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "baseFunctions": [
                            12195
                        ],
                        "body": {
                            "id": 10084,
                            "nodeType": "Block",
                            "src": "7818:2757:19",
                            "statements": [
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "commonType": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                "id": 9860,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "baseExpression": {
                                                        "id": 9855,
                                                        "name": "pools",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9336,
                                                        "src": "7836:5:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_bytes32_$",
                                                            "typeString": "mapping(address => bytes32)"
                                                        }
                                                    },
                                                    "id": 9858,
                                                    "indexExpression": {
                                                        "expression": {
                                                            "id": 9856,
                                                            "name": "msg",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": -15,
                                                            "src": "7842:3:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_magic_message",
                                                                "typeString": "msg"
                                                            }
                                                        },
                                                        "id": 9857,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "sender",
                                                        "nodeType": "MemberAccess",
                                                        "src": "7842:10:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address_payable",
                                                            "typeString": "address payable"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "7836:17:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "!=",
                                                "rightExpression": {
                                                    "hexValue": "",
                                                    "id": 9859,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "string",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "7855:2:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                                        "typeString": "literal_string \"\""
                                                    },
                                                    "value": ""
                                                },
                                                "src": "7836:21:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "hexValue": "496e76616c696420706f6f6c2072657175657374",
                                                "id": 9861,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "7859:22:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_f9b21344f4bcb6c6821c4426034ac50f2342bc63130080557d4864f66ae77ac2",
                                                    "typeString": "literal_string \"Invalid pool request\""
                                                },
                                                "value": "Invalid pool request"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_f9b21344f4bcb6c6821c4426034ac50f2342bc63130080557d4864f66ae77ac2",
                                                    "typeString": "literal_string \"Invalid pool request\""
                                                }
                                            ],
                                            "id": 9854,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "7828:7:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 9862,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7828:54:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 9863,
                                    "nodeType": "ExpressionStatement",
                                    "src": "7828:54:19"
                                },
                                {
                                    "assignments": [
                                        9867
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 9867,
                                            "mutability": "mutable",
                                            "name": "orderByParty",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 10084,
                                            "src": "7892:32:19",
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_order_$11910_memory_ptr",
                                                "typeString": "struct IOrder.order"
                                            },
                                            "typeName": {
                                                "id": 9866,
                                                "name": "IOrder.order",
                                                "nodeType": "UserDefinedTypeName",
                                                "referencedDeclaration": 11910,
                                                "src": "7892:12:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_order_$11910_storage_ptr",
                                                    "typeString": "struct IOrder.order"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 9873,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "expression": {
                                                    "id": 9870,
                                                    "name": "tradeToReport",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9848,
                                                    "src": "7946:13:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_trade_$12274_memory_ptr",
                                                        "typeString": "struct ITrade.trade memory"
                                                    }
                                                },
                                                "id": 9871,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "partyRef",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 12265,
                                                "src": "7946:22:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            ],
                                            "expression": {
                                                "id": 9868,
                                                "name": "orderbook",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9850,
                                                "src": "7927:9:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_IOrder_$11977",
                                                    "typeString": "contract IOrder"
                                                }
                                            },
                                            "id": 9869,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "getOrder",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 11937,
                                            "src": "7927:18:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_struct$_order_$11910_memory_ptr_$",
                                                "typeString": "function (bytes32) view external returns (struct IOrder.order memory)"
                                            }
                                        },
                                        "id": 9872,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "7927:42:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_order_$11910_memory_ptr",
                                            "typeString": "struct IOrder.order memory"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "7892:77:19"
                                },
                                {
                                    "assignments": [
                                        9877
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 9877,
                                            "mutability": "mutable",
                                            "name": "orderByCounterparty",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 10084,
                                            "src": "7979:39:19",
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_order_$11910_memory_ptr",
                                                "typeString": "struct IOrder.order"
                                            },
                                            "typeName": {
                                                "id": 9876,
                                                "name": "IOrder.order",
                                                "nodeType": "UserDefinedTypeName",
                                                "referencedDeclaration": 11910,
                                                "src": "7979:12:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_order_$11910_storage_ptr",
                                                    "typeString": "struct IOrder.order"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 9883,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "expression": {
                                                    "id": 9880,
                                                    "name": "tradeToReport",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9848,
                                                    "src": "8040:13:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_trade_$12274_memory_ptr",
                                                        "typeString": "struct ITrade.trade memory"
                                                    }
                                                },
                                                "id": 9881,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "counterpartyRef",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 12267,
                                                "src": "8040:29:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            ],
                                            "expression": {
                                                "id": 9878,
                                                "name": "orderbook",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9850,
                                                "src": "8021:9:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_IOrder_$11977",
                                                    "typeString": "contract IOrder"
                                                }
                                            },
                                            "id": 9879,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "getOrder",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 11937,
                                            "src": "8021:18:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_struct$_order_$11910_memory_ptr_$",
                                                "typeString": "function (bytes32) view external returns (struct IOrder.order memory)"
                                            }
                                        },
                                        "id": 9882,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8021:49:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_order_$11910_memory_ptr",
                                            "typeString": "struct IOrder.order memory"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "7979:91:19"
                                },
                                {
                                    "assignments": [
                                        9885
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 9885,
                                            "mutability": "mutable",
                                            "name": "securityTraded",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 10084,
                                            "src": "8080:22:19",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "typeName": {
                                                "id": 9884,
                                                "name": "address",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "8080:7:19",
                                                "stateMutability": "nonpayable",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 9889,
                                    "initialValue": {
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "expression": {
                                                "id": 9886,
                                                "name": "orderbook",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9850,
                                                "src": "8105:9:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_IOrder_$11977",
                                                    "typeString": "contract IOrder"
                                                }
                                            },
                                            "id": 9887,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "getSecurity",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 11925,
                                            "src": "8105:21:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                                                "typeString": "function () view external returns (address)"
                                            }
                                        },
                                        "id": 9888,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8105:23:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "8080:48:19"
                                },
                                {
                                    "assignments": [
                                        9891
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 9891,
                                            "mutability": "mutable",
                                            "name": "currencySettled",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 10084,
                                            "src": "8139:23:19",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "typeName": {
                                                "id": 9890,
                                                "name": "address",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "8139:7:19",
                                                "stateMutability": "nonpayable",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 9895,
                                    "initialValue": {
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "expression": {
                                                "id": 9892,
                                                "name": "orderbook",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9850,
                                                "src": "8165:9:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_IOrder_$11977",
                                                    "typeString": "contract IOrder"
                                                }
                                            },
                                            "id": 9893,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "getCurrency",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 11930,
                                            "src": "8165:21:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                                                "typeString": "function () view external returns (address)"
                                            }
                                        },
                                        "id": 9894,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8165:23:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "8139:49:19"
                                },
                                {
                                    "assignments": [
                                        9897
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 9897,
                                            "mutability": "mutable",
                                            "name": "party",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 10084,
                                            "src": "8198:13:19",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "typeName": {
                                                "id": 9896,
                                                "name": "address",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "8198:7:19",
                                                "stateMutability": "nonpayable",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 9907,
                                    "initialValue": {
                                        "condition": {
                                            "commonType": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "id": 9901,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "expression": {
                                                    "id": 9898,
                                                    "name": "orderByParty",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9867,
                                                    "src": "8214:12:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_order_$11910_memory_ptr",
                                                        "typeString": "struct IOrder.order memory"
                                                    }
                                                },
                                                "id": 9899,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "tokenIn",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 11903,
                                                "src": "8214:20:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "==",
                                            "rightExpression": {
                                                "id": 9900,
                                                "name": "securityTraded",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9885,
                                                "src": "8236:14:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "src": "8214:36:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "falseExpression": {
                                            "expression": {
                                                "id": 9904,
                                                "name": "orderByCounterparty",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9877,
                                                "src": "8274:19:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_order_$11910_memory_ptr",
                                                    "typeString": "struct IOrder.order memory"
                                                }
                                            },
                                            "id": 9905,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "party",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 11901,
                                            "src": "8274:25:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "id": 9906,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "Conditional",
                                        "src": "8214:85:19",
                                        "trueExpression": {
                                            "expression": {
                                                "id": 9902,
                                                "name": "orderByParty",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9867,
                                                "src": "8253:12:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_order_$11910_memory_ptr",
                                                    "typeString": "struct IOrder.order memory"
                                                }
                                            },
                                            "id": 9903,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "party",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 11901,
                                            "src": "8253:18:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "8198:101:19"
                                },
                                {
                                    "assignments": [
                                        9909
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 9909,
                                            "mutability": "mutable",
                                            "name": "counterparty",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 10084,
                                            "src": "8309:20:19",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "typeName": {
                                                "id": 9908,
                                                "name": "address",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "8309:7:19",
                                                "stateMutability": "nonpayable",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 9919,
                                    "initialValue": {
                                        "condition": {
                                            "commonType": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "id": 9913,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "expression": {
                                                    "id": 9910,
                                                    "name": "orderByCounterparty",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9877,
                                                    "src": "8332:19:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_order_$11910_memory_ptr",
                                                        "typeString": "struct IOrder.order memory"
                                                    }
                                                },
                                                "id": 9911,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "tokenIn",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 11903,
                                                "src": "8332:27:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "==",
                                            "rightExpression": {
                                                "id": 9912,
                                                "name": "currencySettled",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9891,
                                                "src": "8361:15:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "src": "8332:44:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "falseExpression": {
                                            "expression": {
                                                "id": 9916,
                                                "name": "orderByParty",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9867,
                                                "src": "8407:12:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_order_$11910_memory_ptr",
                                                    "typeString": "struct IOrder.order memory"
                                                }
                                            },
                                            "id": 9917,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "party",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 11901,
                                            "src": "8407:18:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "id": 9918,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "Conditional",
                                        "src": "8332:93:19",
                                        "trueExpression": {
                                            "expression": {
                                                "id": 9914,
                                                "name": "orderByCounterparty",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9877,
                                                "src": "8379:19:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_order_$11910_memory_ptr",
                                                    "typeString": "struct IOrder.order memory"
                                                }
                                            },
                                            "id": 9915,
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "party",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 11901,
                                            "src": "8379:25:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "8309:116:19"
                                },
                                {
                                    "assignments": [
                                        9921
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 9921,
                                            "mutability": "mutable",
                                            "name": "amount",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 10084,
                                            "src": "8435:14:19",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 9920,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "8435:7:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 9924,
                                    "initialValue": {
                                        "expression": {
                                            "id": 9922,
                                            "name": "tradeToReport",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9848,
                                            "src": "8452:13:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_trade_$12274_memory_ptr",
                                                "typeString": "struct ITrade.trade memory"
                                            }
                                        },
                                        "id": 9923,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "securityTraded",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 12271,
                                        "src": "8452:28:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "8435:45:19"
                                },
                                {
                                    "assignments": [
                                        9926
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 9926,
                                            "mutability": "mutable",
                                            "name": "_DPID",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 10084,
                                            "src": "8491:13:19",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            },
                                            "typeName": {
                                                "id": 9925,
                                                "name": "bytes32",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "8491:7:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 9930,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "id": 9928,
                                                "name": "securityTraded",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9885,
                                                "src": "8524:14:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "id": 9927,
                                            "name": "getTransferAgent",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 10792,
                                            "src": "8507:16:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bytes32_$",
                                                "typeString": "function (address) view returns (bytes32)"
                                            }
                                        },
                                        "id": 9929,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8507:32:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "8491:48:19"
                                },
                                {
                                    "assignments": [
                                        9932
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 9932,
                                            "mutability": "mutable",
                                            "name": "price",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 10084,
                                            "src": "8549:13:19",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 9931,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "8549:7:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 9954,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "arguments": [
                                                    {
                                                        "expression": {
                                                            "id": 9936,
                                                            "name": "tradeToReport",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9848,
                                                            "src": "8593:13:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_trade_$12274_memory_ptr",
                                                                "typeString": "struct ITrade.trade memory"
                                                            }
                                                        },
                                                        "id": 9937,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "currencyTraded",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 12273,
                                                        "src": "8593:28:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    {
                                                        "arguments": [
                                                            {
                                                                "arguments": [
                                                                    {
                                                                        "id": 9940,
                                                                        "name": "currencySettled",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 9891,
                                                                        "src": "8652:15:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "id": 9939,
                                                                    "name": "IERC20",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 2938,
                                                                    "src": "8645:6:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                        "typeString": "type(contract IERC20)"
                                                                    }
                                                                },
                                                                "id": 9941,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "typeConversion",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "8645:23:19",
                                                                "tryCall": false,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                    "typeString": "contract IERC20"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                    "typeString": "contract IERC20"
                                                                }
                                                            ],
                                                            "id": 9938,
                                                            "name": "_computeScalingFactor",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 10895,
                                                            "src": "8623:21:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20_$2938_$returns$_t_uint256_$",
                                                                "typeString": "function (contract IERC20) view returns (uint256)"
                                                            }
                                                        },
                                                        "id": 9942,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "8623:46:19",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    ],
                                                    "id": 9935,
                                                    "name": "_upscale",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 10929,
                                                    "src": "8584:8:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                    }
                                                },
                                                "id": 9943,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "8584:86:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "arguments": [
                                                    {
                                                        "expression": {
                                                            "id": 9945,
                                                            "name": "tradeToReport",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9848,
                                                            "src": "8681:13:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_trade_$12274_memory_ptr",
                                                                "typeString": "struct ITrade.trade memory"
                                                            }
                                                        },
                                                        "id": 9946,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "securityTraded",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 12271,
                                                        "src": "8681:28:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    {
                                                        "arguments": [
                                                            {
                                                                "arguments": [
                                                                    {
                                                                        "id": 9949,
                                                                        "name": "securityTraded",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 9885,
                                                                        "src": "8740:14:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "id": 9948,
                                                                    "name": "IERC20",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 2938,
                                                                    "src": "8733:6:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                        "typeString": "type(contract IERC20)"
                                                                    }
                                                                },
                                                                "id": 9950,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "typeConversion",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "8733:22:19",
                                                                "tryCall": false,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                    "typeString": "contract IERC20"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                    "typeString": "contract IERC20"
                                                                }
                                                            ],
                                                            "id": 9947,
                                                            "name": "_computeScalingFactor",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 10895,
                                                            "src": "8711:21:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20_$2938_$returns$_t_uint256_$",
                                                                "typeString": "function (contract IERC20) view returns (uint256)"
                                                            }
                                                        },
                                                        "id": 9951,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "8711:45:19",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    ],
                                                    "id": 9944,
                                                    "name": "_upscale",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 10929,
                                                    "src": "8672:8:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                    }
                                                },
                                                "id": 9952,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "8672:85:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "id": 9933,
                                                "name": "FixedPoint",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 780,
                                                "src": "8565:10:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_FixedPoint_$780_$",
                                                    "typeString": "type(library FixedPoint)"
                                                }
                                            },
                                            "id": 9934,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "divDown",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 631,
                                            "src": "8565:18:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                            }
                                        },
                                        "id": 9953,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8565:193:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "8549:209:19"
                                },
                                {
                                    "assignments": [
                                        9958
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 9958,
                                            "mutability": "mutable",
                                            "name": "tradeToSettle",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 10084,
                                            "src": "8768:40:19",
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_settlement_$12173_memory_ptr",
                                                "typeString": "struct ISettlor.settlement"
                                            },
                                            "typeName": {
                                                "id": 9957,
                                                "name": "ISettlor.settlement",
                                                "nodeType": "UserDefinedTypeName",
                                                "referencedDeclaration": 12173,
                                                "src": "8768:19:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_settlement_$12173_storage_ptr",
                                                    "typeString": "struct ISettlor.settlement"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 10000,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "id": 9961,
                                                "name": "party",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9897,
                                                "src": "8857:5:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 9962,
                                                "name": "counterparty",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9909,
                                                "src": "8907:12:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 9963,
                                                "name": "securityTraded",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9885,
                                                "src": "8961:14:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "hexValue": "50656e64696e67",
                                                "id": 9964,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "8997:9:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_4be840e351422c3b302abb79aa7db05560ead7e387e413320822a342fca3f54e",
                                                    "typeString": "literal_string \"Pending\""
                                                },
                                                "value": "Pending"
                                            },
                                            {
                                                "id": 9965,
                                                "name": "currencySettled",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9891,
                                                "src": "9030:15:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 9966,
                                                "name": "price",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9932,
                                                "src": "9066:5:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "id": 9967,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9921,
                                                "src": "9102:6:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "arguments": [
                                                    {
                                                        "expression": {
                                                            "id": 9969,
                                                            "name": "tradeToReport",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9848,
                                                            "src": "9146:13:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_trade_$12274_memory_ptr",
                                                                "typeString": "struct ITrade.trade memory"
                                                            }
                                                        },
                                                        "id": 9970,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "currencyTraded",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 12273,
                                                        "src": "9146:28:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    {
                                                        "arguments": [
                                                            {
                                                                "arguments": [
                                                                    {
                                                                        "id": 9973,
                                                                        "name": "currencySettled",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 9891,
                                                                        "src": "9205:15:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "id": 9972,
                                                                    "name": "IERC20",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 2938,
                                                                    "src": "9198:6:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                        "typeString": "type(contract IERC20)"
                                                                    }
                                                                },
                                                                "id": 9974,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "typeConversion",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "9198:23:19",
                                                                "tryCall": false,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                    "typeString": "contract IERC20"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                    "typeString": "contract IERC20"
                                                                }
                                                            ],
                                                            "id": 9971,
                                                            "name": "_computeScalingFactor",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 10895,
                                                            "src": "9176:21:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20_$2938_$returns$_t_uint256_$",
                                                                "typeString": "function (contract IERC20) view returns (uint256)"
                                                            }
                                                        },
                                                        "id": 9975,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "9176:46:19",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    ],
                                                    "id": 9968,
                                                    "name": "_upscale",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 10929,
                                                    "src": "9137:8:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                    }
                                                },
                                                "id": 9976,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "9137:86:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "expression": {
                                                    "id": 9977,
                                                    "name": "tradeToReport",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9848,
                                                    "src": "9252:13:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_trade_$12274_memory_ptr",
                                                        "typeString": "struct ITrade.trade memory"
                                                    }
                                                },
                                                "id": 9978,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "dt",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 12269,
                                                "src": "9252:16:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "condition": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "id": 9982,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "expression": {
                                                            "id": 9979,
                                                            "name": "orderByParty",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9867,
                                                            "src": "9292:12:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_order_$11910_memory_ptr",
                                                                "typeString": "struct IOrder.order memory"
                                                            }
                                                        },
                                                        "id": 9980,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "tokenIn",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 11903,
                                                        "src": "9292:20:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "id": 9981,
                                                        "name": "securityTraded",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9885,
                                                        "src": "9314:14:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "src": "9292:36:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "falseExpression": {
                                                    "expression": {
                                                        "id": 9985,
                                                        "name": "tradeToReport",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9848,
                                                        "src": "9356:13:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_trade_$12274_memory_ptr",
                                                            "typeString": "struct ITrade.trade memory"
                                                        }
                                                    },
                                                    "id": 9986,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "counterpartyRef",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 12267,
                                                    "src": "9356:29:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "id": 9987,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "Conditional",
                                                "src": "9292:93:19",
                                                "trueExpression": {
                                                    "expression": {
                                                        "id": 9983,
                                                        "name": "tradeToReport",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9848,
                                                        "src": "9331:13:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_trade_$12274_memory_ptr",
                                                            "typeString": "struct ITrade.trade memory"
                                                        }
                                                    },
                                                    "id": 9984,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "partyRef",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 12265,
                                                    "src": "9331:22:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "condition": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "id": 9991,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "expression": {
                                                            "id": 9988,
                                                            "name": "orderByCounterparty",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9877,
                                                            "src": "9416:19:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_order_$11910_memory_ptr",
                                                                "typeString": "struct IOrder.order memory"
                                                            }
                                                        },
                                                        "id": 9989,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "tokenIn",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 11903,
                                                        "src": "9416:27:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "id": 9990,
                                                        "name": "currencySettled",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9891,
                                                        "src": "9445:15:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "src": "9416:44:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "falseExpression": {
                                                    "expression": {
                                                        "id": 9994,
                                                        "name": "tradeToReport",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9848,
                                                        "src": "9495:13:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_trade_$12274_memory_ptr",
                                                            "typeString": "struct ITrade.trade memory"
                                                        }
                                                    },
                                                    "id": 9995,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "partyRef",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 12265,
                                                    "src": "9495:22:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "id": 9996,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "Conditional",
                                                "src": "9416:101:19",
                                                "trueExpression": {
                                                    "expression": {
                                                        "id": 9992,
                                                        "name": "tradeToReport",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9848,
                                                        "src": "9463:13:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_trade_$12274_memory_ptr",
                                                            "typeString": "struct ITrade.trade memory"
                                                        }
                                                    },
                                                    "id": 9993,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "counterpartyRef",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 12267,
                                                    "src": "9463:29:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "id": 9997,
                                                "name": "_DPID",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9926,
                                                "src": "9537:5:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "id": 9998,
                                                "name": "orderbook",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9850,
                                                "src": "9567:9:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_IOrder_$11977",
                                                    "typeString": "contract IOrder"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_4be840e351422c3b302abb79aa7db05560ead7e387e413320822a342fca3f54e",
                                                    "typeString": "literal_string \"Pending\""
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_contract$_IOrder_$11977",
                                                    "typeString": "contract IOrder"
                                                }
                                            ],
                                            "expression": {
                                                "id": 9959,
                                                "name": "ISettlor",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 12258,
                                                "src": "8811:8:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_ISettlor_$12258_$",
                                                    "typeString": "type(contract ISettlor)"
                                                }
                                            },
                                            "id": 9960,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "settlement",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 12173,
                                            "src": "8811:19:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_struct$_settlement_$12173_storage_ptr_$",
                                                "typeString": "type(struct ISettlor.settlement storage pointer)"
                                            }
                                        },
                                        "id": 9999,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "structConstructorCall",
                                        "lValueRequested": false,
                                        "names": [
                                            "transferor",
                                            "transferee",
                                            "security",
                                            "status",
                                            "currency",
                                            "price",
                                            "unitsToTransfer",
                                            "consideration",
                                            "executionDate",
                                            "partyRef",
                                            "counterpartyRef",
                                            "DPID",
                                            "orderPool"
                                        ],
                                        "nodeType": "FunctionCall",
                                        "src": "8811:776:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_settlement_$12173_memory_ptr",
                                            "typeString": "struct ISettlor.settlement memory"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "8768:819:19"
                                },
                                {
                                    "assignments": [
                                        10002
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 10002,
                                            "mutability": "mutable",
                                            "name": "ref",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 10084,
                                            "src": "9597:11:19",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            },
                                            "typeName": {
                                                "id": 10001,
                                                "name": "bytes32",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "9597:7:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 10012,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "arguments": [
                                                    {
                                                        "expression": {
                                                            "id": 10006,
                                                            "name": "tradeToReport",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9848,
                                                            "src": "9638:13:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_trade_$12274_memory_ptr",
                                                                "typeString": "struct ITrade.trade memory"
                                                            }
                                                        },
                                                        "id": 10007,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "partyRef",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 12265,
                                                        "src": "9638:22:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    {
                                                        "expression": {
                                                            "id": 10008,
                                                            "name": "tradeToReport",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9848,
                                                            "src": "9662:13:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_trade_$12274_memory_ptr",
                                                                "typeString": "struct ITrade.trade memory"
                                                            }
                                                        },
                                                        "id": 10009,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "counterpartyRef",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 12267,
                                                        "src": "9662:29:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "id": 10004,
                                                        "name": "abi",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": -1,
                                                        "src": "9621:3:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_magic_abi",
                                                            "typeString": "abi"
                                                        }
                                                    },
                                                    "id": 10005,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "memberName": "encodePacked",
                                                    "nodeType": "MemberAccess",
                                                    "src": "9621:16:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                                        "typeString": "function () pure returns (bytes memory)"
                                                    }
                                                },
                                                "id": 10010,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "9621:71:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes_memory_ptr",
                                                    "typeString": "bytes memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes_memory_ptr",
                                                    "typeString": "bytes memory"
                                                }
                                            ],
                                            "id": 10003,
                                            "name": "keccak256",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": -8,
                                            "src": "9611:9:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                                "typeString": "function (bytes memory) pure returns (bytes32)"
                                            }
                                        },
                                        "id": 10011,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "9611:82:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "9597:96:19"
                                },
                                {
                                    "expression": {
                                        "id": 10017,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "baseExpression": {
                                                "id": 10013,
                                                "name": "settlements",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9327,
                                                "src": "9764:11:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                    "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                }
                                            },
                                            "id": 10015,
                                            "indexExpression": {
                                                "id": 10014,
                                                "name": "ref",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10002,
                                                "src": "9776:3:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "nodeType": "IndexAccess",
                                            "src": "9764:16:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                "typeString": "struct ISettlor.settlement storage ref"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "id": 10016,
                                            "name": "tradeToSettle",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9958,
                                            "src": "9783:13:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_settlement_$12173_memory_ptr",
                                                "typeString": "struct ISettlor.settlement memory"
                                            }
                                        },
                                        "src": "9764:32:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                            "typeString": "struct ISettlor.settlement storage ref"
                                        }
                                    },
                                    "id": 10018,
                                    "nodeType": "ExpressionStatement",
                                    "src": "9764:32:19"
                                },
                                {
                                    "assignments": [
                                        10022
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 10022,
                                            "mutability": "mutable",
                                            "name": "subscription",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 10084,
                                            "src": "9810:42:19",
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_subscriptions_$12146_memory_ptr",
                                                "typeString": "struct ISettlor.subscriptions"
                                            },
                                            "typeName": {
                                                "id": 10021,
                                                "name": "ISettlor.subscriptions",
                                                "nodeType": "UserDefinedTypeName",
                                                "referencedDeclaration": 12146,
                                                "src": "9810:22:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_subscriptions_$12146_storage_ptr",
                                                    "typeString": "struct ISettlor.subscriptions"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 10031,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "id": 10025,
                                                "name": "counterparty",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9909,
                                                "src": "9906:12:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 10026,
                                                "name": "securityTraded",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9885,
                                                "src": "9965:14:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 10027,
                                                "name": "currencySettled",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9891,
                                                "src": "10007:15:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 10028,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9921,
                                                "src": "10049:6:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "id": 10029,
                                                "name": "price",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9932,
                                                "src": "10083:5:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "id": 10023,
                                                "name": "ISettlor",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 12258,
                                                "src": "9855:8:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_ISettlor_$12258_$",
                                                    "typeString": "type(contract ISettlor)"
                                                }
                                            },
                                            "id": 10024,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "subscriptions",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 12146,
                                            "src": "9855:22:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_struct$_subscriptions_$12146_storage_ptr_$",
                                                "typeString": "type(struct ISettlor.subscriptions storage pointer)"
                                            }
                                        },
                                        "id": 10030,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "structConstructorCall",
                                        "lValueRequested": false,
                                        "names": [
                                            "investor",
                                            "asset",
                                            "currency",
                                            "amount",
                                            "price"
                                        ],
                                        "nodeType": "FunctionCall",
                                        "src": "9855:249:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_subscriptions_$12146_memory_ptr",
                                            "typeString": "struct ISettlor.subscriptions memory"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "9810:294:19"
                                },
                                {
                                    "assignments": [
                                        10033
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 10033,
                                            "mutability": "mutable",
                                            "name": "poolId",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 10084,
                                            "src": "10118:14:19",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            },
                                            "typeName": {
                                                "id": 10032,
                                                "name": "bytes32",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "10118:7:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 10037,
                                    "initialValue": {
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "expression": {
                                                "id": 10034,
                                                "name": "orderbook",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9850,
                                                "src": "10135:9:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_IOrder_$11977",
                                                    "typeString": "contract IOrder"
                                                }
                                            },
                                            "id": 10035,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "getPoolId",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 11920,
                                            "src": "10135:19:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                                                "typeString": "function () view external returns (bytes32)"
                                            }
                                        },
                                        "id": 10036,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "10135:21:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "10118:38:19"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "id": 10042,
                                                "name": "subscription",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10022,
                                                "src": "10193:12:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_subscriptions_$12146_memory_ptr",
                                                    "typeString": "struct ISettlor.subscriptions memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_struct$_subscriptions_$12146_memory_ptr",
                                                    "typeString": "struct ISettlor.subscriptions memory"
                                                }
                                            ],
                                            "expression": {
                                                "baseExpression": {
                                                    "id": 10038,
                                                    "name": "investors",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9353,
                                                    "src": "10170:9:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_subscriptions_$12146_storage_$dyn_storage_$",
                                                        "typeString": "mapping(bytes32 => struct ISettlor.subscriptions storage ref[] storage ref)"
                                                    }
                                                },
                                                "id": 10040,
                                                "indexExpression": {
                                                    "id": 10039,
                                                    "name": "poolId",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 10033,
                                                    "src": "10180:6:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "10170:17:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_struct$_subscriptions_$12146_storage_$dyn_storage",
                                                    "typeString": "struct ISettlor.subscriptions storage ref[] storage ref"
                                                }
                                            },
                                            "id": 10041,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "push",
                                            "nodeType": "MemberAccess",
                                            "src": "10170:22:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_subscriptions_$12146_storage_$returns$__$",
                                                "typeString": "function (struct ISettlor.subscriptions storage ref)"
                                            }
                                        },
                                        "id": 10043,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "10170:36:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 10044,
                                    "nodeType": "ExpressionStatement",
                                    "src": "10170:36:19"
                                },
                                {
                                    "eventCall": {
                                        "arguments": [
                                            {
                                                "id": 10046,
                                                "name": "poolId",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10033,
                                                "src": "10237:6:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "id": 10047,
                                                "name": "party",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9897,
                                                "src": "10245:5:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 10048,
                                                "name": "counterparty",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9909,
                                                "src": "10252:12:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 10049,
                                                "name": "securityTraded",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9885,
                                                "src": "10266:14:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 10050,
                                                "name": "currencySettled",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9891,
                                                "src": "10282:15:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 10051,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9921,
                                                "src": "10299:6:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "expression": {
                                                    "id": 10052,
                                                    "name": "subscription",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 10022,
                                                    "src": "10307:12:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_subscriptions_$12146_memory_ptr",
                                                        "typeString": "struct ISettlor.subscriptions memory"
                                                    }
                                                },
                                                "id": 10053,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "price",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 12145,
                                                "src": "10307:18:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "id": 10054,
                                                "name": "ref",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10002,
                                                "src": "10327:3:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "expression": {
                                                    "id": 10055,
                                                    "name": "tradeToSettle",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9958,
                                                    "src": "10332:13:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_settlement_$12173_memory_ptr",
                                                        "typeString": "struct ISettlor.settlement memory"
                                                    }
                                                },
                                                "id": 10056,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "DPID",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 12160,
                                                "src": "10332:18:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "expression": {
                                                    "id": 10057,
                                                    "name": "block",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": -4,
                                                    "src": "10352:5:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_magic_block",
                                                        "typeString": "block"
                                                    }
                                                },
                                                "id": 10058,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "timestamp",
                                                "nodeType": "MemberAccess",
                                                "src": "10352:15:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "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"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 10045,
                                            "name": "subscribers",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9420,
                                            "src": "10225:11:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes32_$_t_bytes32_$_t_uint256_$returns$__$",
                                                "typeString": "function (bytes32,address,address,address,address,uint256,uint256,bytes32,bytes32,uint256)"
                                            }
                                        },
                                        "id": 10059,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "10225:143:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 10060,
                                    "nodeType": "EmitStatement",
                                    "src": "10220:148:19"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "id": 10066,
                                                "name": "ref",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10002,
                                                "src": "10414:3:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            ],
                                            "expression": {
                                                "baseExpression": {
                                                    "id": 10061,
                                                    "name": "trades",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9332,
                                                    "src": "10382:6:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_bytes32_$dyn_storage_$",
                                                        "typeString": "mapping(bytes32 => bytes32[] storage ref)"
                                                    }
                                                },
                                                "id": 10064,
                                                "indexExpression": {
                                                    "expression": {
                                                        "id": 10062,
                                                        "name": "tradeToSettle",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9958,
                                                        "src": "10389:13:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_settlement_$12173_memory_ptr",
                                                            "typeString": "struct ISettlor.settlement memory"
                                                        }
                                                    },
                                                    "id": 10063,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "DPID",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 12160,
                                                    "src": "10389:18:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "10382:26:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                    "typeString": "bytes32[] storage ref"
                                                }
                                            },
                                            "id": 10065,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "push",
                                            "nodeType": "MemberAccess",
                                            "src": "10382:31:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$__$",
                                                "typeString": "function (bytes32)"
                                            }
                                        },
                                        "id": 10067,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "10382:36:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 10068,
                                    "nodeType": "ExpressionStatement",
                                    "src": "10382:36:19"
                                },
                                {
                                    "condition": {
                                        "commonType": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        },
                                        "id": 10077,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "arguments": [
                                                {
                                                    "id": 10071,
                                                    "name": "securityTraded",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9885,
                                                    "src": "10450:14:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                ],
                                                "expression": {
                                                    "id": 10069,
                                                    "name": "products",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9361,
                                                    "src": "10435:8:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_contract$_IFactory_$11117",
                                                        "typeString": "contract IFactory"
                                                    }
                                                },
                                                "id": 10070,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "getDP",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 11116,
                                                "src": "10435:14:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                                                    "typeString": "function (address) view external returns (address)"
                                                }
                                            },
                                            "id": 10072,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "10435:30:19",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "==",
                                        "rightExpression": {
                                            "arguments": [
                                                {
                                                    "hexValue": "307830",
                                                    "id": 10075,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "10475:3:19",
                                                    "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": 10074,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "10467:7:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_address_$",
                                                    "typeString": "type(address)"
                                                },
                                                "typeName": {
                                                    "id": 10073,
                                                    "name": "address",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "10467:7:19",
                                                    "typeDescriptions": {}
                                                }
                                            },
                                            "id": 10076,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "10467:12:19",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address_payable",
                                                "typeString": "address payable"
                                            }
                                        },
                                        "src": "10435:44:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 10083,
                                    "nodeType": "IfStatement",
                                    "src": "10432:124:19",
                                    "trueBody": {
                                        "expression": {
                                            "arguments": [
                                                {
                                                    "id": 10079,
                                                    "name": "ref",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 10002,
                                                    "src": "10541:3:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                {
                                                    "hexValue": "436f6e6669726d",
                                                    "id": 10080,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "string",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "10546:9:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_stringliteral_3835a712a1868db4190e4c5c9d4a588f4b967c58d59a16f49582013eccd94268",
                                                        "typeString": "literal_string \"Confirm\""
                                                    },
                                                    "value": "Confirm"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_stringliteral_3835a712a1868db4190e4c5c9d4a588f4b967c58d59a16f49582013eccd94268",
                                                        "typeString": "literal_string \"Confirm\""
                                                    }
                                                ],
                                                "id": 10078,
                                                "name": "setSettlement",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10748,
                                                "src": "10527:13:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
                                                    "typeString": "function (bytes32,bytes32)"
                                                }
                                            },
                                            "id": 10081,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "10527:29:19",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_tuple$__$",
                                                "typeString": "tuple()"
                                            }
                                        },
                                        "id": 10082,
                                        "nodeType": "ExpressionStatement",
                                        "src": "10527:29:19"
                                    }
                                }
                            ]
                        },
                        "documentation": {
                            "id": 9846,
                            "nodeType": "StructuredDocumentation",
                            "src": "7562:153:19",
                            "text": "Used by Secondary pools to request settlement for trades\n@param  tradeToReport     data structure holding order matching data"
                        },
                        "functionSelector": "71eedc7f",
                        "id": 10085,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "requestSettlement",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 9852,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "7800:8:19"
                        },
                        "parameters": {
                            "id": 9851,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 9848,
                                    "mutability": "mutable",
                                    "name": "tradeToReport",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 10085,
                                    "src": "7747:33:19",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_trade_$12274_memory_ptr",
                                        "typeString": "struct ITrade.trade"
                                    },
                                    "typeName": {
                                        "id": 9847,
                                        "name": "ITrade.trade",
                                        "nodeType": "UserDefinedTypeName",
                                        "referencedDeclaration": 12274,
                                        "src": "7747:12:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_trade_$12274_storage_ptr",
                                            "typeString": "struct ITrade.trade"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9850,
                                    "mutability": "mutable",
                                    "name": "orderbook",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 10085,
                                    "src": "7782:16:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_IOrder_$11977",
                                        "typeString": "contract IOrder"
                                    },
                                    "typeName": {
                                        "id": 9849,
                                        "name": "IOrder",
                                        "nodeType": "UserDefinedTypeName",
                                        "referencedDeclaration": 11977,
                                        "src": "7782:6:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_IOrder_$11977",
                                            "typeString": "contract IOrder"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "7746:53:19"
                        },
                        "returnParameters": {
                            "id": 9853,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "7818:0:19"
                        },
                        "scope": 10930,
                        "src": "7720:2855:19",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "baseFunctions": [
                            12205
                        ],
                        "body": {
                            "id": 10108,
                            "nodeType": "Block",
                            "src": "10957:36:19",
                            "statements": [
                                {
                                    "expression": {
                                        "baseExpression": {
                                            "id": 10104,
                                            "name": "trades",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9332,
                                            "src": "10974:6:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_bytes32_$dyn_storage_$",
                                                "typeString": "mapping(bytes32 => bytes32[] storage ref)"
                                            }
                                        },
                                        "id": 10106,
                                        "indexExpression": {
                                            "id": 10105,
                                            "name": "dpid",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 10088,
                                            "src": "10981:4:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "10974:12:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                            "typeString": "bytes32[] storage ref"
                                        }
                                    },
                                    "functionReturnParameters": 10103,
                                    "id": 10107,
                                    "nodeType": "Return",
                                    "src": "10967:19:19"
                                }
                            ]
                        },
                        "documentation": {
                            "id": 10086,
                            "nodeType": "StructuredDocumentation",
                            "src": "10585:207:19",
                            "text": "Fetches trade settlement requests for depository participant\n@param  dpid         identifier of depository participant (eg, transfer agent) that is authorized to settle the asset "
                        },
                        "functionSelector": "c9fca3c7",
                        "id": 10109,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "expression": {
                                            "id": 10094,
                                            "name": "msg",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": -15,
                                            "src": "10898:3:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_magic_message",
                                                "typeString": "msg"
                                            }
                                        },
                                        "id": 10095,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sender",
                                        "nodeType": "MemberAccess",
                                        "src": "10898:10:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    },
                                    {
                                        "baseExpression": {
                                            "id": 10096,
                                            "name": "poolSecurity",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9344,
                                            "src": "10910:12:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                "typeString": "mapping(bytes32 => address)"
                                            }
                                        },
                                        "id": 10098,
                                        "indexExpression": {
                                            "id": 10097,
                                            "name": "poolId",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 10090,
                                            "src": "10923:6:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "10910:20:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    }
                                ],
                                "id": 10099,
                                "modifierName": {
                                    "id": 10093,
                                    "name": "onlyIssueManager",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 9458,
                                    "src": "10881:16:19",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$_t_address_$",
                                        "typeString": "modifier (address,address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "10881:50:19"
                            }
                        ],
                        "name": "getSettlementRequests",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 10092,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "10858:8:19"
                        },
                        "parameters": {
                            "id": 10091,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 10088,
                                    "mutability": "mutable",
                                    "name": "dpid",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 10109,
                                    "src": "10828:12:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 10087,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10828:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 10090,
                                    "mutability": "mutable",
                                    "name": "poolId",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 10109,
                                    "src": "10842:14:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 10089,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10842:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "10827:30:19"
                        },
                        "returnParameters": {
                            "id": 10103,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 10102,
                                    "mutability": "mutable",
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 10109,
                                    "src": "10940:16:19",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                                        "typeString": "bytes32[]"
                                    },
                                    "typeName": {
                                        "baseType": {
                                            "id": 10100,
                                            "name": "bytes32",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "10940:7:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "id": 10101,
                                        "nodeType": "ArrayTypeName",
                                        "src": "10940:9:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                                            "typeString": "bytes32[]"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "10939:18:19"
                        },
                        "scope": 10930,
                        "src": "10797:196:19",
                        "stateMutability": "view",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "baseFunctions": [
                            12212
                        ],
                        "body": {
                            "id": 10129,
                            "nodeType": "Block",
                            "src": "11218:88:19",
                            "statements": [
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "commonType": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                "id": 10121,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "id": 10119,
                                                    "name": "ref",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 10112,
                                                    "src": "11236:3:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "!=",
                                                "rightExpression": {
                                                    "hexValue": "",
                                                    "id": 10120,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "string",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "11241:2:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                                                        "typeString": "literal_string \"\""
                                                    },
                                                    "value": ""
                                                },
                                                "src": "11236:7:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "hexValue": "496e76616c6964207265666572656e6365",
                                                "id": 10122,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "11245:19:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_878d406bf8506eb539ea221b0ab14cb9762f555d7268c6377a26768d0098eb08",
                                                    "typeString": "literal_string \"Invalid reference\""
                                                },
                                                "value": "Invalid reference"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_878d406bf8506eb539ea221b0ab14cb9762f555d7268c6377a26768d0098eb08",
                                                    "typeString": "literal_string \"Invalid reference\""
                                                }
                                            ],
                                            "id": 10118,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "11228:7:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 10123,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "11228:37:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 10124,
                                    "nodeType": "ExpressionStatement",
                                    "src": "11228:37:19"
                                },
                                {
                                    "expression": {
                                        "baseExpression": {
                                            "id": 10125,
                                            "name": "settlements",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9327,
                                            "src": "11283:11:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                            }
                                        },
                                        "id": 10127,
                                        "indexExpression": {
                                            "id": 10126,
                                            "name": "ref",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 10112,
                                            "src": "11295:3:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "11283:16:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                            "typeString": "struct ISettlor.settlement storage ref"
                                        }
                                    },
                                    "functionReturnParameters": 10117,
                                    "id": 10128,
                                    "nodeType": "Return",
                                    "src": "11276:23:19"
                                }
                            ]
                        },
                        "documentation": {
                            "id": 10110,
                            "nodeType": "StructuredDocumentation",
                            "src": "10999:122:19",
                            "text": "Fetches a specific trade settlement request        \n@param  ref         reference to the trade"
                        },
                        "functionSelector": "79a7dc0e",
                        "id": 10130,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getSettlementRequest",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 10114,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "11169:8:19"
                        },
                        "parameters": {
                            "id": 10113,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 10112,
                                    "mutability": "mutable",
                                    "name": "ref",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 10130,
                                    "src": "11156:11:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 10111,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "11156:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "11155:13:19"
                        },
                        "returnParameters": {
                            "id": 10117,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 10116,
                                    "mutability": "mutable",
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 10130,
                                    "src": "11200:17:19",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_settlement_$12173_memory_ptr",
                                        "typeString": "struct ISettlor.settlement"
                                    },
                                    "typeName": {
                                        "id": 10115,
                                        "name": "settlement",
                                        "nodeType": "UserDefinedTypeName",
                                        "referencedDeclaration": 12173,
                                        "src": "11200:10:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_settlement_$12173_storage_ptr",
                                            "typeString": "struct ISettlor.settlement"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "11199:19:19"
                        },
                        "scope": 10930,
                        "src": "11126:180:19",
                        "stateMutability": "view",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "baseFunctions": [
                            12239
                        ],
                        "body": {
                            "id": 10269,
                            "nodeType": "Block",
                            "src": "11416:976:19",
                            "statements": [
                                {
                                    "assignments": [
                                        10144
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 10144,
                                            "mutability": "mutable",
                                            "name": "currency",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 10269,
                                            "src": "11426:16:19",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "typeName": {
                                                "id": 10143,
                                                "name": "address",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "11426:7:19",
                                                "stateMutability": "nonpayable",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 10152,
                                    "initialValue": {
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "expression": {
                                                "arguments": [
                                                    {
                                                        "baseExpression": {
                                                            "id": 10146,
                                                            "name": "poolAddress",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9340,
                                                            "src": "11465:11:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                                "typeString": "mapping(bytes32 => address)"
                                                            }
                                                        },
                                                        "id": 10148,
                                                        "indexExpression": {
                                                            "id": 10147,
                                                            "name": "poolId",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 10132,
                                                            "src": "11477:6:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "11465:19:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 10145,
                                                    "name": "ISecondaryIssuePool",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 12072,
                                                    "src": "11445:19:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_ISecondaryIssuePool_$12072_$",
                                                        "typeString": "type(contract ISecondaryIssuePool)"
                                                    }
                                                },
                                                "id": 10149,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "11445:40:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_ISecondaryIssuePool_$12072",
                                                    "typeString": "contract ISecondaryIssuePool"
                                                }
                                            },
                                            "id": 10150,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "getCurrency",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 12066,
                                            "src": "11445:52:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                                                "typeString": "function () view external returns (address)"
                                            }
                                        },
                                        "id": 10151,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "11445:54:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "11426:73:19"
                                },
                                {
                                    "assignments": [
                                        10156,
                                        null,
                                        null
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 10156,
                                            "mutability": "mutable",
                                            "name": "tokens",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 10269,
                                            "src": "11544:22:19",
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr",
                                                "typeString": "contract IERC20[]"
                                            },
                                            "typeName": {
                                                "baseType": {
                                                    "id": 10154,
                                                    "name": "IERC20",
                                                    "nodeType": "UserDefinedTypeName",
                                                    "referencedDeclaration": 2938,
                                                    "src": "11544:6:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_contract$_IERC20_$2938",
                                                        "typeString": "contract IERC20"
                                                    }
                                                },
                                                "id": 10155,
                                                "nodeType": "ArrayTypeName",
                                                "src": "11544:8:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_storage_ptr",
                                                    "typeString": "contract IERC20[]"
                                                }
                                            },
                                            "visibility": "internal"
                                        },
                                        null,
                                        null
                                    ],
                                    "id": 10163,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "id": 10161,
                                                "name": "poolId",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10132,
                                                "src": "11602:6:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            ],
                                            "expression": {
                                                "arguments": [
                                                    {
                                                        "id": 10158,
                                                        "name": "vault",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9313,
                                                        "src": "11581:5:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 10157,
                                                    "name": "IVault",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 3688,
                                                    "src": "11574:6:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_IVault_$3688_$",
                                                        "typeString": "type(contract IVault)"
                                                    }
                                                },
                                                "id": 10159,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "11574:13:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_IVault_$3688",
                                                    "typeString": "contract IVault"
                                                }
                                            },
                                            "id": 10160,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "getPoolTokens",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 3444,
                                            "src": "11574:27:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$_t_bytes32_$returns$_t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$",
                                                "typeString": "function (bytes32) view external returns (contract IERC20[] memory,uint256[] memory,uint256)"
                                            }
                                        },
                                        "id": 10162,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "11574:35:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$_t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$",
                                            "typeString": "tuple(contract IERC20[] memory,uint256[] memory,uint256)"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "11543:66:19"
                                },
                                {
                                    "assignments": [
                                        10167
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 10167,
                                            "mutability": "mutable",
                                            "name": "assets",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 10269,
                                            "src": "11619:22:19",
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_contract$_IAsset_$3127_$dyn_memory_ptr",
                                                "typeString": "contract IAsset[]"
                                            },
                                            "typeName": {
                                                "baseType": {
                                                    "id": 10165,
                                                    "name": "IAsset",
                                                    "nodeType": "UserDefinedTypeName",
                                                    "referencedDeclaration": 3127,
                                                    "src": "11619:6:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_contract$_IAsset_$3127",
                                                        "typeString": "contract IAsset"
                                                    }
                                                },
                                                "id": 10166,
                                                "nodeType": "ArrayTypeName",
                                                "src": "11619:8:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_contract$_IAsset_$3127_$dyn_storage_ptr",
                                                    "typeString": "contract IAsset[]"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 10171,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "id": 10169,
                                                "name": "tokens",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10156,
                                                "src": "11667:6:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr",
                                                    "typeString": "contract IERC20[] memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr",
                                                    "typeString": "contract IERC20[] memory"
                                                }
                                            ],
                                            "id": 10168,
                                            "name": "_convertERC20sToAssets",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 10860,
                                            "src": "11644:22:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr_$returns$_t_array$_t_contract$_IAsset_$3127_$dyn_memory_ptr_$",
                                                "typeString": "function (contract IERC20[] memory) pure returns (contract IAsset[] memory)"
                                            }
                                        },
                                        "id": 10170,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "11644:30:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_contract$_IAsset_$3127_$dyn_memory_ptr",
                                            "typeString": "contract IAsset[] memory"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "11619:55:19"
                                },
                                {
                                    "assignments": [
                                        10176
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 10176,
                                            "mutability": "mutable",
                                            "name": "amountsOut",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 10269,
                                            "src": "11684:27:19",
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                "typeString": "uint256[]"
                                            },
                                            "typeName": {
                                                "baseType": {
                                                    "id": 10174,
                                                    "name": "uint256",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "11684:7:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 10175,
                                                "nodeType": "ArrayTypeName",
                                                "src": "11684:9:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                                    "typeString": "uint256[]"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 10183,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "expression": {
                                                    "id": 10180,
                                                    "name": "tokens",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 10156,
                                                    "src": "11728:6:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr",
                                                        "typeString": "contract IERC20[] memory"
                                                    }
                                                },
                                                "id": 10181,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "length",
                                                "nodeType": "MemberAccess",
                                                "src": "11728:13:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 10179,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "NewExpression",
                                            "src": "11714:13:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                                                "typeString": "function (uint256) pure returns (uint256[] memory)"
                                            },
                                            "typeName": {
                                                "baseType": {
                                                    "id": 10177,
                                                    "name": "uint256",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "11718:7:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 10178,
                                                "nodeType": "ArrayTypeName",
                                                "src": "11718:9:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                                    "typeString": "uint256[]"
                                                }
                                            }
                                        },
                                        "id": 10182,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "11714:28:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                            "typeString": "uint256[] memory"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "11684:58:19"
                                },
                                {
                                    "assignments": [
                                        10187
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 10187,
                                            "mutability": "mutable",
                                            "name": "request",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 10269,
                                            "src": "11752:37:19",
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_ExitPoolRequest_$3490_memory_ptr",
                                                "typeString": "struct IVault.ExitPoolRequest"
                                            },
                                            "typeName": {
                                                "id": 10186,
                                                "name": "IVault.ExitPoolRequest",
                                                "nodeType": "UserDefinedTypeName",
                                                "referencedDeclaration": 3490,
                                                "src": "11752:22:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_ExitPoolRequest_$3490_storage_ptr",
                                                    "typeString": "struct IVault.ExitPoolRequest"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 10200,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "id": 10190,
                                                "name": "assets",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10167,
                                                "src": "11837:6:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_contract$_IAsset_$3127_$dyn_memory_ptr",
                                                    "typeString": "contract IAsset[] memory"
                                                }
                                            },
                                            {
                                                "id": 10191,
                                                "name": "amountsOut",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10176,
                                                "src": "11872:10:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                    "typeString": "uint256[] memory"
                                                }
                                            },
                                            {
                                                "arguments": [
                                                    {
                                                        "expression": {
                                                            "id": 10194,
                                                            "name": "ExitKind",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 12135,
                                                            "src": "11917:8:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_enum$_ExitKind_$12135_$",
                                                                "typeString": "type(enum ISettlor.ExitKind)"
                                                            }
                                                        },
                                                        "id": 10195,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "lValueRequested": false,
                                                        "memberName": "EXACT_BPT_IN_FOR_TOKENS_OUT",
                                                        "nodeType": "MemberAccess",
                                                        "src": "11917:36:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_enum$_ExitKind_$12135",
                                                            "typeString": "enum ISettlor.ExitKind"
                                                        }
                                                    },
                                                    {
                                                        "hexValue": "30",
                                                        "id": 10196,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "number",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "11955:1:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_rational_0_by_1",
                                                            "typeString": "int_const 0"
                                                        },
                                                        "value": "0"
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_enum$_ExitKind_$12135",
                                                            "typeString": "enum ISettlor.ExitKind"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_rational_0_by_1",
                                                            "typeString": "int_const 0"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "id": 10192,
                                                        "name": "abi",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": -1,
                                                        "src": "11906:3:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_magic_abi",
                                                            "typeString": "abi"
                                                        }
                                                    },
                                                    "id": 10193,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "memberName": "encode",
                                                    "nodeType": "MemberAccess",
                                                    "src": "11906:10:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                                        "typeString": "function () pure returns (bytes memory)"
                                                    }
                                                },
                                                "id": 10197,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "11906:51:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes_memory_ptr",
                                                    "typeString": "bytes memory"
                                                }
                                            },
                                            {
                                                "hexValue": "66616c7365",
                                                "id": 10198,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "bool",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "11990:5:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "value": "false"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_array$_t_contract$_IAsset_$3127_$dyn_memory_ptr",
                                                    "typeString": "contract IAsset[] memory"
                                                },
                                                {
                                                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                    "typeString": "uint256[] memory"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes_memory_ptr",
                                                    "typeString": "bytes memory"
                                                },
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            ],
                                            "expression": {
                                                "id": 10188,
                                                "name": "IVault",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 3688,
                                                "src": "11792:6:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_IVault_$3688_$",
                                                    "typeString": "type(contract IVault)"
                                                }
                                            },
                                            "id": 10189,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "ExitPoolRequest",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 3490,
                                            "src": "11792:22:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_type$_t_struct$_ExitPoolRequest_$3490_storage_ptr_$",
                                                "typeString": "type(struct IVault.ExitPoolRequest storage pointer)"
                                            }
                                        },
                                        "id": 10199,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "structConstructorCall",
                                        "lValueRequested": false,
                                        "names": [
                                            "assets",
                                            "minAmountsOut",
                                            "userData",
                                            "toInternalBalance"
                                        ],
                                        "nodeType": "FunctionCall",
                                        "src": "11792:214:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_struct$_ExitPoolRequest_$3490_memory_ptr",
                                            "typeString": "struct IVault.ExitPoolRequest memory"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "11752:254:19"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "id": 10205,
                                                "name": "poolId",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10132,
                                                "src": "12048:6:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "arguments": [
                                                    {
                                                        "id": 10208,
                                                        "name": "this",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": -28,
                                                        "src": "12064:4:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_SecondaryIssueManager_$10930",
                                                            "typeString": "contract SecondaryIssueManager"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_contract$_SecondaryIssueManager_$10930",
                                                            "typeString": "contract SecondaryIssueManager"
                                                        }
                                                    ],
                                                    "id": 10207,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "nodeType": "ElementaryTypeNameExpression",
                                                    "src": "12056:7:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_address_$",
                                                        "typeString": "type(address)"
                                                    },
                                                    "typeName": {
                                                        "id": 10206,
                                                        "name": "address",
                                                        "nodeType": "ElementaryTypeName",
                                                        "src": "12056:7:19",
                                                        "typeDescriptions": {}
                                                    }
                                                },
                                                "id": 10209,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "12056:13:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "arguments": [
                                                    {
                                                        "arguments": [
                                                            {
                                                                "id": 10214,
                                                                "name": "this",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": -28,
                                                                "src": "12087:4:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_SecondaryIssueManager_$10930",
                                                                    "typeString": "contract SecondaryIssueManager"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_contract$_SecondaryIssueManager_$10930",
                                                                    "typeString": "contract SecondaryIssueManager"
                                                                }
                                                            ],
                                                            "id": 10213,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "nodeType": "ElementaryTypeNameExpression",
                                                            "src": "12079:7:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_address_$",
                                                                "typeString": "type(address)"
                                                            },
                                                            "typeName": {
                                                                "id": 10212,
                                                                "name": "address",
                                                                "nodeType": "ElementaryTypeName",
                                                                "src": "12079:7:19",
                                                                "typeDescriptions": {}
                                                            }
                                                        },
                                                        "id": 10215,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "12079:13:19",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 10211,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "nodeType": "ElementaryTypeNameExpression",
                                                    "src": "12071:8:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_address_payable_$",
                                                        "typeString": "type(address payable)"
                                                    },
                                                    "typeName": {
                                                        "id": 10210,
                                                        "name": "address",
                                                        "nodeType": "ElementaryTypeName",
                                                        "src": "12071:8:19",
                                                        "stateMutability": "payable",
                                                        "typeDescriptions": {}
                                                    }
                                                },
                                                "id": 10216,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "12071:22:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                }
                                            },
                                            {
                                                "id": 10217,
                                                "name": "request",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10187,
                                                "src": "12095:7:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_struct$_ExitPoolRequest_$3490_memory_ptr",
                                                    "typeString": "struct IVault.ExitPoolRequest memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address_payable",
                                                    "typeString": "address payable"
                                                },
                                                {
                                                    "typeIdentifier": "t_struct$_ExitPoolRequest_$3490_memory_ptr",
                                                    "typeString": "struct IVault.ExitPoolRequest memory"
                                                }
                                            ],
                                            "expression": {
                                                "arguments": [
                                                    {
                                                        "id": 10202,
                                                        "name": "vault",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9313,
                                                        "src": "12032:5:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 10201,
                                                    "name": "IVault",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 3688,
                                                    "src": "12025:6:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_IVault_$3688_$",
                                                        "typeString": "type(contract IVault)"
                                                    }
                                                },
                                                "id": 10203,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "12025:13:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_IVault_$3688",
                                                    "typeString": "contract IVault"
                                                }
                                            },
                                            "id": 10204,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "exitPool",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 3479,
                                            "src": "12025:22:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_address_payable_$_t_struct$_ExitPoolRequest_$3490_memory_ptr_$returns$__$",
                                                "typeString": "function (bytes32,address,address payable,struct IVault.ExitPoolRequest memory) external"
                                            }
                                        },
                                        "id": 10218,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "12025:78:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 10219,
                                    "nodeType": "ExpressionStatement",
                                    "src": "12025:78:19"
                                },
                                {
                                    "eventCall": {
                                        "arguments": [
                                            {
                                                "id": 10221,
                                                "name": "poolId",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10132,
                                                "src": "12127:6:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "baseExpression": {
                                                    "id": 10222,
                                                    "name": "poolSecurity",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9344,
                                                    "src": "12135:12:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                        "typeString": "mapping(bytes32 => address)"
                                                    }
                                                },
                                                "id": 10224,
                                                "indexExpression": {
                                                    "id": 10223,
                                                    "name": "poolId",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 10132,
                                                    "src": "12148:6:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "12135:20:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "expression": {
                                                    "id": 10225,
                                                    "name": "block",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": -4,
                                                    "src": "12157:5:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_magic_block",
                                                        "typeString": "block"
                                                    }
                                                },
                                                "id": 10226,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "timestamp",
                                                "nodeType": "MemberAccess",
                                                "src": "12157:15:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 10220,
                                            "name": "closures",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9428,
                                            "src": "12118:8:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
                                                "typeString": "function (bytes32,address,uint256)"
                                            }
                                        },
                                        "id": 10227,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "12118:55:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 10228,
                                    "nodeType": "EmitStatement",
                                    "src": "12113:60:19"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "baseExpression": {
                                                    "id": 10233,
                                                    "name": "issuer",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9348,
                                                    "src": "12209:6:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                        "typeString": "mapping(bytes32 => address)"
                                                    }
                                                },
                                                "id": 10235,
                                                "indexExpression": {
                                                    "id": 10234,
                                                    "name": "poolId",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 10132,
                                                    "src": "12216:6:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "12209:14:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "arguments": [
                                                    {
                                                        "arguments": [
                                                            {
                                                                "id": 10242,
                                                                "name": "this",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": -28,
                                                                "src": "12260:4:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_SecondaryIssueManager_$10930",
                                                                    "typeString": "contract SecondaryIssueManager"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_contract$_SecondaryIssueManager_$10930",
                                                                    "typeString": "contract SecondaryIssueManager"
                                                                }
                                                            ],
                                                            "id": 10241,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "nodeType": "ElementaryTypeNameExpression",
                                                            "src": "12252:7:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_address_$",
                                                                "typeString": "type(address)"
                                                            },
                                                            "typeName": {
                                                                "id": 10240,
                                                                "name": "address",
                                                                "nodeType": "ElementaryTypeName",
                                                                "src": "12252:7:19",
                                                                "typeDescriptions": {}
                                                            }
                                                        },
                                                        "id": 10243,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "12252:13:19",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "arguments": [
                                                            {
                                                                "id": 10237,
                                                                "name": "currency",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 10144,
                                                                "src": "12232:8:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "id": 10236,
                                                            "name": "IERC20",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 2938,
                                                            "src": "12225:6:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                "typeString": "type(contract IERC20)"
                                                            }
                                                        },
                                                        "id": 10238,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "12225:16:19",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                            "typeString": "contract IERC20"
                                                        }
                                                    },
                                                    "id": 10239,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "balanceOf",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 2877,
                                                    "src": "12225:26:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                                        "typeString": "function (address) view external returns (uint256)"
                                                    }
                                                },
                                                "id": 10244,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "12225:41:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "arguments": [
                                                    {
                                                        "id": 10230,
                                                        "name": "currency",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 10144,
                                                        "src": "12190:8:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 10229,
                                                    "name": "IERC20",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 2938,
                                                    "src": "12183:6:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                        "typeString": "type(contract IERC20)"
                                                    }
                                                },
                                                "id": 10231,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "12183:16:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                    "typeString": "contract IERC20"
                                                }
                                            },
                                            "id": 10232,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "transfer",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 2887,
                                            "src": "12183:25:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                "typeString": "function (address,uint256) external returns (bool)"
                                            }
                                        },
                                        "id": 10245,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "12183:84:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 10246,
                                    "nodeType": "ExpressionStatement",
                                    "src": "12183:84:19"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "baseExpression": {
                                                    "id": 10253,
                                                    "name": "issuer",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9348,
                                                    "src": "12315:6:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                        "typeString": "mapping(bytes32 => address)"
                                                    }
                                                },
                                                "id": 10255,
                                                "indexExpression": {
                                                    "id": 10254,
                                                    "name": "poolId",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 10132,
                                                    "src": "12322:6:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "nodeType": "IndexAccess",
                                                "src": "12315:14:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "arguments": [
                                                    {
                                                        "arguments": [
                                                            {
                                                                "id": 10264,
                                                                "name": "this",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": -28,
                                                                "src": "12378:4:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_SecondaryIssueManager_$10930",
                                                                    "typeString": "contract SecondaryIssueManager"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_contract$_SecondaryIssueManager_$10930",
                                                                    "typeString": "contract SecondaryIssueManager"
                                                                }
                                                            ],
                                                            "id": 10263,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "nodeType": "ElementaryTypeNameExpression",
                                                            "src": "12370:7:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_address_$",
                                                                "typeString": "type(address)"
                                                            },
                                                            "typeName": {
                                                                "id": 10262,
                                                                "name": "address",
                                                                "nodeType": "ElementaryTypeName",
                                                                "src": "12370:7:19",
                                                                "typeDescriptions": {}
                                                            }
                                                        },
                                                        "id": 10265,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "12370:13:19",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "arguments": [
                                                            {
                                                                "baseExpression": {
                                                                    "id": 10257,
                                                                    "name": "poolSecurity",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 9344,
                                                                    "src": "12338:12:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                                        "typeString": "mapping(bytes32 => address)"
                                                                    }
                                                                },
                                                                "id": 10259,
                                                                "indexExpression": {
                                                                    "id": 10258,
                                                                    "name": "poolId",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 10132,
                                                                    "src": "12351:6:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "12338:20:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "id": 10256,
                                                            "name": "IERC20",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 2938,
                                                            "src": "12331:6:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                "typeString": "type(contract IERC20)"
                                                            }
                                                        },
                                                        "id": 10260,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "12331:28:19",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                            "typeString": "contract IERC20"
                                                        }
                                                    },
                                                    "id": 10261,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "balanceOf",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 2877,
                                                    "src": "12331:38:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                                        "typeString": "function (address) view external returns (uint256)"
                                                    }
                                                },
                                                "id": 10266,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "12331:53:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "arguments": [
                                                    {
                                                        "baseExpression": {
                                                            "id": 10248,
                                                            "name": "poolSecurity",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9344,
                                                            "src": "12284:12:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                                "typeString": "mapping(bytes32 => address)"
                                                            }
                                                        },
                                                        "id": 10250,
                                                        "indexExpression": {
                                                            "id": 10249,
                                                            "name": "poolId",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 10132,
                                                            "src": "12297:6:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "12284:20:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 10247,
                                                    "name": "IERC20",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 2938,
                                                    "src": "12277:6:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                        "typeString": "type(contract IERC20)"
                                                    }
                                                },
                                                "id": 10251,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "12277:28:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                    "typeString": "contract IERC20"
                                                }
                                            },
                                            "id": 10252,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "transfer",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 2887,
                                            "src": "12277:37:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                "typeString": "function (address,uint256) external returns (bool)"
                                            }
                                        },
                                        "id": 10267,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "12277:108:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 10268,
                                    "nodeType": "ExpressionStatement",
                                    "src": "12277:108:19"
                                }
                            ]
                        },
                        "functionSelector": "39c79e0c",
                        "id": 10270,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "expression": {
                                            "id": 10136,
                                            "name": "msg",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": -15,
                                            "src": "11382:3:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_magic_message",
                                                "typeString": "msg"
                                            }
                                        },
                                        "id": 10137,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sender",
                                        "nodeType": "MemberAccess",
                                        "src": "11382:10:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    },
                                    {
                                        "baseExpression": {
                                            "id": 10138,
                                            "name": "poolSecurity",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9344,
                                            "src": "11394:12:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                "typeString": "mapping(bytes32 => address)"
                                            }
                                        },
                                        "id": 10140,
                                        "indexExpression": {
                                            "id": 10139,
                                            "name": "poolId",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 10132,
                                            "src": "11407:6:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "11394:20:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    }
                                ],
                                "id": 10141,
                                "modifierName": {
                                    "id": 10135,
                                    "name": "onlyIssueManager",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 9458,
                                    "src": "11365:16:19",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$_t_address_$",
                                        "typeString": "modifier (address,address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "11365:50:19"
                            }
                        ],
                        "name": "close",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 10134,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "11347:8:19"
                        },
                        "parameters": {
                            "id": 10133,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 10132,
                                    "mutability": "mutable",
                                    "name": "poolId",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 10270,
                                    "src": "11331:14:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 10131,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "11331:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "11330:16:19"
                        },
                        "returnParameters": {
                            "id": 10142,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "11416:0:19"
                        },
                        "scope": 10930,
                        "src": "11316:1076:19",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "baseFunctions": [
                            12219
                        ],
                        "body": {
                            "id": 10292,
                            "nodeType": "Block",
                            "src": "12706:43:19",
                            "statements": [
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "id": 10288,
                                                "name": "ref",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10273,
                                                "src": "12730:3:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "id": 10289,
                                                "name": "status",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10275,
                                                "src": "12735:6:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            ],
                                            "id": 10287,
                                            "name": "setSettlement",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 10748,
                                            "src": "12716:13:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
                                                "typeString": "function (bytes32,bytes32)"
                                            }
                                        },
                                        "id": 10290,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "12716:26:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 10291,
                                    "nodeType": "ExpressionStatement",
                                    "src": "12716:26:19"
                                }
                            ]
                        },
                        "documentation": {
                            "id": 10271,
                            "nodeType": "StructuredDocumentation",
                            "src": "12402:168:19",
                            "text": "Sets settlement status for trades executed\n@param  ref         reference to the trade executed\n@param  status      settlement status"
                        },
                        "functionSelector": "04967159",
                        "id": 10293,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "expression": {
                                            "id": 10279,
                                            "name": "msg",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": -15,
                                            "src": "12668:3:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_magic_message",
                                                "typeString": "msg"
                                            }
                                        },
                                        "id": 10280,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sender",
                                        "nodeType": "MemberAccess",
                                        "src": "12668:10:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    },
                                    {
                                        "expression": {
                                            "baseExpression": {
                                                "id": 10281,
                                                "name": "settlements",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9327,
                                                "src": "12680:11:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                    "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                }
                                            },
                                            "id": 10283,
                                            "indexExpression": {
                                                "id": 10282,
                                                "name": "ref",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10273,
                                                "src": "12692:3:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "12680:16:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                "typeString": "struct ISettlor.settlement storage ref"
                                            }
                                        },
                                        "id": 10284,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "security",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 12154,
                                        "src": "12680:25:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    }
                                ],
                                "id": 10285,
                                "modifierName": {
                                    "id": 10278,
                                    "name": "onlyIssueManager",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 9458,
                                    "src": "12651:16:19",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$_t_address_$",
                                        "typeString": "modifier (address,address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "12651:55:19"
                            }
                        ],
                        "name": "setSettlementStatus",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 10277,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "12633:8:19"
                        },
                        "parameters": {
                            "id": 10276,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 10273,
                                    "mutability": "mutable",
                                    "name": "ref",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 10293,
                                    "src": "12604:11:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 10272,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "12604:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 10275,
                                    "mutability": "mutable",
                                    "name": "status",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 10293,
                                    "src": "12617:14:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 10274,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "12617:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "12603:29:19"
                        },
                        "returnParameters": {
                            "id": 10286,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "12706:0:19"
                        },
                        "scope": 10930,
                        "src": "12575:174:19",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 10747,
                            "nodeType": "Block",
                            "src": "12819:3696:19",
                            "statements": [
                                {
                                    "assignments": [
                                        10301
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 10301,
                                            "mutability": "mutable",
                                            "name": "DPID",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 10747,
                                            "src": "12829:12:19",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            },
                                            "typeName": {
                                                "id": 10300,
                                                "name": "bytes32",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "12829:7:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 10306,
                                    "initialValue": {
                                        "expression": {
                                            "baseExpression": {
                                                "id": 10302,
                                                "name": "settlements",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9327,
                                                "src": "12844:11:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                    "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                }
                                            },
                                            "id": 10304,
                                            "indexExpression": {
                                                "id": 10303,
                                                "name": "ref",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10295,
                                                "src": "12856:3:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "12844:16:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                "typeString": "struct ISettlor.settlement storage ref"
                                            }
                                        },
                                        "id": 10305,
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "DPID",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 12160,
                                        "src": "12844:21:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "12829:36:19"
                                },
                                {
                                    "assignments": [
                                        10308
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 10308,
                                            "mutability": "mutable",
                                            "name": "settled",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 10747,
                                            "src": "12875:12:19",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            },
                                            "typeName": {
                                                "id": 10307,
                                                "name": "bool",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "12875:4:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 10310,
                                    "initialValue": {
                                        "hexValue": "66616c7365",
                                        "id": 10309,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "bool",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "12890:5:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        },
                                        "value": "false"
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "12875:20:19"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "commonType": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                "id": 10318,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    "id": 10314,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "id": 10312,
                                                        "name": "status",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 10297,
                                                        "src": "12913:6:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "hexValue": "436f6e6669726d",
                                                        "id": 10313,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "string",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "12921:9:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_stringliteral_3835a712a1868db4190e4c5c9d4a588f4b967c58d59a16f49582013eccd94268",
                                                            "typeString": "literal_string \"Confirm\""
                                                        },
                                                        "value": "Confirm"
                                                    },
                                                    "src": "12913:17:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "||",
                                                "rightExpression": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    },
                                                    "id": 10317,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftExpression": {
                                                        "id": 10315,
                                                        "name": "status",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 10297,
                                                        "src": "12934:6:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "nodeType": "BinaryOperation",
                                                    "operator": "==",
                                                    "rightExpression": {
                                                        "hexValue": "52656a656374",
                                                        "id": 10316,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "kind": "string",
                                                        "lValueRequested": false,
                                                        "nodeType": "Literal",
                                                        "src": "12942:8:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_stringliteral_154f4d6ea359bef5375e6dee13add0afd4742cf55fe4ac2da8884e1d4e96dba2",
                                                            "typeString": "literal_string \"Reject\""
                                                        },
                                                        "value": "Reject"
                                                    },
                                                    "src": "12934:16:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "src": "12913:37:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "hexValue": "536574746c656d656e742073746174757320696e76616c6964",
                                                "id": 10319,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "12952:27:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_32a2d999dbadb90dd3034cfecdd6027a6a805113a245b2073073dd8b137c7e39",
                                                    "typeString": "literal_string \"Settlement status invalid\""
                                                },
                                                "value": "Settlement status invalid"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_32a2d999dbadb90dd3034cfecdd6027a6a805113a245b2073073dd8b137c7e39",
                                                    "typeString": "literal_string \"Settlement status invalid\""
                                                }
                                            ],
                                            "id": 10311,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "12905:7:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 10320,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "12905:75:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 10321,
                                    "nodeType": "ExpressionStatement",
                                    "src": "12905:75:19"
                                },
                                {
                                    "expression": {
                                        "id": 10363,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "id": 10322,
                                            "name": "settlementFee",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9317,
                                            "src": "12990:13:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "condition": {
                                                "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "id": 10335,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "baseExpression": {
                                                        "baseExpression": {
                                                            "id": 10323,
                                                            "name": "customFee",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9323,
                                                            "src": "13006:9:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                                "typeString": "mapping(address => mapping(address => uint256))"
                                                            }
                                                        },
                                                        "id": 10328,
                                                        "indexExpression": {
                                                            "expression": {
                                                                "baseExpression": {
                                                                    "id": 10324,
                                                                    "name": "settlements",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 9327,
                                                                    "src": "13016:11:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                        "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                    }
                                                                },
                                                                "id": 10326,
                                                                "indexExpression": {
                                                                    "id": 10325,
                                                                    "name": "ref",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 10295,
                                                                    "src": "13028:3:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "13016:16:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                    "typeString": "struct ISettlor.settlement storage ref"
                                                                }
                                                            },
                                                            "id": 10327,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "security",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 12154,
                                                            "src": "13016:25:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "13006:36:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                            "typeString": "mapping(address => uint256)"
                                                        }
                                                    },
                                                    "id": 10333,
                                                    "indexExpression": {
                                                        "expression": {
                                                            "baseExpression": {
                                                                "id": 10329,
                                                                "name": "settlements",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 9327,
                                                                "src": "13043:11:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                    "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                }
                                                            },
                                                            "id": 10331,
                                                            "indexExpression": {
                                                                "id": 10330,
                                                                "name": "ref",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 10295,
                                                                "src": "13055:3:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "13043:16:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                "typeString": "struct ISettlor.settlement storage ref"
                                                            }
                                                        },
                                                        "id": 10332,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "currency",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 12156,
                                                        "src": "13043:25:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "13006:63:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "hexValue": "30",
                                                    "id": 10334,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "13071:1:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_rational_0_by_1",
                                                        "typeString": "int_const 0"
                                                    },
                                                    "value": "0"
                                                },
                                                "src": "13006:66:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            "falseExpression": {
                                                "arguments": [
                                                    {
                                                        "expression": {
                                                            "baseExpression": {
                                                                "id": 10346,
                                                                "name": "settlements",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 9327,
                                                                "src": "13172:11:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                    "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                }
                                                            },
                                                            "id": 10348,
                                                            "indexExpression": {
                                                                "id": 10347,
                                                                "name": "ref",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 10295,
                                                                "src": "13184:3:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "13172:16:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                "typeString": "struct ISettlor.settlement storage ref"
                                                            }
                                                        },
                                                        "id": 10349,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "consideration",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 12166,
                                                        "src": "13172:30:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    {
                                                        "baseExpression": {
                                                            "baseExpression": {
                                                                "id": 10350,
                                                                "name": "customFee",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 9323,
                                                                "src": "13204:9:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
                                                                    "typeString": "mapping(address => mapping(address => uint256))"
                                                                }
                                                            },
                                                            "id": 10355,
                                                            "indexExpression": {
                                                                "expression": {
                                                                    "baseExpression": {
                                                                        "id": 10351,
                                                                        "name": "settlements",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 9327,
                                                                        "src": "13214:11:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                            "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                        }
                                                                    },
                                                                    "id": 10353,
                                                                    "indexExpression": {
                                                                        "id": 10352,
                                                                        "name": "ref",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 10295,
                                                                        "src": "13226:3:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "13214:16:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                        "typeString": "struct ISettlor.settlement storage ref"
                                                                    }
                                                                },
                                                                "id": 10354,
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "security",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 12154,
                                                                "src": "13214:25:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "13204:36:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                                "typeString": "mapping(address => uint256)"
                                                            }
                                                        },
                                                        "id": 10360,
                                                        "indexExpression": {
                                                            "expression": {
                                                                "baseExpression": {
                                                                    "id": 10356,
                                                                    "name": "settlements",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 9327,
                                                                    "src": "13241:11:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                        "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                    }
                                                                },
                                                                "id": 10358,
                                                                "indexExpression": {
                                                                    "id": 10357,
                                                                    "name": "ref",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 10295,
                                                                    "src": "13253:3:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "13241:16:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                    "typeString": "struct ISettlor.settlement storage ref"
                                                                }
                                                            },
                                                            "id": 10359,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "currency",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 12156,
                                                            "src": "13241:25:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "13204:63:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "id": 10344,
                                                        "name": "FixedPoint",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 780,
                                                        "src": "13153:10:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_type$_t_contract$_FixedPoint_$780_$",
                                                            "typeString": "type(library FixedPoint)"
                                                        }
                                                    },
                                                    "id": 10345,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "mulDown",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 537,
                                                    "src": "13153:18:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                    }
                                                },
                                                "id": 10361,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "13153:115:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "id": 10362,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "Conditional",
                                            "src": "13006:262:19",
                                            "trueExpression": {
                                                "arguments": [
                                                    {
                                                        "expression": {
                                                            "baseExpression": {
                                                                "id": 10338,
                                                                "name": "settlements",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 9327,
                                                                "src": "13094:11:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                    "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                }
                                                            },
                                                            "id": 10340,
                                                            "indexExpression": {
                                                                "id": 10339,
                                                                "name": "ref",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 10295,
                                                                "src": "13106:3:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "nodeType": "IndexAccess",
                                                            "src": "13094:16:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                "typeString": "struct ISettlor.settlement storage ref"
                                                            }
                                                        },
                                                        "id": 10341,
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "consideration",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 12166,
                                                        "src": "13094:30:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    {
                                                        "id": 10342,
                                                        "name": "fee",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9315,
                                                        "src": "13126:3:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        },
                                                        {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "id": 10336,
                                                        "name": "FixedPoint",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 780,
                                                        "src": "13075:10:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_type$_t_contract$_FixedPoint_$780_$",
                                                            "typeString": "type(library FixedPoint)"
                                                        }
                                                    },
                                                    "id": 10337,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "mulDown",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 537,
                                                    "src": "13075:18:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                    }
                                                },
                                                "id": 10343,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "13075:55:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "12990:278:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 10364,
                                    "nodeType": "ExpressionStatement",
                                    "src": "12990:278:19"
                                },
                                {
                                    "assignments": [
                                        10366
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 10366,
                                            "mutability": "mutable",
                                            "name": "pay",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 10747,
                                            "src": "13278:11:19",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 10365,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "13278:7:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 10379,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "id": 10369,
                                                "name": "settlementFee",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9317,
                                                "src": "13311:13:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "arguments": [
                                                    {
                                                        "arguments": [
                                                            {
                                                                "expression": {
                                                                    "baseExpression": {
                                                                        "id": 10372,
                                                                        "name": "settlements",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 9327,
                                                                        "src": "13355:11:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                            "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                        }
                                                                    },
                                                                    "id": 10374,
                                                                    "indexExpression": {
                                                                        "id": 10373,
                                                                        "name": "ref",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 10295,
                                                                        "src": "13367:3:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "13355:16:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                        "typeString": "struct ISettlor.settlement storage ref"
                                                                    }
                                                                },
                                                                "id": 10375,
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "currency",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 12156,
                                                                "src": "13355:25:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "id": 10371,
                                                            "name": "IERC20",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 2938,
                                                            "src": "13348:6:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                "typeString": "type(contract IERC20)"
                                                            }
                                                        },
                                                        "id": 10376,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "13348:33:19",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                            "typeString": "contract IERC20"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                            "typeString": "contract IERC20"
                                                        }
                                                    ],
                                                    "id": 10370,
                                                    "name": "_computeScalingFactor",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 10895,
                                                    "src": "13326:21:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20_$2938_$returns$_t_uint256_$",
                                                        "typeString": "function (contract IERC20) view returns (uint256)"
                                                    }
                                                },
                                                "id": 10377,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "13326:56:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "id": 10367,
                                                "name": "FixedPoint",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 780,
                                                "src": "13292:10:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_FixedPoint_$780_$",
                                                    "typeString": "type(library FixedPoint)"
                                                }
                                            },
                                            "id": 10368,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "divDown",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 631,
                                            "src": "13292:18:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                            }
                                        },
                                        "id": 10378,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "13292:91:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "13278:105:19"
                                },
                                {
                                    "condition": {
                                        "commonType": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        },
                                        "id": 10396,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "commonType": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            },
                                            "id": 10389,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "commonType": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                "id": 10382,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "id": 10380,
                                                    "name": "status",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 10297,
                                                    "src": "13396:6:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "hexValue": "436f6e6669726d",
                                                    "id": 10381,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "string",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "13404:9:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_stringliteral_3835a712a1868db4190e4c5c9d4a588f4b967c58d59a16f49582013eccd94268",
                                                        "typeString": "literal_string \"Confirm\""
                                                    },
                                                    "value": "Confirm"
                                                },
                                                "src": "13396:17:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "&&",
                                            "rightExpression": {
                                                "commonType": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                "id": 10388,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "expression": {
                                                        "baseExpression": {
                                                            "id": 10383,
                                                            "name": "settlements",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9327,
                                                            "src": "13417:11:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                            }
                                                        },
                                                        "id": 10385,
                                                        "indexExpression": {
                                                            "id": 10384,
                                                            "name": "ref",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 10295,
                                                            "src": "13429:3:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "13417:16:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                            "typeString": "struct ISettlor.settlement storage ref"
                                                        }
                                                    },
                                                    "id": 10386,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "status",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 12158,
                                                    "src": "13417:23:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "!=",
                                                "rightExpression": {
                                                    "hexValue": "436f6e6669726d",
                                                    "id": 10387,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "string",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "13442:9:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_stringliteral_3835a712a1868db4190e4c5c9d4a588f4b967c58d59a16f49582013eccd94268",
                                                        "typeString": "literal_string \"Confirm\""
                                                    },
                                                    "value": "Confirm"
                                                },
                                                "src": "13417:34:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            "src": "13396:55:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "&&",
                                        "rightExpression": {
                                            "commonType": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            },
                                            "id": 10395,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "expression": {
                                                    "baseExpression": {
                                                        "id": 10390,
                                                        "name": "settlements",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9327,
                                                        "src": "13455:11:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                            "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                        }
                                                    },
                                                    "id": 10392,
                                                    "indexExpression": {
                                                        "id": 10391,
                                                        "name": "ref",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 10295,
                                                        "src": "13467:3:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "13455:16:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                        "typeString": "struct ISettlor.settlement storage ref"
                                                    }
                                                },
                                                "id": 10393,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "status",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 12158,
                                                "src": "13455:23:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "!=",
                                            "rightExpression": {
                                                "hexValue": "4661696c",
                                                "id": 10394,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "13480:6:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_8c4c959e7612dceb7ce1555595a8fe4f61d1ee76c1d1266f9d182a315973cf2e",
                                                    "typeString": "literal_string \"Fail\""
                                                },
                                                "value": "Fail"
                                            },
                                            "src": "13455:31:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "src": "13396:90:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "falseBody": {
                                        "condition": {
                                            "commonType": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            },
                                            "id": 10631,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "commonType": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                "id": 10624,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "id": 10622,
                                                    "name": "status",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 10297,
                                                    "src": "15227:6:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "hexValue": "52656a656374",
                                                    "id": 10623,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "string",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "15235:8:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_stringliteral_154f4d6ea359bef5375e6dee13add0afd4742cf55fe4ac2da8884e1d4e96dba2",
                                                        "typeString": "literal_string \"Reject\""
                                                    },
                                                    "value": "Reject"
                                                },
                                                "src": "15227:16:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "&&",
                                            "rightExpression": {
                                                "commonType": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                "id": 10630,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "expression": {
                                                        "baseExpression": {
                                                            "id": 10625,
                                                            "name": "settlements",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9327,
                                                            "src": "15247:11:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                            }
                                                        },
                                                        "id": 10627,
                                                        "indexExpression": {
                                                            "id": 10626,
                                                            "name": "ref",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 10295,
                                                            "src": "15259:3:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "nodeType": "IndexAccess",
                                                        "src": "15247:16:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                            "typeString": "struct ISettlor.settlement storage ref"
                                                        }
                                                    },
                                                    "id": 10628,
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "status",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 12158,
                                                    "src": "15247:23:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "!=",
                                                "rightExpression": {
                                                    "hexValue": "52656a656374",
                                                    "id": 10629,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "string",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "15272:8:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_stringliteral_154f4d6ea359bef5375e6dee13add0afd4742cf55fe4ac2da8884e1d4e96dba2",
                                                        "typeString": "literal_string \"Reject\""
                                                    },
                                                    "value": "Reject"
                                                },
                                                "src": "15247:33:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            "src": "15227:53:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                            }
                                        },
                                        "id": 10700,
                                        "nodeType": "IfStatement",
                                        "src": "15224:572:19",
                                        "trueBody": {
                                            "id": 10699,
                                            "nodeType": "Block",
                                            "src": "15281:515:19",
                                            "statements": [
                                                {
                                                    "assignments": [
                                                        10633
                                                    ],
                                                    "declarations": [
                                                        {
                                                            "constant": false,
                                                            "id": 10633,
                                                            "mutability": "mutable",
                                                            "name": "consideration",
                                                            "nodeType": "VariableDeclaration",
                                                            "scope": 10699,
                                                            "src": "15295:21:19",
                                                            "stateVariable": false,
                                                            "storageLocation": "default",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "typeName": {
                                                                "id": 10632,
                                                                "name": "uint256",
                                                                "nodeType": "ElementaryTypeName",
                                                                "src": "15295:7:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "visibility": "internal"
                                                        }
                                                    ],
                                                    "id": 10648,
                                                    "initialValue": {
                                                        "arguments": [
                                                            {
                                                                "expression": {
                                                                    "baseExpression": {
                                                                        "id": 10635,
                                                                        "name": "settlements",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 9327,
                                                                        "src": "15334:11:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                            "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                        }
                                                                    },
                                                                    "id": 10637,
                                                                    "indexExpression": {
                                                                        "id": 10636,
                                                                        "name": "ref",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 10295,
                                                                        "src": "15346:3:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "15334:16:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                        "typeString": "struct ISettlor.settlement storage ref"
                                                                    }
                                                                },
                                                                "id": 10638,
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "consideration",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 12166,
                                                                "src": "15334:30:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            {
                                                                "arguments": [
                                                                    {
                                                                        "arguments": [
                                                                            {
                                                                                "expression": {
                                                                                    "baseExpression": {
                                                                                        "id": 10641,
                                                                                        "name": "settlements",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 9327,
                                                                                        "src": "15395:11:19",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                                            "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                                        }
                                                                                    },
                                                                                    "id": 10643,
                                                                                    "indexExpression": {
                                                                                        "id": 10642,
                                                                                        "name": "ref",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 10295,
                                                                                        "src": "15407:3:19",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_bytes32",
                                                                                            "typeString": "bytes32"
                                                                                        }
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "IndexAccess",
                                                                                    "src": "15395:16:19",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                                        "typeString": "struct ISettlor.settlement storage ref"
                                                                                    }
                                                                                },
                                                                                "id": 10644,
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "memberName": "currency",
                                                                                "nodeType": "MemberAccess",
                                                                                "referencedDeclaration": 12156,
                                                                                "src": "15395:25:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "id": 10640,
                                                                            "name": "IERC20",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 2938,
                                                                            "src": "15388:6:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                                "typeString": "type(contract IERC20)"
                                                                            }
                                                                        },
                                                                        "id": 10645,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "typeConversion",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "15388:33:19",
                                                                        "tryCall": false,
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                            "typeString": "contract IERC20"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                            "typeString": "contract IERC20"
                                                                        }
                                                                    ],
                                                                    "id": 10639,
                                                                    "name": "_computeScalingFactor",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 10895,
                                                                    "src": "15366:21:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20_$2938_$returns$_t_uint256_$",
                                                                        "typeString": "function (contract IERC20) view returns (uint256)"
                                                                    }
                                                                },
                                                                "id": 10646,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "15366:56:19",
                                                                "tryCall": false,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "id": 10634,
                                                            "name": "_downscaleDown",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 10912,
                                                            "src": "15319:14:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                            }
                                                        },
                                                        "id": 10647,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "15319:104:19",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "VariableDeclarationStatement",
                                                    "src": "15295:128:19"
                                                },
                                                {
                                                    "expression": {
                                                        "arguments": [
                                                            {
                                                                "expression": {
                                                                    "baseExpression": {
                                                                        "id": 10656,
                                                                        "name": "settlements",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 9327,
                                                                        "src": "15484:11:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                            "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                        }
                                                                    },
                                                                    "id": 10658,
                                                                    "indexExpression": {
                                                                        "id": 10657,
                                                                        "name": "ref",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 10295,
                                                                        "src": "15496:3:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "15484:16:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                        "typeString": "struct ISettlor.settlement storage ref"
                                                                    }
                                                                },
                                                                "id": 10659,
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "transferor",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 12150,
                                                                "src": "15484:27:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            {
                                                                "expression": {
                                                                    "baseExpression": {
                                                                        "id": 10660,
                                                                        "name": "settlements",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 9327,
                                                                        "src": "15513:11:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                            "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                        }
                                                                    },
                                                                    "id": 10662,
                                                                    "indexExpression": {
                                                                        "id": 10661,
                                                                        "name": "ref",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 10295,
                                                                        "src": "15525:3:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "15513:16:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                        "typeString": "struct ISettlor.settlement storage ref"
                                                                    }
                                                                },
                                                                "id": 10663,
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "transferee",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 12152,
                                                                "src": "15513:27:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            {
                                                                "id": 10664,
                                                                "name": "consideration",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 10633,
                                                                "src": "15542:13:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "arguments": [
                                                                    {
                                                                        "expression": {
                                                                            "baseExpression": {
                                                                                "id": 10650,
                                                                                "name": "settlements",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 9327,
                                                                                "src": "15444:11:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                                    "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                                }
                                                                            },
                                                                            "id": 10652,
                                                                            "indexExpression": {
                                                                                "id": 10651,
                                                                                "name": "ref",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 10295,
                                                                                "src": "15456:3:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "15444:16:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                                "typeString": "struct ISettlor.settlement storage ref"
                                                                            }
                                                                        },
                                                                        "id": 10653,
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "currency",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 12156,
                                                                        "src": "15444:25:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "id": 10649,
                                                                    "name": "IERC20",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 2938,
                                                                    "src": "15437:6:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                        "typeString": "type(contract IERC20)"
                                                                    }
                                                                },
                                                                "id": 10654,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "typeConversion",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "15437:33:19",
                                                                "tryCall": false,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                    "typeString": "contract IERC20"
                                                                }
                                                            },
                                                            "id": 10655,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "transferFrom",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 2919,
                                                            "src": "15437:46:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                                "typeString": "function (address,address,uint256) external returns (bool)"
                                                            }
                                                        },
                                                        "id": 10665,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "15437:119:19",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "id": 10666,
                                                    "nodeType": "ExpressionStatement",
                                                    "src": "15437:119:19"
                                                },
                                                {
                                                    "expression": {
                                                        "arguments": [
                                                            {
                                                                "expression": {
                                                                    "baseExpression": {
                                                                        "id": 10674,
                                                                        "name": "settlements",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 9327,
                                                                        "src": "15617:11:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                            "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                        }
                                                                    },
                                                                    "id": 10676,
                                                                    "indexExpression": {
                                                                        "id": 10675,
                                                                        "name": "ref",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 10295,
                                                                        "src": "15629:3:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "15617:16:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                        "typeString": "struct ISettlor.settlement storage ref"
                                                                    }
                                                                },
                                                                "id": 10677,
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "transferee",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 12152,
                                                                "src": "15617:27:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            {
                                                                "expression": {
                                                                    "baseExpression": {
                                                                        "id": 10678,
                                                                        "name": "settlements",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 9327,
                                                                        "src": "15646:11:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                            "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                        }
                                                                    },
                                                                    "id": 10680,
                                                                    "indexExpression": {
                                                                        "id": 10679,
                                                                        "name": "ref",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 10295,
                                                                        "src": "15658:3:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "15646:16:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                        "typeString": "struct ISettlor.settlement storage ref"
                                                                    }
                                                                },
                                                                "id": 10681,
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "transferor",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 12150,
                                                                "src": "15646:27:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            },
                                                            {
                                                                "expression": {
                                                                    "baseExpression": {
                                                                        "id": 10682,
                                                                        "name": "settlements",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 9327,
                                                                        "src": "15675:11:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                            "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                        }
                                                                    },
                                                                    "id": 10684,
                                                                    "indexExpression": {
                                                                        "id": 10683,
                                                                        "name": "ref",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 10295,
                                                                        "src": "15687:3:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "IndexAccess",
                                                                    "src": "15675:16:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                        "typeString": "struct ISettlor.settlement storage ref"
                                                                    }
                                                                },
                                                                "id": 10685,
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "memberName": "unitsToTransfer",
                                                                "nodeType": "MemberAccess",
                                                                "referencedDeclaration": 12164,
                                                                "src": "15675:32:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "arguments": [
                                                                    {
                                                                        "expression": {
                                                                            "baseExpression": {
                                                                                "id": 10668,
                                                                                "name": "settlements",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 9327,
                                                                                "src": "15577:11:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                                    "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                                }
                                                                            },
                                                                            "id": 10670,
                                                                            "indexExpression": {
                                                                                "id": 10669,
                                                                                "name": "ref",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 10295,
                                                                                "src": "15589:3:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "15577:16:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                                "typeString": "struct ISettlor.settlement storage ref"
                                                                            }
                                                                        },
                                                                        "id": 10671,
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "security",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 12154,
                                                                        "src": "15577:25:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "id": 10667,
                                                                    "name": "IERC20",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 2938,
                                                                    "src": "15570:6:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                        "typeString": "type(contract IERC20)"
                                                                    }
                                                                },
                                                                "id": 10672,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "typeConversion",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "15570:33:19",
                                                                "tryCall": false,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                    "typeString": "contract IERC20"
                                                                }
                                                            },
                                                            "id": 10673,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "transferFrom",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 2919,
                                                            "src": "15570:46:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                                "typeString": "function (address,address,uint256) external returns (bool)"
                                                            }
                                                        },
                                                        "id": 10686,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "15570:138:19",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "id": 10687,
                                                    "nodeType": "ExpressionStatement",
                                                    "src": "15570:138:19"
                                                },
                                                {
                                                    "expression": {
                                                        "id": 10693,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftHandSide": {
                                                            "expression": {
                                                                "baseExpression": {
                                                                    "id": 10688,
                                                                    "name": "settlements",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 9327,
                                                                    "src": "15722:11:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                        "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                    }
                                                                },
                                                                "id": 10690,
                                                                "indexExpression": {
                                                                    "id": 10689,
                                                                    "name": "ref",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 10295,
                                                                    "src": "15734:3:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "15722:16:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                    "typeString": "struct ISettlor.settlement storage ref"
                                                                }
                                                            },
                                                            "id": 10691,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "memberName": "status",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 12158,
                                                            "src": "15722:23:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            }
                                                        },
                                                        "nodeType": "Assignment",
                                                        "operator": "=",
                                                        "rightHandSide": {
                                                            "hexValue": "52656a656374",
                                                            "id": 10692,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "string",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "15748:8:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_stringliteral_154f4d6ea359bef5375e6dee13add0afd4742cf55fe4ac2da8884e1d4e96dba2",
                                                                "typeString": "literal_string \"Reject\""
                                                            },
                                                            "value": "Reject"
                                                        },
                                                        "src": "15722:34:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "id": 10694,
                                                    "nodeType": "ExpressionStatement",
                                                    "src": "15722:34:19"
                                                },
                                                {
                                                    "expression": {
                                                        "commonType": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        },
                                                        "id": 10697,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "leftExpression": {
                                                            "id": 10695,
                                                            "name": "settled",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 10308,
                                                            "src": "15770:7:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            }
                                                        },
                                                        "nodeType": "BinaryOperation",
                                                        "operator": "==",
                                                        "rightExpression": {
                                                            "hexValue": "74727565",
                                                            "id": 10696,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "bool",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "15781:4:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "value": "true"
                                                        },
                                                        "src": "15770:15:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bool",
                                                            "typeString": "bool"
                                                        }
                                                    },
                                                    "id": 10698,
                                                    "nodeType": "ExpressionStatement",
                                                    "src": "15770:15:19"
                                                }
                                            ]
                                        }
                                    },
                                    "id": 10701,
                                    "nodeType": "IfStatement",
                                    "src": "13393:2403:19",
                                    "trueBody": {
                                        "id": 10621,
                                        "nodeType": "Block",
                                        "src": "13487:1723:19",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "id": 10413,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "baseExpression": {
                                                            "id": 10397,
                                                            "name": "fees",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9357,
                                                            "src": "13513:4:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                                "typeString": "mapping(address => uint256)"
                                                            }
                                                        },
                                                        "id": 10402,
                                                        "indexExpression": {
                                                            "expression": {
                                                                "baseExpression": {
                                                                    "id": 10398,
                                                                    "name": "settlements",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 9327,
                                                                    "src": "13518:11:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                        "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                    }
                                                                },
                                                                "id": 10400,
                                                                "indexExpression": {
                                                                    "id": 10399,
                                                                    "name": "ref",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 10295,
                                                                    "src": "13530:3:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "13518:16:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                    "typeString": "struct ISettlor.settlement storage ref"
                                                                }
                                                            },
                                                            "id": 10401,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "currency",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 12156,
                                                            "src": "13518:25:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "nodeType": "IndexAccess",
                                                        "src": "13513:31:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "arguments": [
                                                            {
                                                                "baseExpression": {
                                                                    "id": 10405,
                                                                    "name": "fees",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 9357,
                                                                    "src": "13556:4:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                                        "typeString": "mapping(address => uint256)"
                                                                    }
                                                                },
                                                                "id": 10410,
                                                                "indexExpression": {
                                                                    "expression": {
                                                                        "baseExpression": {
                                                                            "id": 10406,
                                                                            "name": "settlements",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 9327,
                                                                            "src": "13561:11:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                                "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                            }
                                                                        },
                                                                        "id": 10408,
                                                                        "indexExpression": {
                                                                            "id": 10407,
                                                                            "name": "ref",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 10295,
                                                                            "src": "13573:3:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "13561:16:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                            "typeString": "struct ISettlor.settlement storage ref"
                                                                        }
                                                                    },
                                                                    "id": 10409,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "currency",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 12156,
                                                                    "src": "13561:25:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "13556:31:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            {
                                                                "id": 10411,
                                                                "name": "pay",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 10366,
                                                                "src": "13589:3:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "id": 10403,
                                                                "name": "Math",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 2367,
                                                                "src": "13547:4:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_Math_$2367_$",
                                                                    "typeString": "type(library Math)"
                                                                }
                                                            },
                                                            "id": 10404,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "add",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 2109,
                                                            "src": "13547:8:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                            }
                                                        },
                                                        "id": 10412,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "13547:46:19",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                        }
                                                    },
                                                    "src": "13513:80:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "id": 10414,
                                                "nodeType": "ExpressionStatement",
                                                "src": "13513:80:19"
                                            },
                                            {
                                                "condition": {
                                                    "arguments": [
                                                        {
                                                            "expression": {
                                                                "baseExpression": {
                                                                    "id": 10422,
                                                                    "name": "settlements",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 9327,
                                                                    "src": "13657:11:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                        "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                    }
                                                                },
                                                                "id": 10424,
                                                                "indexExpression": {
                                                                    "id": 10423,
                                                                    "name": "ref",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 10295,
                                                                    "src": "13669:3:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    }
                                                                },
                                                                "isConstant": false,
                                                                "isLValue": true,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "nodeType": "IndexAccess",
                                                                "src": "13657:16:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                    "typeString": "struct ISettlor.settlement storage ref"
                                                                }
                                                            },
                                                            "id": 10425,
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberName": "transferor",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 12150,
                                                            "src": "13657:27:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "arguments": [
                                                                {
                                                                    "id": 10428,
                                                                    "name": "this",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": -28,
                                                                    "src": "13694:4:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_contract$_SecondaryIssueManager_$10930",
                                                                        "typeString": "contract SecondaryIssueManager"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_contract$_SecondaryIssueManager_$10930",
                                                                        "typeString": "contract SecondaryIssueManager"
                                                                    }
                                                                ],
                                                                "id": 10427,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": true,
                                                                "lValueRequested": false,
                                                                "nodeType": "ElementaryTypeNameExpression",
                                                                "src": "13686:7:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_address_$",
                                                                    "typeString": "type(address)"
                                                                },
                                                                "typeName": {
                                                                    "id": 10426,
                                                                    "name": "address",
                                                                    "nodeType": "ElementaryTypeName",
                                                                    "src": "13686:7:19",
                                                                    "typeDescriptions": {}
                                                                }
                                                            },
                                                            "id": 10429,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "13686:13:19",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            }
                                                        },
                                                        {
                                                            "id": 10430,
                                                            "name": "pay",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 10366,
                                                            "src": "13701:3:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        ],
                                                        "expression": {
                                                            "arguments": [
                                                                {
                                                                    "expression": {
                                                                        "baseExpression": {
                                                                            "id": 10416,
                                                                            "name": "settlements",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 9327,
                                                                            "src": "13617:11:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                                "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                            }
                                                                        },
                                                                        "id": 10418,
                                                                        "indexExpression": {
                                                                            "id": 10417,
                                                                            "name": "ref",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 10295,
                                                                            "src": "13629:3:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "13617:16:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                            "typeString": "struct ISettlor.settlement storage ref"
                                                                        }
                                                                    },
                                                                    "id": 10419,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "currency",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 12156,
                                                                    "src": "13617:25:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                }
                                                            ],
                                                            "expression": {
                                                                "argumentTypes": [
                                                                    {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    }
                                                                ],
                                                                "id": 10415,
                                                                "name": "IERC20",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 2938,
                                                                "src": "13610:6:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                    "typeString": "type(contract IERC20)"
                                                                }
                                                            },
                                                            "id": 10420,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "kind": "typeConversion",
                                                            "lValueRequested": false,
                                                            "names": [],
                                                            "nodeType": "FunctionCall",
                                                            "src": "13610:33:19",
                                                            "tryCall": false,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                "typeString": "contract IERC20"
                                                            }
                                                        },
                                                        "id": 10421,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "lValueRequested": false,
                                                        "memberName": "transferFrom",
                                                        "nodeType": "MemberAccess",
                                                        "referencedDeclaration": 2919,
                                                        "src": "13610:46:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                            "typeString": "function (address,address,uint256) external returns (bool)"
                                                        }
                                                    },
                                                    "id": 10431,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "functionCall",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "13610:95:19",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    }
                                                },
                                                "falseBody": {
                                                    "id": 10619,
                                                    "nodeType": "Block",
                                                    "src": "14394:806:19",
                                                    "statements": [
                                                        {
                                                            "assignments": [
                                                                10518
                                                            ],
                                                            "declarations": [
                                                                {
                                                                    "constant": false,
                                                                    "id": 10518,
                                                                    "mutability": "mutable",
                                                                    "name": "consideration",
                                                                    "nodeType": "VariableDeclaration",
                                                                    "scope": 10619,
                                                                    "src": "14412:21:19",
                                                                    "stateVariable": false,
                                                                    "storageLocation": "default",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    "typeName": {
                                                                        "id": 10517,
                                                                        "name": "uint256",
                                                                        "nodeType": "ElementaryTypeName",
                                                                        "src": "14412:7:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "visibility": "internal"
                                                                }
                                                            ],
                                                            "id": 10533,
                                                            "initialValue": {
                                                                "arguments": [
                                                                    {
                                                                        "expression": {
                                                                            "baseExpression": {
                                                                                "id": 10520,
                                                                                "name": "settlements",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 9327,
                                                                                "src": "14451:11:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                                    "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                                }
                                                                            },
                                                                            "id": 10522,
                                                                            "indexExpression": {
                                                                                "id": 10521,
                                                                                "name": "ref",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 10295,
                                                                                "src": "14463:3:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "14451:16:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                                "typeString": "struct ISettlor.settlement storage ref"
                                                                            }
                                                                        },
                                                                        "id": 10523,
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "consideration",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 12166,
                                                                        "src": "14451:30:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    {
                                                                        "arguments": [
                                                                            {
                                                                                "arguments": [
                                                                                    {
                                                                                        "expression": {
                                                                                            "baseExpression": {
                                                                                                "id": 10526,
                                                                                                "name": "settlements",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 9327,
                                                                                                "src": "14512:11:19",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                                                    "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                                                }
                                                                                            },
                                                                                            "id": 10528,
                                                                                            "indexExpression": {
                                                                                                "id": 10527,
                                                                                                "name": "ref",
                                                                                                "nodeType": "Identifier",
                                                                                                "overloadedDeclarations": [],
                                                                                                "referencedDeclaration": 10295,
                                                                                                "src": "14524:3:19",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                    "typeString": "bytes32"
                                                                                                }
                                                                                            },
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "IndexAccess",
                                                                                            "src": "14512:16:19",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                                                "typeString": "struct ISettlor.settlement storage ref"
                                                                                            }
                                                                                        },
                                                                                        "id": 10529,
                                                                                        "isConstant": false,
                                                                                        "isLValue": true,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "memberName": "currency",
                                                                                        "nodeType": "MemberAccess",
                                                                                        "referencedDeclaration": 12156,
                                                                                        "src": "14512:25:19",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    }
                                                                                ],
                                                                                "expression": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "id": 10525,
                                                                                    "name": "IERC20",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 2938,
                                                                                    "src": "14505:6:19",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                                        "typeString": "type(contract IERC20)"
                                                                                    }
                                                                                },
                                                                                "id": 10530,
                                                                                "isConstant": false,
                                                                                "isLValue": false,
                                                                                "isPure": false,
                                                                                "kind": "typeConversion",
                                                                                "lValueRequested": false,
                                                                                "names": [],
                                                                                "nodeType": "FunctionCall",
                                                                                "src": "14505:33:19",
                                                                                "tryCall": false,
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                                    "typeString": "contract IERC20"
                                                                                }
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                                    "typeString": "contract IERC20"
                                                                                }
                                                                            ],
                                                                            "id": 10524,
                                                                            "name": "_computeScalingFactor",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 10895,
                                                                            "src": "14483:21:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_function_internal_view$_t_contract$_IERC20_$2938_$returns$_t_uint256_$",
                                                                                "typeString": "function (contract IERC20) view returns (uint256)"
                                                                            }
                                                                        },
                                                                        "id": 10531,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "functionCall",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "14483:56:19",
                                                                        "tryCall": false,
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "id": 10519,
                                                                    "name": "_downscaleDown",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 10912,
                                                                    "src": "14436:14:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                                    }
                                                                },
                                                                "id": 10532,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "14436:104:19",
                                                                "tryCall": false,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            },
                                                            "nodeType": "VariableDeclarationStatement",
                                                            "src": "14412:128:19"
                                                        },
                                                        {
                                                            "expression": {
                                                                "arguments": [
                                                                    {
                                                                        "expression": {
                                                                            "baseExpression": {
                                                                                "id": 10539,
                                                                                "name": "settlements",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 9327,
                                                                                "src": "14597:11:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                                    "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                                }
                                                                            },
                                                                            "id": 10541,
                                                                            "indexExpression": {
                                                                                "id": 10540,
                                                                                "name": "ref",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 10295,
                                                                                "src": "14609:3:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "14597:16:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                                "typeString": "struct ISettlor.settlement storage ref"
                                                                            }
                                                                        },
                                                                        "id": 10542,
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "partyRef",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 12170,
                                                                        "src": "14597:25:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    },
                                                                    {
                                                                        "expression": {
                                                                            "baseExpression": {
                                                                                "id": 10543,
                                                                                "name": "settlements",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 9327,
                                                                                "src": "14624:11:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                                    "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                                }
                                                                            },
                                                                            "id": 10545,
                                                                            "indexExpression": {
                                                                                "id": 10544,
                                                                                "name": "ref",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 10295,
                                                                                "src": "14636:3:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "14624:16:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                                "typeString": "struct ISettlor.settlement storage ref"
                                                                            }
                                                                        },
                                                                        "id": 10546,
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "unitsToTransfer",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 12164,
                                                                        "src": "14624:32:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    {
                                                                        "expression": {
                                                                            "baseExpression": {
                                                                                "id": 10547,
                                                                                "name": "settlements",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 9327,
                                                                                "src": "14658:11:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                                    "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                                }
                                                                            },
                                                                            "id": 10549,
                                                                            "indexExpression": {
                                                                                "id": 10548,
                                                                                "name": "ref",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 10295,
                                                                                "src": "14670:3:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "14658:16:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                                "typeString": "struct ISettlor.settlement storage ref"
                                                                            }
                                                                        },
                                                                        "id": 10550,
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "price",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 12162,
                                                                        "src": "14658:22:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "expression": {
                                                                            "baseExpression": {
                                                                                "id": 10534,
                                                                                "name": "settlements",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 9327,
                                                                                "src": "14558:11:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                                    "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                                }
                                                                            },
                                                                            "id": 10536,
                                                                            "indexExpression": {
                                                                                "id": 10535,
                                                                                "name": "ref",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 10295,
                                                                                "src": "14570:3:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "14558:16:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                                "typeString": "struct ISettlor.settlement storage ref"
                                                                            }
                                                                        },
                                                                        "id": 10537,
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "orderPool",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 12148,
                                                                        "src": "14558:26:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_contract$_IOrder_$11977",
                                                                            "typeString": "contract IOrder"
                                                                        }
                                                                    },
                                                                    "id": 10538,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "revertTrade",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 11976,
                                                                    "src": "14558:38:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$",
                                                                        "typeString": "function (bytes32,uint256,uint256) external"
                                                                    }
                                                                },
                                                                "id": 10551,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "14558:123:19",
                                                                "tryCall": false,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_tuple$__$",
                                                                    "typeString": "tuple()"
                                                                }
                                                            },
                                                            "id": 10552,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "14558:123:19"
                                                        },
                                                        {
                                                            "expression": {
                                                                "arguments": [
                                                                    {
                                                                        "expression": {
                                                                            "baseExpression": {
                                                                                "id": 10558,
                                                                                "name": "settlements",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 9327,
                                                                                "src": "14738:11:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                                    "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                                }
                                                                            },
                                                                            "id": 10560,
                                                                            "indexExpression": {
                                                                                "id": 10559,
                                                                                "name": "ref",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 10295,
                                                                                "src": "14750:3:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "14738:16:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                                "typeString": "struct ISettlor.settlement storage ref"
                                                                            }
                                                                        },
                                                                        "id": 10561,
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "counterpartyRef",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 12172,
                                                                        "src": "14738:32:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    },
                                                                    {
                                                                        "id": 10562,
                                                                        "name": "consideration",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 10518,
                                                                        "src": "14772:13:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    {
                                                                        "expression": {
                                                                            "baseExpression": {
                                                                                "id": 10563,
                                                                                "name": "settlements",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 9327,
                                                                                "src": "14787:11:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                                    "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                                }
                                                                            },
                                                                            "id": 10565,
                                                                            "indexExpression": {
                                                                                "id": 10564,
                                                                                "name": "ref",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 10295,
                                                                                "src": "14799:3:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "14787:16:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                                "typeString": "struct ISettlor.settlement storage ref"
                                                                            }
                                                                        },
                                                                        "id": 10566,
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "price",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 12162,
                                                                        "src": "14787:22:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "expression": {
                                                                            "baseExpression": {
                                                                                "id": 10553,
                                                                                "name": "settlements",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 9327,
                                                                                "src": "14699:11:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                                    "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                                }
                                                                            },
                                                                            "id": 10555,
                                                                            "indexExpression": {
                                                                                "id": 10554,
                                                                                "name": "ref",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 10295,
                                                                                "src": "14711:3:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "14699:16:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                                "typeString": "struct ISettlor.settlement storage ref"
                                                                            }
                                                                        },
                                                                        "id": 10556,
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "orderPool",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 12148,
                                                                        "src": "14699:26:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_contract$_IOrder_$11977",
                                                                            "typeString": "contract IOrder"
                                                                        }
                                                                    },
                                                                    "id": 10557,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "revertTrade",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 11976,
                                                                    "src": "14699:38:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$",
                                                                        "typeString": "function (bytes32,uint256,uint256) external"
                                                                    }
                                                                },
                                                                "id": 10567,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "14699:111:19",
                                                                "tryCall": false,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_tuple$__$",
                                                                    "typeString": "tuple()"
                                                                }
                                                            },
                                                            "id": 10568,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "14699:111:19"
                                                        },
                                                        {
                                                            "expression": {
                                                                "arguments": [
                                                                    {
                                                                        "expression": {
                                                                            "baseExpression": {
                                                                                "id": 10576,
                                                                                "name": "settlements",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 9327,
                                                                                "src": "14875:11:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                                    "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                                }
                                                                            },
                                                                            "id": 10578,
                                                                            "indexExpression": {
                                                                                "id": 10577,
                                                                                "name": "ref",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 10295,
                                                                                "src": "14887:3:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "14875:16:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                                "typeString": "struct ISettlor.settlement storage ref"
                                                                            }
                                                                        },
                                                                        "id": 10579,
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "transferor",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 12150,
                                                                        "src": "14875:27:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    {
                                                                        "expression": {
                                                                            "baseExpression": {
                                                                                "id": 10580,
                                                                                "name": "settlements",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 9327,
                                                                                "src": "14904:11:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                                    "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                                }
                                                                            },
                                                                            "id": 10582,
                                                                            "indexExpression": {
                                                                                "id": 10581,
                                                                                "name": "ref",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 10295,
                                                                                "src": "14916:3:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "14904:16:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                                "typeString": "struct ISettlor.settlement storage ref"
                                                                            }
                                                                        },
                                                                        "id": 10583,
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "transferee",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 12152,
                                                                        "src": "14904:27:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    {
                                                                        "id": 10584,
                                                                        "name": "consideration",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 10518,
                                                                        "src": "14933:13:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "arguments": [
                                                                            {
                                                                                "expression": {
                                                                                    "baseExpression": {
                                                                                        "id": 10570,
                                                                                        "name": "settlements",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 9327,
                                                                                        "src": "14835:11:19",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                                            "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                                        }
                                                                                    },
                                                                                    "id": 10572,
                                                                                    "indexExpression": {
                                                                                        "id": 10571,
                                                                                        "name": "ref",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 10295,
                                                                                        "src": "14847:3:19",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_bytes32",
                                                                                            "typeString": "bytes32"
                                                                                        }
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "IndexAccess",
                                                                                    "src": "14835:16:19",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                                        "typeString": "struct ISettlor.settlement storage ref"
                                                                                    }
                                                                                },
                                                                                "id": 10573,
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "memberName": "currency",
                                                                                "nodeType": "MemberAccess",
                                                                                "referencedDeclaration": 12156,
                                                                                "src": "14835:25:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "id": 10569,
                                                                            "name": "IERC20",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 2938,
                                                                            "src": "14828:6:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                                "typeString": "type(contract IERC20)"
                                                                            }
                                                                        },
                                                                        "id": 10574,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "typeConversion",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "14828:33:19",
                                                                        "tryCall": false,
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                            "typeString": "contract IERC20"
                                                                        }
                                                                    },
                                                                    "id": 10575,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "transferFrom",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 2919,
                                                                    "src": "14828:46:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                                        "typeString": "function (address,address,uint256) external returns (bool)"
                                                                    }
                                                                },
                                                                "id": 10585,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "14828:119:19",
                                                                "tryCall": false,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            },
                                                            "id": 10586,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "14828:119:19"
                                                        },
                                                        {
                                                            "expression": {
                                                                "arguments": [
                                                                    {
                                                                        "expression": {
                                                                            "baseExpression": {
                                                                                "id": 10594,
                                                                                "name": "settlements",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 9327,
                                                                                "src": "15012:11:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                                    "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                                }
                                                                            },
                                                                            "id": 10596,
                                                                            "indexExpression": {
                                                                                "id": 10595,
                                                                                "name": "ref",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 10295,
                                                                                "src": "15024:3:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "15012:16:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                                "typeString": "struct ISettlor.settlement storage ref"
                                                                            }
                                                                        },
                                                                        "id": 10597,
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "transferee",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 12152,
                                                                        "src": "15012:27:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    {
                                                                        "expression": {
                                                                            "baseExpression": {
                                                                                "id": 10598,
                                                                                "name": "settlements",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 9327,
                                                                                "src": "15041:11:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                                    "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                                }
                                                                            },
                                                                            "id": 10600,
                                                                            "indexExpression": {
                                                                                "id": 10599,
                                                                                "name": "ref",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 10295,
                                                                                "src": "15053:3:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "15041:16:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                                "typeString": "struct ISettlor.settlement storage ref"
                                                                            }
                                                                        },
                                                                        "id": 10601,
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "transferor",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 12150,
                                                                        "src": "15041:27:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    },
                                                                    {
                                                                        "expression": {
                                                                            "baseExpression": {
                                                                                "id": 10602,
                                                                                "name": "settlements",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 9327,
                                                                                "src": "15070:11:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                                    "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                                }
                                                                            },
                                                                            "id": 10604,
                                                                            "indexExpression": {
                                                                                "id": 10603,
                                                                                "name": "ref",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 10295,
                                                                                "src": "15082:3:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "15070:16:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                                "typeString": "struct ISettlor.settlement storage ref"
                                                                            }
                                                                        },
                                                                        "id": 10605,
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "unitsToTransfer",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 12164,
                                                                        "src": "15070:32:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "arguments": [
                                                                            {
                                                                                "expression": {
                                                                                    "baseExpression": {
                                                                                        "id": 10588,
                                                                                        "name": "settlements",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 9327,
                                                                                        "src": "14972:11:19",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                                            "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                                        }
                                                                                    },
                                                                                    "id": 10590,
                                                                                    "indexExpression": {
                                                                                        "id": 10589,
                                                                                        "name": "ref",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 10295,
                                                                                        "src": "14984:3:19",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_bytes32",
                                                                                            "typeString": "bytes32"
                                                                                        }
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "IndexAccess",
                                                                                    "src": "14972:16:19",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                                        "typeString": "struct ISettlor.settlement storage ref"
                                                                                    }
                                                                                },
                                                                                "id": 10591,
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "memberName": "security",
                                                                                "nodeType": "MemberAccess",
                                                                                "referencedDeclaration": 12154,
                                                                                "src": "14972:25:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            }
                                                                        ],
                                                                        "expression": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "id": 10587,
                                                                            "name": "IERC20",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 2938,
                                                                            "src": "14965:6:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                                                "typeString": "type(contract IERC20)"
                                                                            }
                                                                        },
                                                                        "id": 10592,
                                                                        "isConstant": false,
                                                                        "isLValue": false,
                                                                        "isPure": false,
                                                                        "kind": "typeConversion",
                                                                        "lValueRequested": false,
                                                                        "names": [],
                                                                        "nodeType": "FunctionCall",
                                                                        "src": "14965:33:19",
                                                                        "tryCall": false,
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                            "typeString": "contract IERC20"
                                                                        }
                                                                    },
                                                                    "id": 10593,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "transferFrom",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 2919,
                                                                    "src": "14965:46:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                                        "typeString": "function (address,address,uint256) external returns (bool)"
                                                                    }
                                                                },
                                                                "id": 10606,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "14965:138:19",
                                                                "tryCall": false,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            },
                                                            "id": 10607,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "14965:138:19"
                                                        },
                                                        {
                                                            "expression": {
                                                                "id": 10613,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftHandSide": {
                                                                    "expression": {
                                                                        "baseExpression": {
                                                                            "id": 10608,
                                                                            "name": "settlements",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 9327,
                                                                            "src": "15121:11:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                                "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                            }
                                                                        },
                                                                        "id": 10610,
                                                                        "indexExpression": {
                                                                            "id": 10609,
                                                                            "name": "ref",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 10295,
                                                                            "src": "15133:3:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "15121:16:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                            "typeString": "struct ISettlor.settlement storage ref"
                                                                        }
                                                                    },
                                                                    "id": 10611,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": true,
                                                                    "memberName": "status",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 12158,
                                                                    "src": "15121:23:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    }
                                                                },
                                                                "nodeType": "Assignment",
                                                                "operator": "=",
                                                                "rightHandSide": {
                                                                    "hexValue": "4661696c",
                                                                    "id": 10612,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "kind": "string",
                                                                    "lValueRequested": false,
                                                                    "nodeType": "Literal",
                                                                    "src": "15147:6:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_stringliteral_8c4c959e7612dceb7ce1555595a8fe4f61d1ee76c1d1266f9d182a315973cf2e",
                                                                        "typeString": "literal_string \"Fail\""
                                                                    },
                                                                    "value": "Fail"
                                                                },
                                                                "src": "15121:32:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            "id": 10614,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "15121:32:19"
                                                        },
                                                        {
                                                            "expression": {
                                                                "id": 10617,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftHandSide": {
                                                                    "id": 10615,
                                                                    "name": "settled",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 10308,
                                                                    "src": "15171:7:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    }
                                                                },
                                                                "nodeType": "Assignment",
                                                                "operator": "=",
                                                                "rightHandSide": {
                                                                    "hexValue": "74727565",
                                                                    "id": 10616,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "kind": "bool",
                                                                    "lValueRequested": false,
                                                                    "nodeType": "Literal",
                                                                    "src": "15181:4:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    },
                                                                    "value": "true"
                                                                },
                                                                "src": "15171:14:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            },
                                                            "id": 10618,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "15171:14:19"
                                                        }
                                                    ]
                                                },
                                                "id": 10620,
                                                "nodeType": "IfStatement",
                                                "src": "13607:1593:19",
                                                "trueBody": {
                                                    "id": 10516,
                                                    "nodeType": "Block",
                                                    "src": "13706:671:19",
                                                    "statements": [
                                                        {
                                                            "expression": {
                                                                "arguments": [
                                                                    {
                                                                        "expression": {
                                                                            "baseExpression": {
                                                                                "id": 10437,
                                                                                "name": "settlements",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 9327,
                                                                                "src": "13825:11:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                                    "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                                }
                                                                            },
                                                                            "id": 10439,
                                                                            "indexExpression": {
                                                                                "id": 10438,
                                                                                "name": "ref",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 10295,
                                                                                "src": "13837:3:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "13825:16:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                                "typeString": "struct ISettlor.settlement storage ref"
                                                                            }
                                                                        },
                                                                        "id": 10440,
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "partyRef",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 12170,
                                                                        "src": "13825:25:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    },
                                                                    {
                                                                        "expression": {
                                                                            "baseExpression": {
                                                                                "id": 10441,
                                                                                "name": "settlements",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 9327,
                                                                                "src": "13852:11:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                                    "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                                }
                                                                            },
                                                                            "id": 10443,
                                                                            "indexExpression": {
                                                                                "id": 10442,
                                                                                "name": "ref",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 10295,
                                                                                "src": "13864:3:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "13852:16:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                                "typeString": "struct ISettlor.settlement storage ref"
                                                                            }
                                                                        },
                                                                        "id": 10444,
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "counterpartyRef",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 12172,
                                                                        "src": "13852:32:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    },
                                                                    {
                                                                        "expression": {
                                                                            "baseExpression": {
                                                                                "id": 10445,
                                                                                "name": "settlements",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 9327,
                                                                                "src": "13886:11:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                                    "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                                }
                                                                            },
                                                                            "id": 10447,
                                                                            "indexExpression": {
                                                                                "id": 10446,
                                                                                "name": "ref",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 10295,
                                                                                "src": "13898:3:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "13886:16:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                                "typeString": "struct ISettlor.settlement storage ref"
                                                                            }
                                                                        },
                                                                        "id": 10448,
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "executionDate",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 12168,
                                                                        "src": "13886:30:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "expression": {
                                                                        "expression": {
                                                                            "baseExpression": {
                                                                                "id": 10432,
                                                                                "name": "settlements",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 9327,
                                                                                "src": "13786:11:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                                    "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                                }
                                                                            },
                                                                            "id": 10434,
                                                                            "indexExpression": {
                                                                                "id": 10433,
                                                                                "name": "ref",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 10295,
                                                                                "src": "13798:3:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "nodeType": "IndexAccess",
                                                                            "src": "13786:16:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                                "typeString": "struct ISettlor.settlement storage ref"
                                                                            }
                                                                        },
                                                                        "id": 10435,
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "memberName": "orderPool",
                                                                        "nodeType": "MemberAccess",
                                                                        "referencedDeclaration": 12148,
                                                                        "src": "13786:26:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_contract$_IOrder_$11977",
                                                                            "typeString": "contract IOrder"
                                                                        }
                                                                    },
                                                                    "id": 10436,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "orderFilled",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 11967,
                                                                    "src": "13786:38:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_uint256_$returns$__$",
                                                                        "typeString": "function (bytes32,bytes32,uint256) external"
                                                                    }
                                                                },
                                                                "id": 10449,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "functionCall",
                                                                "lValueRequested": false,
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "13786:131:19",
                                                                "tryCall": false,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_tuple$__$",
                                                                    "typeString": "tuple()"
                                                                }
                                                            },
                                                            "id": 10450,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "13786:131:19"
                                                        },
                                                        {
                                                            "body": {
                                                                "id": 10503,
                                                                "nodeType": "Block",
                                                                "src": "13976:286:19",
                                                                "statements": [
                                                                    {
                                                                        "condition": {
                                                                            "commonType": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            },
                                                                            "id": 10470,
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "leftExpression": {
                                                                                "baseExpression": {
                                                                                    "baseExpression": {
                                                                                        "id": 10464,
                                                                                        "name": "trades",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 9332,
                                                                                        "src": "14001:6:19",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_bytes32_$dyn_storage_$",
                                                                                            "typeString": "mapping(bytes32 => bytes32[] storage ref)"
                                                                                        }
                                                                                    },
                                                                                    "id": 10466,
                                                                                    "indexExpression": {
                                                                                        "id": 10465,
                                                                                        "name": "DPID",
                                                                                        "nodeType": "Identifier",
                                                                                        "overloadedDeclarations": [],
                                                                                        "referencedDeclaration": 10301,
                                                                                        "src": "14008:4:19",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_bytes32",
                                                                                            "typeString": "bytes32"
                                                                                        }
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "nodeType": "IndexAccess",
                                                                                    "src": "14001:12:19",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                        "typeString": "bytes32[] storage ref"
                                                                                    }
                                                                                },
                                                                                "id": 10468,
                                                                                "indexExpression": {
                                                                                    "id": 10467,
                                                                                    "name": "i",
                                                                                    "nodeType": "Identifier",
                                                                                    "overloadedDeclarations": [],
                                                                                    "referencedDeclaration": 10452,
                                                                                    "src": "14014:1:19",
                                                                                    "typeDescriptions": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    }
                                                                                },
                                                                                "isConstant": false,
                                                                                "isLValue": true,
                                                                                "isPure": false,
                                                                                "lValueRequested": false,
                                                                                "nodeType": "IndexAccess",
                                                                                "src": "14001:15:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            "nodeType": "BinaryOperation",
                                                                            "operator": "==",
                                                                            "rightExpression": {
                                                                                "id": 10469,
                                                                                "name": "ref",
                                                                                "nodeType": "Identifier",
                                                                                "overloadedDeclarations": [],
                                                                                "referencedDeclaration": 10295,
                                                                                "src": "14018:3:19",
                                                                                "typeDescriptions": {
                                                                                    "typeIdentifier": "t_bytes32",
                                                                                    "typeString": "bytes32"
                                                                                }
                                                                            },
                                                                            "src": "14001:20:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bool",
                                                                                "typeString": "bool"
                                                                            }
                                                                        },
                                                                        "id": 10502,
                                                                        "nodeType": "IfStatement",
                                                                        "src": "13998:246:19",
                                                                        "trueBody": {
                                                                            "id": 10501,
                                                                            "nodeType": "Block",
                                                                            "src": "14022:222:19",
                                                                            "statements": [
                                                                                {
                                                                                    "condition": {
                                                                                        "commonType": {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        "id": 10478,
                                                                                        "isConstant": false,
                                                                                        "isLValue": false,
                                                                                        "isPure": false,
                                                                                        "lValueRequested": false,
                                                                                        "leftExpression": {
                                                                                            "id": 10471,
                                                                                            "name": "i",
                                                                                            "nodeType": "Identifier",
                                                                                            "overloadedDeclarations": [],
                                                                                            "referencedDeclaration": 10452,
                                                                                            "src": "14051:1:19",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        },
                                                                                        "nodeType": "BinaryOperation",
                                                                                        "operator": "==",
                                                                                        "rightExpression": {
                                                                                            "commonType": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            },
                                                                                            "id": 10477,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "leftExpression": {
                                                                                                "expression": {
                                                                                                    "baseExpression": {
                                                                                                        "id": 10472,
                                                                                                        "name": "trades",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 9332,
                                                                                                        "src": "14054:6:19",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_bytes32_$dyn_storage_$",
                                                                                                            "typeString": "mapping(bytes32 => bytes32[] storage ref)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 10474,
                                                                                                    "indexExpression": {
                                                                                                        "id": 10473,
                                                                                                        "name": "DPID",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 10301,
                                                                                                        "src": "14061:4:19",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                            "typeString": "bytes32"
                                                                                                        }
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "IndexAccess",
                                                                                                    "src": "14054:12:19",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                        "typeString": "bytes32[] storage ref"
                                                                                                    }
                                                                                                },
                                                                                                "id": 10475,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "memberName": "length",
                                                                                                "nodeType": "MemberAccess",
                                                                                                "src": "14054:19:19",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            },
                                                                                            "nodeType": "BinaryOperation",
                                                                                            "operator": "-",
                                                                                            "rightExpression": {
                                                                                                "hexValue": "31",
                                                                                                "id": 10476,
                                                                                                "isConstant": false,
                                                                                                "isLValue": false,
                                                                                                "isPure": true,
                                                                                                "kind": "number",
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "Literal",
                                                                                                "src": "14074:1:19",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_rational_1_by_1",
                                                                                                    "typeString": "int_const 1"
                                                                                                },
                                                                                                "value": "1"
                                                                                            },
                                                                                            "src": "14054:21:19",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_uint256",
                                                                                                "typeString": "uint256"
                                                                                            }
                                                                                        },
                                                                                        "src": "14051:24:19",
                                                                                        "typeDescriptions": {
                                                                                            "typeIdentifier": "t_bool",
                                                                                            "typeString": "bool"
                                                                                        }
                                                                                    },
                                                                                    "falseBody": {
                                                                                        "expression": {
                                                                                            "id": 10498,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "leftHandSide": {
                                                                                                "baseExpression": {
                                                                                                    "baseExpression": {
                                                                                                        "id": 10486,
                                                                                                        "name": "trades",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 9332,
                                                                                                        "src": "14186:6:19",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_bytes32_$dyn_storage_$",
                                                                                                            "typeString": "mapping(bytes32 => bytes32[] storage ref)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 10489,
                                                                                                    "indexExpression": {
                                                                                                        "id": 10487,
                                                                                                        "name": "DPID",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 10301,
                                                                                                        "src": "14193:4:19",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                            "typeString": "bytes32"
                                                                                                        }
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "IndexAccess",
                                                                                                    "src": "14186:12:19",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                        "typeString": "bytes32[] storage ref"
                                                                                                    }
                                                                                                },
                                                                                                "id": 10490,
                                                                                                "indexExpression": {
                                                                                                    "id": 10488,
                                                                                                    "name": "i",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 10452,
                                                                                                    "src": "14199:1:19",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                },
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": true,
                                                                                                "nodeType": "IndexAccess",
                                                                                                "src": "14186:15:19",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                    "typeString": "bytes32"
                                                                                                }
                                                                                            },
                                                                                            "nodeType": "Assignment",
                                                                                            "operator": "=",
                                                                                            "rightHandSide": {
                                                                                                "baseExpression": {
                                                                                                    "baseExpression": {
                                                                                                        "id": 10491,
                                                                                                        "name": "trades",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 9332,
                                                                                                        "src": "14204:6:19",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_bytes32_$dyn_storage_$",
                                                                                                            "typeString": "mapping(bytes32 => bytes32[] storage ref)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 10493,
                                                                                                    "indexExpression": {
                                                                                                        "id": 10492,
                                                                                                        "name": "DPID",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 10301,
                                                                                                        "src": "14211:4:19",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                            "typeString": "bytes32"
                                                                                                        }
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "IndexAccess",
                                                                                                    "src": "14204:12:19",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                        "typeString": "bytes32[] storage ref"
                                                                                                    }
                                                                                                },
                                                                                                "id": 10497,
                                                                                                "indexExpression": {
                                                                                                    "commonType": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    },
                                                                                                    "id": 10496,
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "leftExpression": {
                                                                                                        "id": 10494,
                                                                                                        "name": "i",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 10452,
                                                                                                        "src": "14217:1:19",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    },
                                                                                                    "nodeType": "BinaryOperation",
                                                                                                    "operator": "+",
                                                                                                    "rightExpression": {
                                                                                                        "hexValue": "31",
                                                                                                        "id": 10495,
                                                                                                        "isConstant": false,
                                                                                                        "isLValue": false,
                                                                                                        "isPure": true,
                                                                                                        "kind": "number",
                                                                                                        "lValueRequested": false,
                                                                                                        "nodeType": "Literal",
                                                                                                        "src": "14219:1:19",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_rational_1_by_1",
                                                                                                            "typeString": "int_const 1"
                                                                                                        },
                                                                                                        "value": "1"
                                                                                                    },
                                                                                                    "src": "14217:3:19",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                },
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": false,
                                                                                                "nodeType": "IndexAccess",
                                                                                                "src": "14204:17:19",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                    "typeString": "bytes32"
                                                                                                }
                                                                                            },
                                                                                            "src": "14186:35:19",
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_bytes32",
                                                                                                "typeString": "bytes32"
                                                                                            }
                                                                                        },
                                                                                        "id": 10499,
                                                                                        "nodeType": "ExpressionStatement",
                                                                                        "src": "14186:35:19"
                                                                                    },
                                                                                    "id": 10500,
                                                                                    "nodeType": "IfStatement",
                                                                                    "src": "14048:173:19",
                                                                                    "trueBody": {
                                                                                        "expression": {
                                                                                            "id": 10484,
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "nodeType": "UnaryOperation",
                                                                                            "operator": "delete",
                                                                                            "prefix": true,
                                                                                            "src": "14105:22:19",
                                                                                            "subExpression": {
                                                                                                "baseExpression": {
                                                                                                    "baseExpression": {
                                                                                                        "id": 10479,
                                                                                                        "name": "trades",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 9332,
                                                                                                        "src": "14112:6:19",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_bytes32_$dyn_storage_$",
                                                                                                            "typeString": "mapping(bytes32 => bytes32[] storage ref)"
                                                                                                        }
                                                                                                    },
                                                                                                    "id": 10481,
                                                                                                    "indexExpression": {
                                                                                                        "id": 10480,
                                                                                                        "name": "DPID",
                                                                                                        "nodeType": "Identifier",
                                                                                                        "overloadedDeclarations": [],
                                                                                                        "referencedDeclaration": 10301,
                                                                                                        "src": "14119:4:19",
                                                                                                        "typeDescriptions": {
                                                                                                            "typeIdentifier": "t_bytes32",
                                                                                                            "typeString": "bytes32"
                                                                                                        }
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "nodeType": "IndexAccess",
                                                                                                    "src": "14112:12:19",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                                                        "typeString": "bytes32[] storage ref"
                                                                                                    }
                                                                                                },
                                                                                                "id": 10483,
                                                                                                "indexExpression": {
                                                                                                    "id": 10482,
                                                                                                    "name": "i",
                                                                                                    "nodeType": "Identifier",
                                                                                                    "overloadedDeclarations": [],
                                                                                                    "referencedDeclaration": 10452,
                                                                                                    "src": "14125:1:19",
                                                                                                    "typeDescriptions": {
                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                        "typeString": "uint256"
                                                                                                    }
                                                                                                },
                                                                                                "isConstant": false,
                                                                                                "isLValue": true,
                                                                                                "isPure": false,
                                                                                                "lValueRequested": true,
                                                                                                "nodeType": "IndexAccess",
                                                                                                "src": "14112:15:19",
                                                                                                "typeDescriptions": {
                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                    "typeString": "bytes32"
                                                                                                }
                                                                                            },
                                                                                            "typeDescriptions": {
                                                                                                "typeIdentifier": "t_tuple$__$",
                                                                                                "typeString": "tuple()"
                                                                                            }
                                                                                        },
                                                                                        "id": 10485,
                                                                                        "nodeType": "ExpressionStatement",
                                                                                        "src": "14105:22:19"
                                                                                    }
                                                                                }
                                                                            ]
                                                                        }
                                                                    }
                                                                ]
                                                            },
                                                            "condition": {
                                                                "commonType": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                "id": 10460,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftExpression": {
                                                                    "id": 10455,
                                                                    "name": "i",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 10452,
                                                                    "src": "13949:1:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "nodeType": "BinaryOperation",
                                                                "operator": "<",
                                                                "rightExpression": {
                                                                    "expression": {
                                                                        "baseExpression": {
                                                                            "id": 10456,
                                                                            "name": "trades",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 9332,
                                                                            "src": "13951:6:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_bytes32_$dyn_storage_$",
                                                                                "typeString": "mapping(bytes32 => bytes32[] storage ref)"
                                                                            }
                                                                        },
                                                                        "id": 10458,
                                                                        "indexExpression": {
                                                                            "id": 10457,
                                                                            "name": "DPID",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 10301,
                                                                            "src": "13958:4:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "13951:12:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                                                            "typeString": "bytes32[] storage ref"
                                                                        }
                                                                    },
                                                                    "id": 10459,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "memberName": "length",
                                                                    "nodeType": "MemberAccess",
                                                                    "src": "13951:19:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "src": "13949:21:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            },
                                                            "id": 10504,
                                                            "initializationExpression": {
                                                                "assignments": [
                                                                    10452
                                                                ],
                                                                "declarations": [
                                                                    {
                                                                        "constant": false,
                                                                        "id": 10452,
                                                                        "mutability": "mutable",
                                                                        "name": "i",
                                                                        "nodeType": "VariableDeclaration",
                                                                        "scope": 10504,
                                                                        "src": "13939:6:19",
                                                                        "stateVariable": false,
                                                                        "storageLocation": "default",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        "typeName": {
                                                                            "id": 10451,
                                                                            "name": "uint",
                                                                            "nodeType": "ElementaryTypeName",
                                                                            "src": "13939:4:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            }
                                                                        },
                                                                        "visibility": "internal"
                                                                    }
                                                                ],
                                                                "id": 10454,
                                                                "initialValue": {
                                                                    "hexValue": "30",
                                                                    "id": 10453,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "kind": "number",
                                                                    "lValueRequested": false,
                                                                    "nodeType": "Literal",
                                                                    "src": "13946:1:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_rational_0_by_1",
                                                                        "typeString": "int_const 0"
                                                                    },
                                                                    "value": "0"
                                                                },
                                                                "nodeType": "VariableDeclarationStatement",
                                                                "src": "13939:8:19"
                                                            },
                                                            "loopExpression": {
                                                                "expression": {
                                                                    "id": 10462,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "nodeType": "UnaryOperation",
                                                                    "operator": "++",
                                                                    "prefix": false,
                                                                    "src": "13972:3:19",
                                                                    "subExpression": {
                                                                        "id": 10461,
                                                                        "name": "i",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 10452,
                                                                        "src": "13972:1:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    },
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "id": 10463,
                                                                "nodeType": "ExpressionStatement",
                                                                "src": "13972:3:19"
                                                            },
                                                            "nodeType": "ForStatement",
                                                            "src": "13935:327:19"
                                                        },
                                                        {
                                                            "expression": {
                                                                "id": 10510,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftHandSide": {
                                                                    "expression": {
                                                                        "baseExpression": {
                                                                            "id": 10505,
                                                                            "name": "settlements",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 9327,
                                                                            "src": "14279:11:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                                                "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                                            }
                                                                        },
                                                                        "id": 10507,
                                                                        "indexExpression": {
                                                                            "id": 10506,
                                                                            "name": "ref",
                                                                            "nodeType": "Identifier",
                                                                            "overloadedDeclarations": [],
                                                                            "referencedDeclaration": 10295,
                                                                            "src": "14291:3:19",
                                                                            "typeDescriptions": {
                                                                                "typeIdentifier": "t_bytes32",
                                                                                "typeString": "bytes32"
                                                                            }
                                                                        },
                                                                        "isConstant": false,
                                                                        "isLValue": true,
                                                                        "isPure": false,
                                                                        "lValueRequested": false,
                                                                        "nodeType": "IndexAccess",
                                                                        "src": "14279:16:19",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                                            "typeString": "struct ISettlor.settlement storage ref"
                                                                        }
                                                                    },
                                                                    "id": 10508,
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": true,
                                                                    "memberName": "status",
                                                                    "nodeType": "MemberAccess",
                                                                    "referencedDeclaration": 12158,
                                                                    "src": "14279:23:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    }
                                                                },
                                                                "nodeType": "Assignment",
                                                                "operator": "=",
                                                                "rightHandSide": {
                                                                    "hexValue": "436f6e6669726d",
                                                                    "id": 10509,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "kind": "string",
                                                                    "lValueRequested": false,
                                                                    "nodeType": "Literal",
                                                                    "src": "14305:9:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_stringliteral_3835a712a1868db4190e4c5c9d4a588f4b967c58d59a16f49582013eccd94268",
                                                                        "typeString": "literal_string \"Confirm\""
                                                                    },
                                                                    "value": "Confirm"
                                                                },
                                                                "src": "14279:35:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            },
                                                            "id": 10511,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "14279:35:19"
                                                        },
                                                        {
                                                            "expression": {
                                                                "id": 10514,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftHandSide": {
                                                                    "id": 10512,
                                                                    "name": "settled",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 10308,
                                                                    "src": "14336:7:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    }
                                                                },
                                                                "nodeType": "Assignment",
                                                                "operator": "=",
                                                                "rightHandSide": {
                                                                    "hexValue": "74727565",
                                                                    "id": 10513,
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "kind": "bool",
                                                                    "lValueRequested": false,
                                                                    "nodeType": "Literal",
                                                                    "src": "14346:4:19",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    },
                                                                    "value": "true"
                                                                },
                                                                "src": "14336:14:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            },
                                                            "id": 10515,
                                                            "nodeType": "ExpressionStatement",
                                                            "src": "14336:14:19"
                                                        }
                                                    ]
                                                }
                                            }
                                        ]
                                    }
                                },
                                {
                                    "assignments": [
                                        10703
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 10703,
                                            "mutability": "mutable",
                                            "name": "poolId",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 10747,
                                            "src": "15832:14:19",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            },
                                            "typeName": {
                                                "id": 10702,
                                                "name": "bytes32",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "15832:7:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 10710,
                                    "initialValue": {
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "expression": {
                                                "expression": {
                                                    "baseExpression": {
                                                        "id": 10704,
                                                        "name": "settlements",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9327,
                                                        "src": "15849:11:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                            "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                        }
                                                    },
                                                    "id": 10706,
                                                    "indexExpression": {
                                                        "id": 10705,
                                                        "name": "ref",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 10295,
                                                        "src": "15861:3:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "15849:16:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                        "typeString": "struct ISettlor.settlement storage ref"
                                                    }
                                                },
                                                "id": 10707,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "orderPool",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 12148,
                                                "src": "15849:26:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_IOrder_$11977",
                                                    "typeString": "contract IOrder"
                                                }
                                            },
                                            "id": 10708,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "getPoolId",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 11920,
                                            "src": "15849:36:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$__$returns$_t_bytes32_$",
                                                "typeString": "function () view external returns (bytes32)"
                                            }
                                        },
                                        "id": 10709,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "15849:38:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "15832:55:19"
                                },
                                {
                                    "eventCall": {
                                        "arguments": [
                                            {
                                                "id": 10712,
                                                "name": "poolId",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10703,
                                                "src": "15948:6:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "expression": {
                                                    "baseExpression": {
                                                        "id": 10713,
                                                        "name": "settlements",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9327,
                                                        "src": "15984:11:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                            "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                        }
                                                    },
                                                    "id": 10715,
                                                    "indexExpression": {
                                                        "id": 10714,
                                                        "name": "ref",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 10295,
                                                        "src": "15996:3:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "15984:16:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                        "typeString": "struct ISettlor.settlement storage ref"
                                                    }
                                                },
                                                "id": 10716,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "transferor",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 12150,
                                                "src": "15984:27:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "expression": {
                                                    "baseExpression": {
                                                        "id": 10717,
                                                        "name": "settlements",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9327,
                                                        "src": "16042:11:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                            "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                        }
                                                    },
                                                    "id": 10719,
                                                    "indexExpression": {
                                                        "id": 10718,
                                                        "name": "ref",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 10295,
                                                        "src": "16054:3:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "16042:16:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                        "typeString": "struct ISettlor.settlement storage ref"
                                                    }
                                                },
                                                "id": 10720,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "transferee",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 12152,
                                                "src": "16042:27:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "expression": {
                                                    "baseExpression": {
                                                        "id": 10721,
                                                        "name": "settlements",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9327,
                                                        "src": "16100:11:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                            "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                        }
                                                    },
                                                    "id": 10723,
                                                    "indexExpression": {
                                                        "id": 10722,
                                                        "name": "ref",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 10295,
                                                        "src": "16112:3:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "16100:16:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                        "typeString": "struct ISettlor.settlement storage ref"
                                                    }
                                                },
                                                "id": 10724,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "unitsToTransfer",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 12164,
                                                "src": "16100:32:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "expression": {
                                                    "baseExpression": {
                                                        "id": 10725,
                                                        "name": "settlements",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9327,
                                                        "src": "16162:11:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                            "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                        }
                                                    },
                                                    "id": 10727,
                                                    "indexExpression": {
                                                        "id": 10726,
                                                        "name": "ref",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 10295,
                                                        "src": "16174:3:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "16162:16:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                        "typeString": "struct ISettlor.settlement storage ref"
                                                    }
                                                },
                                                "id": 10728,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "security",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 12154,
                                                "src": "16162:25:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "expression": {
                                                    "baseExpression": {
                                                        "id": 10729,
                                                        "name": "settlements",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9327,
                                                        "src": "16217:11:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                            "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                        }
                                                    },
                                                    "id": 10731,
                                                    "indexExpression": {
                                                        "id": 10730,
                                                        "name": "ref",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 10295,
                                                        "src": "16229:3:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "16217:16:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                        "typeString": "struct ISettlor.settlement storage ref"
                                                    }
                                                },
                                                "id": 10732,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "price",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 12162,
                                                "src": "16217:22:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "expression": {
                                                    "baseExpression": {
                                                        "id": 10733,
                                                        "name": "settlements",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9327,
                                                        "src": "16269:11:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                            "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                        }
                                                    },
                                                    "id": 10735,
                                                    "indexExpression": {
                                                        "id": 10734,
                                                        "name": "ref",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 10295,
                                                        "src": "16281:3:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "16269:16:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                        "typeString": "struct ISettlor.settlement storage ref"
                                                    }
                                                },
                                                "id": 10736,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "currency",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 12156,
                                                "src": "16269:25:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "expression": {
                                                    "baseExpression": {
                                                        "id": 10737,
                                                        "name": "settlements",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9327,
                                                        "src": "16324:11:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_settlement_$12173_storage_$",
                                                            "typeString": "mapping(bytes32 => struct ISettlor.settlement storage ref)"
                                                        }
                                                    },
                                                    "id": 10739,
                                                    "indexExpression": {
                                                        "id": 10738,
                                                        "name": "ref",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 10295,
                                                        "src": "16336:3:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_bytes32",
                                                            "typeString": "bytes32"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "16324:16:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_struct$_settlement_$12173_storage",
                                                        "typeString": "struct ISettlor.settlement storage ref"
                                                    }
                                                },
                                                "id": 10740,
                                                "isConstant": false,
                                                "isLValue": true,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "status",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 12158,
                                                "src": "16324:23:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "id": 10741,
                                                "name": "ref",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10295,
                                                "src": "16377:3:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "id": 10742,
                                                "name": "pay",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10366,
                                                "src": "16410:3:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "expression": {
                                                    "id": 10743,
                                                    "name": "block",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": -4,
                                                    "src": "16443:5:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_magic_block",
                                                        "typeString": "block"
                                                    }
                                                },
                                                "id": 10744,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "timestamp",
                                                "nodeType": "MemberAccess",
                                                "src": "16443:15:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 10711,
                                            "name": "tradeSettled",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9398,
                                            "src": "15906:12:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_address_$_t_bytes32_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$",
                                                "typeString": "function (bytes32,address,address,uint256,address,uint256,address,bytes32,bytes32,uint256,uint256)"
                                            }
                                        },
                                        "id": 10745,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "15906:578:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 10746,
                                    "nodeType": "EmitStatement",
                                    "src": "15901:583:19"
                                }
                            ]
                        },
                        "id": 10748,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "setSettlement",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 10298,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 10295,
                                    "mutability": "mutable",
                                    "name": "ref",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 10748,
                                    "src": "12782:11:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 10294,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "12782:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 10297,
                                    "mutability": "mutable",
                                    "name": "status",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 10748,
                                    "src": "12795:14:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 10296,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "12795:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "12781:29:19"
                        },
                        "returnParameters": {
                            "id": 10299,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "12819:0:19"
                        },
                        "scope": 10930,
                        "src": "12759:3756:19",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "private"
                    },
                    {
                        "baseFunctions": [
                            12234
                        ],
                        "body": {
                            "id": 10769,
                            "nodeType": "Block",
                            "src": "16775:41:19",
                            "statements": [
                                {
                                    "expression": {
                                        "baseExpression": {
                                            "id": 10765,
                                            "name": "investors",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9353,
                                            "src": "16792:9:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_subscriptions_$12146_storage_$dyn_storage_$",
                                                "typeString": "mapping(bytes32 => struct ISettlor.subscriptions storage ref[] storage ref)"
                                            }
                                        },
                                        "id": 10767,
                                        "indexExpression": {
                                            "id": 10766,
                                            "name": "poolId",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 10751,
                                            "src": "16802:6:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "16792:17:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_struct$_subscriptions_$12146_storage_$dyn_storage",
                                            "typeString": "struct ISettlor.subscriptions storage ref[] storage ref"
                                        }
                                    },
                                    "functionReturnParameters": 10764,
                                    "id": 10768,
                                    "nodeType": "Return",
                                    "src": "16785:24:19"
                                }
                            ]
                        },
                        "documentation": {
                            "id": 10749,
                            "nodeType": "StructuredDocumentation",
                            "src": "16521:95:19",
                            "text": "Retrieve investors in secondary pools\n@param  poolId  pool identity"
                        },
                        "functionSelector": "bfa0caa7",
                        "id": 10770,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": [
                                    {
                                        "expression": {
                                            "id": 10755,
                                            "name": "msg",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": -15,
                                            "src": "16701:3:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_magic_message",
                                                "typeString": "msg"
                                            }
                                        },
                                        "id": 10756,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "sender",
                                        "nodeType": "MemberAccess",
                                        "src": "16701:10:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address_payable",
                                            "typeString": "address payable"
                                        }
                                    },
                                    {
                                        "baseExpression": {
                                            "id": 10757,
                                            "name": "poolSecurity",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9344,
                                            "src": "16713:12:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
                                                "typeString": "mapping(bytes32 => address)"
                                            }
                                        },
                                        "id": 10759,
                                        "indexExpression": {
                                            "id": 10758,
                                            "name": "poolId",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 10751,
                                            "src": "16726:6:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes32",
                                                "typeString": "bytes32"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "16713:20:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    }
                                ],
                                "id": 10760,
                                "modifierName": {
                                    "id": 10754,
                                    "name": "onlyIssueManager",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 9458,
                                    "src": "16684:16:19",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$_t_address_$_t_address_$",
                                        "typeString": "modifier (address,address)"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "16684:50:19"
                            }
                        ],
                        "name": "getSubscribers",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 10753,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "16661:8:19"
                        },
                        "parameters": {
                            "id": 10752,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 10751,
                                    "mutability": "mutable",
                                    "name": "poolId",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 10770,
                                    "src": "16645:14:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 10750,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "16645:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "16644:16:19"
                        },
                        "returnParameters": {
                            "id": 10764,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 10763,
                                    "mutability": "mutable",
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 10770,
                                    "src": "16743:31:19",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_struct$_subscriptions_$12146_memory_ptr_$dyn_memory_ptr",
                                        "typeString": "struct ISettlor.subscriptions[]"
                                    },
                                    "typeName": {
                                        "baseType": {
                                            "id": 10761,
                                            "name": "ISettlor.subscriptions",
                                            "nodeType": "UserDefinedTypeName",
                                            "referencedDeclaration": 12146,
                                            "src": "16743:22:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_struct$_subscriptions_$12146_storage_ptr",
                                                "typeString": "struct ISettlor.subscriptions"
                                            }
                                        },
                                        "id": 10762,
                                        "nodeType": "ArrayTypeName",
                                        "src": "16743:24:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_struct$_subscriptions_$12146_storage_$dyn_storage_ptr",
                                            "typeString": "struct ISettlor.subscriptions[]"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "16742:33:19"
                        },
                        "scope": 10930,
                        "src": "16621:195:19",
                        "stateMutability": "view",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 10791,
                            "nodeType": "Block",
                            "src": "17022:99:19",
                            "statements": [
                                {
                                    "assignments": [
                                        10779
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 10779,
                                            "mutability": "mutable",
                                            "name": "dp",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 10791,
                                            "src": "17032:10:19",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            },
                                            "typeName": {
                                                "id": 10778,
                                                "name": "address",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "17032:7:19",
                                                "stateMutability": "nonpayable",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 10784,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "id": 10782,
                                                "name": "security",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10773,
                                                "src": "17060:8:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "expression": {
                                                "id": 10780,
                                                "name": "products",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9361,
                                                "src": "17045:8:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_IFactory_$11117",
                                                    "typeString": "contract IFactory"
                                                }
                                            },
                                            "id": 10781,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "getDP",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 11116,
                                            "src": "17045:14:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$",
                                                "typeString": "function (address) view external returns (address)"
                                            }
                                        },
                                        "id": 10783,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "17045:24:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "17032:37:19"
                                },
                                {
                                    "expression": {
                                        "components": [
                                            {
                                                "arguments": [
                                                    {
                                                        "id": 10787,
                                                        "name": "dp",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 10779,
                                                        "src": "17110:2:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "id": 10785,
                                                        "name": "client",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9359,
                                                        "src": "17086:6:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_VerifiedClient_$12414",
                                                            "typeString": "contract VerifiedClient"
                                                        }
                                                    },
                                                    "id": 10786,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "getTransferAgent",
                                                    "nodeType": "MemberAccess",
                                                    "referencedDeclaration": 12381,
                                                    "src": "17086:23:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes32_$",
                                                        "typeString": "function (address) view external returns (bytes32)"
                                                    }
                                                },
                                                "id": 10788,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "functionCall",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "17086:27:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            }
                                        ],
                                        "id": 10789,
                                        "isConstant": false,
                                        "isInlineArray": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "TupleExpression",
                                        "src": "17085:29:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "functionReturnParameters": 10777,
                                    "id": 10790,
                                    "nodeType": "Return",
                                    "src": "17079:35:19"
                                }
                            ]
                        },
                        "documentation": {
                            "id": 10771,
                            "nodeType": "StructuredDocumentation",
                            "src": "16822:122:19",
                            "text": "Gets transfer agent for the security in the trade\n@param  security  address of security traded"
                        },
                        "id": 10792,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getTransferAgent",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 10774,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 10773,
                                    "mutability": "mutable",
                                    "name": "security",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 10792,
                                    "src": "16975:16:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 10772,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "16975:7:19",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "16974:18:19"
                        },
                        "returnParameters": {
                            "id": 10777,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 10776,
                                    "mutability": "mutable",
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 10792,
                                    "src": "17014:7:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 10775,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "17014:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "17013:9:19"
                        },
                        "scope": 10930,
                        "src": "16949:172:19",
                        "stateMutability": "view",
                        "virtual": false,
                        "visibility": "private"
                    },
                    {
                        "baseFunctions": [
                            12226
                        ],
                        "body": {
                            "id": 10847,
                            "nodeType": "Block",
                            "src": "17347:355:19",
                            "statements": [
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "commonType": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                "id": 10805,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "expression": {
                                                        "id": 10802,
                                                        "name": "msg",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": -15,
                                                        "src": "17365:3:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_magic_message",
                                                            "typeString": "msg"
                                                        }
                                                    },
                                                    "id": 10803,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "memberName": "sender",
                                                    "nodeType": "MemberAccess",
                                                    "src": "17365:10:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address_payable",
                                                        "typeString": "address payable"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "==",
                                                "rightExpression": {
                                                    "id": 10804,
                                                    "name": "distribution",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 9363,
                                                    "src": "17377:12:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "src": "17365:24:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "hexValue": "556e617574686f72697a656420636f6c6c656374696f6e2072657175657374",
                                                "id": 10806,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "17391:33:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_b96be16b05b75bc8355a55580cdf55506a64fe0095ac0411c167b4ced0d6ed7d",
                                                    "typeString": "literal_string \"Unauthorized collection request\""
                                                },
                                                "value": "Unauthorized collection request"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_b96be16b05b75bc8355a55580cdf55506a64fe0095ac0411c167b4ced0d6ed7d",
                                                    "typeString": "literal_string \"Unauthorized collection request\""
                                                }
                                            ],
                                            "id": 10801,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "17357:7:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 10807,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "17357:68:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 10808,
                                    "nodeType": "ExpressionStatement",
                                    "src": "17357:68:19"
                                },
                                {
                                    "assignments": [
                                        10810
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 10810,
                                            "mutability": "mutable",
                                            "name": "feeCollected",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 10847,
                                            "src": "17435:20:19",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 10809,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "17435:7:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 10814,
                                    "initialValue": {
                                        "baseExpression": {
                                            "id": 10811,
                                            "name": "fees",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9357,
                                            "src": "17458:4:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                "typeString": "mapping(address => uint256)"
                                            }
                                        },
                                        "id": 10813,
                                        "indexExpression": {
                                            "id": 10812,
                                            "name": "_token",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 10795,
                                            "src": "17463:6:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "17458:12:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "17435:35:19"
                                },
                                {
                                    "expression": {
                                        "id": 10825,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "baseExpression": {
                                                "id": 10815,
                                                "name": "fees",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9357,
                                                "src": "17480:4:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                    "typeString": "mapping(address => uint256)"
                                                }
                                            },
                                            "id": 10817,
                                            "indexExpression": {
                                                "id": 10816,
                                                "name": "_token",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10795,
                                                "src": "17485:6:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "nodeType": "IndexAccess",
                                            "src": "17480:12:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "arguments": [
                                                {
                                                    "baseExpression": {
                                                        "id": 10820,
                                                        "name": "fees",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 9357,
                                                        "src": "17504:4:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                                                            "typeString": "mapping(address => uint256)"
                                                        }
                                                    },
                                                    "id": 10822,
                                                    "indexExpression": {
                                                        "id": 10821,
                                                        "name": "_token",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 10795,
                                                        "src": "17509:6:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "nodeType": "IndexAccess",
                                                    "src": "17504:12:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                {
                                                    "id": 10823,
                                                    "name": "feeCollected",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 10810,
                                                    "src": "17518:12:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                ],
                                                "expression": {
                                                    "id": 10818,
                                                    "name": "Math",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 2367,
                                                    "src": "17495:4:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_Math_$2367_$",
                                                        "typeString": "type(library Math)"
                                                    }
                                                },
                                                "id": 10819,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "sub",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": 2177,
                                                "src": "17495:8:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                                }
                                            },
                                            "id": 10824,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "17495:36:19",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "17480:51:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "id": 10826,
                                    "nodeType": "ExpressionStatement",
                                    "src": "17480:51:19"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "id": 10831,
                                                "name": "distribution",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9363,
                                                "src": "17565:12:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 10832,
                                                "name": "feeCollected",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10810,
                                                "src": "17579:12:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "arguments": [
                                                    {
                                                        "id": 10828,
                                                        "name": "_token",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": 10795,
                                                        "src": "17548:6:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 10827,
                                                    "name": "IERC20",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 2938,
                                                    "src": "17541:6:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_IERC20_$2938_$",
                                                        "typeString": "type(contract IERC20)"
                                                    }
                                                },
                                                "id": 10829,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "17541:14:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                    "typeString": "contract IERC20"
                                                }
                                            },
                                            "id": 10830,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "transfer",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 2887,
                                            "src": "17541:23:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$",
                                                "typeString": "function (address,uint256) external returns (bool)"
                                            }
                                        },
                                        "id": 10833,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "17541:51:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 10834,
                                    "nodeType": "ExpressionStatement",
                                    "src": "17541:51:19"
                                },
                                {
                                    "eventCall": {
                                        "arguments": [
                                            {
                                                "arguments": [
                                                    {
                                                        "id": 10838,
                                                        "name": "this",
                                                        "nodeType": "Identifier",
                                                        "overloadedDeclarations": [],
                                                        "referencedDeclaration": -28,
                                                        "src": "17629:4:19",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_contract$_SecondaryIssueManager_$10930",
                                                            "typeString": "contract SecondaryIssueManager"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_contract$_SecondaryIssueManager_$10930",
                                                            "typeString": "contract SecondaryIssueManager"
                                                        }
                                                    ],
                                                    "id": 10837,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "nodeType": "ElementaryTypeNameExpression",
                                                    "src": "17621:7:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_address_$",
                                                        "typeString": "type(address)"
                                                    },
                                                    "typeName": {
                                                        "id": 10836,
                                                        "name": "address",
                                                        "nodeType": "ElementaryTypeName",
                                                        "src": "17621:7:19",
                                                        "typeDescriptions": {}
                                                    }
                                                },
                                                "id": 10839,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "17621:13:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            },
                                            {
                                                "id": 10840,
                                                "name": "feeCollected",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10810,
                                                "src": "17636:12:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "expression": {
                                                    "id": 10841,
                                                    "name": "block",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": -4,
                                                    "src": "17650:5:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_magic_block",
                                                        "typeString": "block"
                                                    }
                                                },
                                                "id": 10842,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "timestamp",
                                                "nodeType": "MemberAccess",
                                                "src": "17650:15:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 10835,
                                            "name": "feecollection",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9436,
                                            "src": "17607:13:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                                                "typeString": "function (address,uint256,uint256)"
                                            }
                                        },
                                        "id": 10843,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "17607:59:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 10844,
                                    "nodeType": "EmitStatement",
                                    "src": "17602:64:19"
                                },
                                {
                                    "expression": {
                                        "id": 10845,
                                        "name": "feeCollected",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 10810,
                                        "src": "17683:12:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "functionReturnParameters": 10800,
                                    "id": 10846,
                                    "nodeType": "Return",
                                    "src": "17676:19:19"
                                }
                            ]
                        },
                        "documentation": {
                            "id": 10793,
                            "nodeType": "StructuredDocumentation",
                            "src": "17128:132:19",
                            "text": "Fetch trading fee collected in Balancer vault\n@param  _token  address of token in which fee is collected"
                        },
                        "functionSelector": "2d916746",
                        "id": 10848,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "getTradingFeeCollected",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 10797,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "17313:8:19"
                        },
                        "parameters": {
                            "id": 10796,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 10795,
                                    "mutability": "mutable",
                                    "name": "_token",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 10848,
                                    "src": "17297:14:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 10794,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "17297:7:19",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "17296:16:19"
                        },
                        "returnParameters": {
                            "id": 10800,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 10799,
                                    "mutability": "mutable",
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 10848,
                                    "src": "17339:7:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 10798,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "17339:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "17338:9:19"
                        },
                        "scope": 10930,
                        "src": "17265:437:19",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "body": {
                            "id": 10859,
                            "nodeType": "Block",
                            "src": "17934:121:19",
                            "statements": [
                                {
                                    "AST": {
                                        "nodeType": "YulBlock",
                                        "src": "18009:40:19",
                                        "statements": [
                                            {
                                                "nodeType": "YulAssignment",
                                                "src": "18023:16:19",
                                                "value": {
                                                    "name": "tokens",
                                                    "nodeType": "YulIdentifier",
                                                    "src": "18033:6:19"
                                                },
                                                "variableNames": [
                                                    {
                                                        "name": "assets",
                                                        "nodeType": "YulIdentifier",
                                                        "src": "18023:6:19"
                                                    }
                                                ]
                                            }
                                        ]
                                    },
                                    "evmVersion": "istanbul",
                                    "externalReferences": [
                                        {
                                            "declaration": 10856,
                                            "isOffset": false,
                                            "isSlot": false,
                                            "src": "18023:6:19",
                                            "valueSize": 1
                                        },
                                        {
                                            "declaration": 10852,
                                            "isOffset": false,
                                            "isSlot": false,
                                            "src": "18033:6:19",
                                            "valueSize": 1
                                        }
                                    ],
                                    "id": 10858,
                                    "nodeType": "InlineAssembly",
                                    "src": "18000:49:19"
                                }
                            ]
                        },
                        "documentation": {
                            "id": 10849,
                            "nodeType": "StructuredDocumentation",
                            "src": "17711:115:19",
                            "text": " @dev This helper function is a fast and cheap way to convert between IERC20[] and IAsset[] types"
                        },
                        "id": 10860,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "_convertERC20sToAssets",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 10853,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 10852,
                                    "mutability": "mutable",
                                    "name": "tokens",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 10860,
                                    "src": "17863:22:19",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr",
                                        "typeString": "contract IERC20[]"
                                    },
                                    "typeName": {
                                        "baseType": {
                                            "id": 10850,
                                            "name": "IERC20",
                                            "nodeType": "UserDefinedTypeName",
                                            "referencedDeclaration": 2938,
                                            "src": "17863:6:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_IERC20_$2938",
                                                "typeString": "contract IERC20"
                                            }
                                        },
                                        "id": 10851,
                                        "nodeType": "ArrayTypeName",
                                        "src": "17863:8:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_storage_ptr",
                                            "typeString": "contract IERC20[]"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "17862:24:19"
                        },
                        "returnParameters": {
                            "id": 10857,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 10856,
                                    "mutability": "mutable",
                                    "name": "assets",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 10860,
                                    "src": "17910:22:19",
                                    "stateVariable": false,
                                    "storageLocation": "memory",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_contract$_IAsset_$3127_$dyn_memory_ptr",
                                        "typeString": "contract IAsset[]"
                                    },
                                    "typeName": {
                                        "baseType": {
                                            "id": 10854,
                                            "name": "IAsset",
                                            "nodeType": "UserDefinedTypeName",
                                            "referencedDeclaration": 3127,
                                            "src": "17910:6:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_IAsset_$3127",
                                                "typeString": "contract IAsset"
                                            }
                                        },
                                        "id": 10855,
                                        "nodeType": "ArrayTypeName",
                                        "src": "17910:8:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_contract$_IAsset_$3127_$dyn_storage_ptr",
                                            "typeString": "contract IAsset[]"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "17909:24:19"
                        },
                        "scope": 10930,
                        "src": "17831:224:19",
                        "stateMutability": "pure",
                        "virtual": false,
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 10894,
                            "nodeType": "Block",
                            "src": "18300:340:19",
                            "statements": [
                                {
                                    "assignments": [
                                        10869
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 10869,
                                            "mutability": "mutable",
                                            "name": "tokenDecimals",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 10894,
                                            "src": "18390:21:19",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 10868,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "18390:7:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 10878,
                                    "initialValue": {
                                        "arguments": [],
                                        "expression": {
                                            "argumentTypes": [],
                                            "expression": {
                                                "arguments": [
                                                    {
                                                        "arguments": [
                                                            {
                                                                "id": 10873,
                                                                "name": "token",
                                                                "nodeType": "Identifier",
                                                                "overloadedDeclarations": [],
                                                                "referencedDeclaration": 10863,
                                                                "src": "18428:5:19",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                    "typeString": "contract IERC20"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                    "typeString": "contract IERC20"
                                                                }
                                                            ],
                                                            "id": 10872,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "nodeType": "ElementaryTypeNameExpression",
                                                            "src": "18420:7:19",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_type$_t_address_$",
                                                                "typeString": "type(address)"
                                                            },
                                                            "typeName": {
                                                                "id": 10871,
                                                                "name": "address",
                                                                "nodeType": "ElementaryTypeName",
                                                                "src": "18420:7:19",
                                                                "typeDescriptions": {}
                                                            }
                                                        },
                                                        "id": 10874,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "typeConversion",
                                                        "lValueRequested": false,
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "18420:14:19",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    }
                                                ],
                                                "expression": {
                                                    "argumentTypes": [
                                                        {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    ],
                                                    "id": 10870,
                                                    "name": "ERC20",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 2860,
                                                    "src": "18414:5:19",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_type$_t_contract$_ERC20_$2860_$",
                                                        "typeString": "type(contract ERC20)"
                                                    }
                                                },
                                                "id": 10875,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "kind": "typeConversion",
                                                "lValueRequested": false,
                                                "names": [],
                                                "nodeType": "FunctionCall",
                                                "src": "18414:21:19",
                                                "tryCall": false,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_ERC20_$2860",
                                                    "typeString": "contract ERC20"
                                                }
                                            },
                                            "id": 10876,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "decimals",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 2459,
                                            "src": "18414:30:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$",
                                                "typeString": "function () view external returns (uint8)"
                                            }
                                        },
                                        "id": 10877,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "18414:32:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint8",
                                            "typeString": "uint8"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "18390:56:19"
                                },
                                {
                                    "assignments": [
                                        10880
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 10880,
                                            "mutability": "mutable",
                                            "name": "decimalsDifference",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 10894,
                                            "src": "18521:26:19",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 10879,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "18521:7:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 10886,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "hexValue": "3138",
                                                "id": 10883,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "18559:2:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_rational_18_by_1",
                                                    "typeString": "int_const 18"
                                                },
                                                "value": "18"
                                            },
                                            {
                                                "id": 10884,
                                                "name": "tokenDecimals",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10869,
                                                "src": "18563:13:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_rational_18_by_1",
                                                    "typeString": "int_const 18"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "id": 10881,
                                                "name": "Math",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 2367,
                                                "src": "18550:4:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_Math_$2367_$",
                                                    "typeString": "type(library Math)"
                                                }
                                            },
                                            "id": 10882,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "sub",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 2177,
                                            "src": "18550:8:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                            }
                                        },
                                        "id": 10885,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "18550:27:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "18521:56:19"
                                },
                                {
                                    "expression": {
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 10892,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "expression": {
                                                "id": 10887,
                                                "name": "FixedPoint",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 780,
                                                "src": "18594:10:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_FixedPoint_$780_$",
                                                    "typeString": "type(library FixedPoint)"
                                                }
                                            },
                                            "id": 10888,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "ONE",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 445,
                                            "src": "18594:14:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "*",
                                        "rightExpression": {
                                            "commonType": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "id": 10891,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                                "hexValue": "3130",
                                                "id": 10889,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "18611:2:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_rational_10_by_1",
                                                    "typeString": "int_const 10"
                                                },
                                                "value": "10"
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "**",
                                            "rightExpression": {
                                                "id": 10890,
                                                "name": "decimalsDifference",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10880,
                                                "src": "18615:18:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "src": "18611:22:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "18594:39:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "functionReturnParameters": 10867,
                                    "id": 10893,
                                    "nodeType": "Return",
                                    "src": "18587:46:19"
                                }
                            ]
                        },
                        "documentation": {
                            "id": 10861,
                            "nodeType": "StructuredDocumentation",
                            "src": "18061:157:19",
                            "text": " @dev Returns a scaling factor that, when multiplied to a token amount for `token`, normalizes its balance as if\n it had 18 decimals."
                        },
                        "id": 10895,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "_computeScalingFactor",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 10864,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 10863,
                                    "mutability": "mutable",
                                    "name": "token",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 10895,
                                    "src": "18254:12:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_IERC20_$2938",
                                        "typeString": "contract IERC20"
                                    },
                                    "typeName": {
                                        "id": 10862,
                                        "name": "IERC20",
                                        "nodeType": "UserDefinedTypeName",
                                        "referencedDeclaration": 2938,
                                        "src": "18254:6:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                            "typeString": "contract IERC20"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "18253:14:19"
                        },
                        "returnParameters": {
                            "id": 10867,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 10866,
                                    "mutability": "mutable",
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 10895,
                                    "src": "18291:7:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 10865,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "18291:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "18290:9:19"
                        },
                        "scope": 10930,
                        "src": "18223:417:19",
                        "stateMutability": "view",
                        "virtual": false,
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 10911,
                            "nodeType": "Block",
                            "src": "18939:65:19",
                            "statements": [
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "id": 10907,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10898,
                                                "src": "18975:6:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "id": 10908,
                                                "name": "scalingFactor",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10900,
                                                "src": "18983:13:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "id": 10905,
                                                "name": "FixedPoint",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 780,
                                                "src": "18956:10:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_FixedPoint_$780_$",
                                                    "typeString": "type(library FixedPoint)"
                                                }
                                            },
                                            "id": 10906,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "divDown",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 631,
                                            "src": "18956:18:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                            }
                                        },
                                        "id": 10909,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "18956:41:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "functionReturnParameters": 10904,
                                    "id": 10910,
                                    "nodeType": "Return",
                                    "src": "18949:48:19"
                                }
                            ]
                        },
                        "documentation": {
                            "id": 10896,
                            "nodeType": "StructuredDocumentation",
                            "src": "18646:193:19",
                            "text": " @dev Reverses the `scalingFactor` applied to `amount`, resulting in a smaller or equal value depending on\n whether it needed scaling or not. The result is rounded down."
                        },
                        "id": 10912,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "_downscaleDown",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 10901,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 10898,
                                    "mutability": "mutable",
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 10912,
                                    "src": "18868:14:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 10897,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "18868:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 10900,
                                    "mutability": "mutable",
                                    "name": "scalingFactor",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 10912,
                                    "src": "18884:21:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 10899,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "18884:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "18867:39:19"
                        },
                        "returnParameters": {
                            "id": 10904,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 10903,
                                    "mutability": "mutable",
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 10912,
                                    "src": "18930:7:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 10902,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "18930:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "18929:9:19"
                        },
                        "scope": 10930,
                        "src": "18844:160:19",
                        "stateMutability": "pure",
                        "virtual": false,
                        "visibility": "internal"
                    },
                    {
                        "body": {
                            "id": 10928,
                            "nodeType": "Block",
                            "src": "19255:490:19",
                            "statements": [
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "id": 10924,
                                                "name": "amount",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10915,
                                                "src": "19716:6:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            {
                                                "id": 10925,
                                                "name": "scalingFactor",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10917,
                                                "src": "19724:13:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "expression": {
                                                "id": 10922,
                                                "name": "FixedPoint",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 780,
                                                "src": "19697:10:19",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_FixedPoint_$780_$",
                                                    "typeString": "type(library FixedPoint)"
                                                }
                                            },
                                            "id": 10923,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberName": "mulDown",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 537,
                                            "src": "19697:18:19",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                                            }
                                        },
                                        "id": 10926,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "19697:41:19",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "functionReturnParameters": 10921,
                                    "id": 10927,
                                    "nodeType": "Return",
                                    "src": "19690:48:19"
                                }
                            ]
                        },
                        "documentation": {
                            "id": 10913,
                            "nodeType": "StructuredDocumentation",
                            "src": "19010:151:19",
                            "text": " @dev Applies `scalingFactor` to `amount`, resulting in a larger or equal value depending on whether it needed\n scaling or not."
                        },
                        "id": 10929,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "_upscale",
                        "nodeType": "FunctionDefinition",
                        "parameters": {
                            "id": 10918,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 10915,
                                    "mutability": "mutable",
                                    "name": "amount",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 10929,
                                    "src": "19184:14:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 10914,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "19184:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 10917,
                                    "mutability": "mutable",
                                    "name": "scalingFactor",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 10929,
                                    "src": "19200:21:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 10916,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "19200:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "19183:39:19"
                        },
                        "returnParameters": {
                            "id": 10921,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 10920,
                                    "mutability": "mutable",
                                    "name": "",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 10929,
                                    "src": "19246:7:19",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 10919,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "19246:7:19",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "19245:9:19"
                        },
                        "scope": 10930,
                        "src": "19166:579:19",
                        "stateMutability": "pure",
                        "virtual": false,
                        "visibility": "internal"
                    }
                ],
                "scope": 10931,
                "src": "864:18884:19"
            }
        ],
        "src": "112:19636:19"
    },
    "legacyAST": {
        "attributes": {
            "absolutePath": "project:/contracts/SecondaryIssueManager.sol",
            "exportedSymbols": {
                "SecondaryIssueManager": [
                    10930
                ]
            },
            "license": "BUSL1.1"
        },
        "children": [
            {
                "attributes": {
                    "literals": [
                        "solidity",
                        "0.7",
                        ".1"
                    ]
                },
                "id": 9285,
                "name": "PragmaDirective",
                "src": "112:22:19"
            },
            {
                "attributes": {
                    "literals": [
                        "experimental",
                        "ABIEncoderV2"
                    ]
                },
                "id": 9286,
                "name": "PragmaDirective",
                "src": "135:33:19"
            },
            {
                "attributes": {
                    "SourceUnit": 12259,
                    "absolutePath": "project:/contracts/interfaces/ISettlor.sol",
                    "file": "./interfaces/ISettlor.sol",
                    "scope": 10931,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 9287,
                "name": "ImportDirective",
                "src": "170:35:19"
            },
            {
                "attributes": {
                    "SourceUnit": 11978,
                    "absolutePath": "project:/contracts/interfaces/IOrder.sol",
                    "file": "./interfaces/IOrder.sol",
                    "scope": 10931,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 9288,
                "name": "ImportDirective",
                "src": "206:33:19"
            },
            {
                "attributes": {
                    "SourceUnit": 12276,
                    "absolutePath": "project:/contracts/interfaces/ITrade.sol",
                    "file": "./interfaces/ITrade.sol",
                    "scope": 10931,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 9289,
                "name": "ImportDirective",
                "src": "240:33:19"
            },
            {
                "attributes": {
                    "SourceUnit": 11118,
                    "absolutePath": "project:/contracts/interfaces/IFactory.sol",
                    "file": "./interfaces/IFactory.sol",
                    "scope": 10931,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 9290,
                "name": "ImportDirective",
                "src": "274:35:19"
            },
            {
                "attributes": {
                    "SourceUnit": 12123,
                    "absolutePath": "project:/contracts/interfaces/ISecurity.sol",
                    "file": "./interfaces/ISecurity.sol",
                    "scope": 10931,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 9291,
                "name": "ImportDirective",
                "src": "310:36:19"
            },
            {
                "attributes": {
                    "SourceUnit": 12415,
                    "absolutePath": "project:/contracts/interfaces/VerifiedClient.sol",
                    "file": "./interfaces/VerifiedClient.sol",
                    "scope": 10931,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 9292,
                "name": "ImportDirective",
                "src": "347:41:19"
            },
            {
                "attributes": {
                    "SourceUnit": 12073,
                    "absolutePath": "project:/contracts/interfaces/ISecondaryIssuePool.sol",
                    "file": "./interfaces/ISecondaryIssuePool.sol",
                    "scope": 10931,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 9293,
                "name": "ImportDirective",
                "src": "389:46:19"
            },
            {
                "attributes": {
                    "SourceUnit": 12094,
                    "absolutePath": "project:/contracts/interfaces/ISecondaryIssuePoolFactory.sol",
                    "file": "./interfaces/ISecondaryIssuePoolFactory.sol",
                    "scope": 10931,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 9294,
                "name": "ImportDirective",
                "src": "436:53:19"
            },
            {
                "attributes": {
                    "SourceUnit": 2368,
                    "absolutePath": "@balancer-labs/v2-solidity-utils/contracts/math/Math.sol",
                    "file": "@balancer-labs/v2-solidity-utils/contracts/math/Math.sol",
                    "scope": 10931,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 9295,
                "name": "ImportDirective",
                "src": "491:66:19"
            },
            {
                "attributes": {
                    "SourceUnit": 781,
                    "absolutePath": "@balancer-labs/v2-solidity-utils/contracts/math/FixedPoint.sol",
                    "file": "@balancer-labs/v2-solidity-utils/contracts/math/FixedPoint.sol",
                    "scope": 10931,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 9296,
                "name": "ImportDirective",
                "src": "558:72:19"
            },
            {
                "attributes": {
                    "SourceUnit": 2861,
                    "absolutePath": "@balancer-labs/v2-solidity-utils/contracts/openzeppelin/ERC20.sol",
                    "file": "@balancer-labs/v2-solidity-utils/contracts/openzeppelin/ERC20.sol",
                    "scope": 10931,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 9297,
                "name": "ImportDirective",
                "src": "631:75:19"
            },
            {
                "attributes": {
                    "SourceUnit": 2939,
                    "absolutePath": "@balancer-labs/v2-solidity-utils/contracts/openzeppelin/IERC20.sol",
                    "file": "@balancer-labs/v2-solidity-utils/contracts/openzeppelin/IERC20.sol",
                    "scope": 10931,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 9298,
                "name": "ImportDirective",
                "src": "707:76:19"
            },
            {
                "attributes": {
                    "SourceUnit": 3046,
                    "absolutePath": "@balancer-labs/v2-solidity-utils/contracts/openzeppelin/Ownable.sol",
                    "file": "@balancer-labs/v2-solidity-utils/contracts/openzeppelin/Ownable.sol",
                    "scope": 10931,
                    "symbolAliases": [
                        null
                    ],
                    "unitAlias": ""
                },
                "id": 9299,
                "name": "ImportDirective",
                "src": "784:77:19"
            },
            {
                "attributes": {
                    "abstract": false,
                    "contractDependencies": [
                        3045,
                        12258
                    ],
                    "contractKind": "contract",
                    "fullyImplemented": true,
                    "linearizedBaseContracts": [
                        10930,
                        3045,
                        12258
                    ],
                    "name": "SecondaryIssueManager",
                    "scope": 10931
                },
                "children": [
                    {
                        "attributes": {},
                        "children": [
                            {
                                "attributes": {
                                    "name": "ISettlor",
                                    "referencedDeclaration": 12258,
                                    "type": "contract ISettlor"
                                },
                                "id": 9300,
                                "name": "UserDefinedTypeName",
                                "src": "898:8:19"
                            }
                        ],
                        "id": 9301,
                        "name": "InheritanceSpecifier",
                        "src": "898:8:19"
                    },
                    {
                        "attributes": {},
                        "children": [
                            {
                                "attributes": {
                                    "name": "Ownable",
                                    "referencedDeclaration": 3045,
                                    "type": "contract Ownable"
                                },
                                "id": 9302,
                                "name": "UserDefinedTypeName",
                                "src": "908:7:19"
                            }
                        ],
                        "id": 9303,
                        "name": "InheritanceSpecifier",
                        "src": "908:7:19"
                    },
                    {
                        "children": [
                            {
                                "attributes": {
                                    "name": "Math",
                                    "referencedDeclaration": 2367,
                                    "type": "library Math"
                                },
                                "id": 9304,
                                "name": "UserDefinedTypeName",
                                "src": "929:4:19"
                            },
                            {
                                "attributes": {
                                    "name": "uint256",
                                    "type": "uint256"
                                },
                                "id": 9305,
                                "name": "ElementaryTypeName",
                                "src": "938:7:19"
                            }
                        ],
                        "id": 9306,
                        "name": "UsingForDirective",
                        "src": "923:23:19"
                    },
                    {
                        "children": [
                            {
                                "attributes": {
                                    "name": "FixedPoint",
                                    "referencedDeclaration": 780,
                                    "type": "library FixedPoint"
                                },
                                "id": 9307,
                                "name": "UserDefinedTypeName",
                                "src": "957:10:19"
                            },
                            {
                                "attributes": {
                                    "name": "uint256",
                                    "type": "uint256"
                                },
                                "id": 9308,
                                "name": "ElementaryTypeName",
                                "src": "972:7:19"
                            }
                        ],
                        "id": 9309,
                        "name": "UsingForDirective",
                        "src": "951:29:19"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "factory",
                            "scope": 10930,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "address",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "address",
                                    "stateMutability": "nonpayable",
                                    "type": "address"
                                },
                                "id": 9310,
                                "name": "ElementaryTypeName",
                                "src": "1012:7:19"
                            }
                        ],
                        "id": 9311,
                        "name": "VariableDeclaration",
                        "src": "1012:23:19"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "vault",
                            "scope": 10930,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "address",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "address",
                                    "stateMutability": "nonpayable",
                                    "type": "address"
                                },
                                "id": 9312,
                                "name": "ElementaryTypeName",
                                "src": "1046:7:19"
                            }
                        ],
                        "id": 9313,
                        "name": "VariableDeclaration",
                        "src": "1046:21:19"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "fee",
                            "scope": 10930,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "uint256",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "uint256",
                                    "type": "uint256"
                                },
                                "id": 9314,
                                "name": "ElementaryTypeName",
                                "src": "1094:7:19"
                            }
                        ],
                        "id": 9315,
                        "name": "VariableDeclaration",
                        "src": "1094:19:19"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "settlementFee",
                            "scope": 10930,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "uint256",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "uint256",
                                    "type": "uint256"
                                },
                                "id": 9316,
                                "name": "ElementaryTypeName",
                                "src": "1119:7:19"
                            }
                        ],
                        "id": 9317,
                        "name": "VariableDeclaration",
                        "src": "1119:29:19"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "customFee",
                            "scope": 10930,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(address => mapping(address => uint256))",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(address => mapping(address => uint256))"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "type": "address"
                                        },
                                        "id": 9318,
                                        "name": "ElementaryTypeName",
                                        "src": "1223:7:19"
                                    },
                                    {
                                        "attributes": {
                                            "type": "mapping(address => uint256)"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "type": "address"
                                                },
                                                "id": 9319,
                                                "name": "ElementaryTypeName",
                                                "src": "1242:7:19"
                                            },
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 9320,
                                                "name": "ElementaryTypeName",
                                                "src": "1253:7:19"
                                            }
                                        ],
                                        "id": 9321,
                                        "name": "Mapping",
                                        "src": "1234:27:19"
                                    }
                                ],
                                "id": 9322,
                                "name": "Mapping",
                                "src": "1215:47:19"
                            }
                        ],
                        "id": 9323,
                        "name": "VariableDeclaration",
                        "src": "1215:65:19"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "settlements",
                            "scope": 10930,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(bytes32 => struct ISettlor.settlement)",
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(bytes32 => struct ISettlor.settlement)"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "bytes32",
                                            "type": "bytes32"
                                        },
                                        "id": 9324,
                                        "name": "ElementaryTypeName",
                                        "src": "1349:7:19"
                                    },
                                    {
                                        "attributes": {
                                            "name": "ISettlor.settlement",
                                            "referencedDeclaration": 12173,
                                            "type": "struct ISettlor.settlement"
                                        },
                                        "id": 9325,
                                        "name": "UserDefinedTypeName",
                                        "src": "1360:19:19"
                                    }
                                ],
                                "id": 9326,
                                "name": "Mapping",
                                "src": "1341:39:19"
                            }
                        ],
                        "id": 9327,
                        "name": "VariableDeclaration",
                        "src": "1341:51:19"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "trades",
                            "scope": 10930,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(bytes32 => bytes32[])",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(bytes32 => bytes32[])"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "bytes32",
                                            "type": "bytes32"
                                        },
                                        "id": 9328,
                                        "name": "ElementaryTypeName",
                                        "src": "1472:7:19"
                                    },
                                    {
                                        "attributes": {
                                            "type": "bytes32[]"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 9329,
                                                "name": "ElementaryTypeName",
                                                "src": "1483:7:19"
                                            }
                                        ],
                                        "id": 9330,
                                        "name": "ArrayTypeName",
                                        "src": "1483:9:19"
                                    }
                                ],
                                "id": 9331,
                                "name": "Mapping",
                                "src": "1464:29:19"
                            }
                        ],
                        "id": 9332,
                        "name": "VariableDeclaration",
                        "src": "1464:44:19"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "pools",
                            "scope": 10930,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(address => bytes32)",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(address => bytes32)"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "type": "address"
                                        },
                                        "id": 9333,
                                        "name": "ElementaryTypeName",
                                        "src": "1561:7:19"
                                    },
                                    {
                                        "attributes": {
                                            "name": "bytes32",
                                            "type": "bytes32"
                                        },
                                        "id": 9334,
                                        "name": "ElementaryTypeName",
                                        "src": "1572:7:19"
                                    }
                                ],
                                "id": 9335,
                                "name": "Mapping",
                                "src": "1553:27:19"
                            }
                        ],
                        "id": 9336,
                        "name": "VariableDeclaration",
                        "src": "1553:41:19"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "poolAddress",
                            "scope": 10930,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(bytes32 => address)",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(bytes32 => address)"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "bytes32",
                                            "type": "bytes32"
                                        },
                                        "id": 9337,
                                        "name": "ElementaryTypeName",
                                        "src": "1647:7:19"
                                    },
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "stateMutability": "nonpayable",
                                            "type": "address"
                                        },
                                        "id": 9338,
                                        "name": "ElementaryTypeName",
                                        "src": "1658:7:19"
                                    }
                                ],
                                "id": 9339,
                                "name": "Mapping",
                                "src": "1639:27:19"
                            }
                        ],
                        "id": 9340,
                        "name": "VariableDeclaration",
                        "src": "1639:47:19"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "poolSecurity",
                            "scope": 10930,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(bytes32 => address)",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(bytes32 => address)"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "bytes32",
                                            "type": "bytes32"
                                        },
                                        "id": 9341,
                                        "name": "ElementaryTypeName",
                                        "src": "1748:7:19"
                                    },
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "stateMutability": "nonpayable",
                                            "type": "address"
                                        },
                                        "id": 9342,
                                        "name": "ElementaryTypeName",
                                        "src": "1759:7:19"
                                    }
                                ],
                                "id": 9343,
                                "name": "Mapping",
                                "src": "1740:27:19"
                            }
                        ],
                        "id": 9344,
                        "name": "VariableDeclaration",
                        "src": "1740:48:19"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "issuer",
                            "scope": 10930,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(bytes32 => address)",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(bytes32 => address)"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "bytes32",
                                            "type": "bytes32"
                                        },
                                        "id": 9345,
                                        "name": "ElementaryTypeName",
                                        "src": "1835:7:19"
                                    },
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "stateMutability": "nonpayable",
                                            "type": "address"
                                        },
                                        "id": 9346,
                                        "name": "ElementaryTypeName",
                                        "src": "1846:7:19"
                                    }
                                ],
                                "id": 9347,
                                "name": "Mapping",
                                "src": "1827:27:19"
                            }
                        ],
                        "id": 9348,
                        "name": "VariableDeclaration",
                        "src": "1827:42:19"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "investors",
                            "scope": 10930,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(bytes32 => struct ISettlor.subscriptions[])",
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(bytes32 => struct ISettlor.subscriptions[])"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "bytes32",
                                            "type": "bytes32"
                                        },
                                        "id": 9349,
                                        "name": "ElementaryTypeName",
                                        "src": "1919:7:19"
                                    },
                                    {
                                        "attributes": {
                                            "type": "struct ISettlor.subscriptions[]"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "subscriptions",
                                                    "referencedDeclaration": 12146,
                                                    "type": "struct ISettlor.subscriptions"
                                                },
                                                "id": 9350,
                                                "name": "UserDefinedTypeName",
                                                "src": "1930:13:19"
                                            }
                                        ],
                                        "id": 9351,
                                        "name": "ArrayTypeName",
                                        "src": "1930:15:19"
                                    }
                                ],
                                "id": 9352,
                                "name": "Mapping",
                                "src": "1911:35:19"
                            }
                        ],
                        "id": 9353,
                        "name": "VariableDeclaration",
                        "src": "1911:54:19"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "fees",
                            "scope": 10930,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "mapping(address => uint256)",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "type": "mapping(address => uint256)"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "name": "address",
                                            "type": "address"
                                        },
                                        "id": 9354,
                                        "name": "ElementaryTypeName",
                                        "src": "2035:7:19"
                                    },
                                    {
                                        "attributes": {
                                            "name": "uint256",
                                            "type": "uint256"
                                        },
                                        "id": 9355,
                                        "name": "ElementaryTypeName",
                                        "src": "2046:7:19"
                                    }
                                ],
                                "id": 9356,
                                "name": "Mapping",
                                "src": "2027:27:19"
                            }
                        ],
                        "id": 9357,
                        "name": "VariableDeclaration",
                        "src": "2027:40:19"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "client",
                            "scope": 10930,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "contract VerifiedClient",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "VerifiedClient",
                                    "referencedDeclaration": 12414,
                                    "type": "contract VerifiedClient"
                                },
                                "id": 9358,
                                "name": "UserDefinedTypeName",
                                "src": "2123:14:19"
                            }
                        ],
                        "id": 9359,
                        "name": "VariableDeclaration",
                        "src": "2123:29:19"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "products",
                            "scope": 10930,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "contract IFactory",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "IFactory",
                                    "referencedDeclaration": 11117,
                                    "type": "contract IFactory"
                                },
                                "id": 9360,
                                "name": "UserDefinedTypeName",
                                "src": "2267:8:19"
                            }
                        ],
                        "id": 9361,
                        "name": "VariableDeclaration",
                        "src": "2267:25:19"
                    },
                    {
                        "attributes": {
                            "constant": false,
                            "mutability": "mutable",
                            "name": "distribution",
                            "scope": 10930,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "address",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "address",
                                    "stateMutability": "nonpayable",
                                    "type": "address"
                                },
                                "id": 9362,
                                "name": "ElementaryTypeName",
                                "src": "2299:7:19"
                            }
                        ],
                        "id": 9363,
                        "name": "VariableDeclaration",
                        "src": "2299:28:19"
                    },
                    {
                        "attributes": {
                            "constant": true,
                            "mutability": "constant",
                            "name": "_INITIAL_BPT_SUPPLY",
                            "scope": 10930,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "uint256",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "uint256",
                                    "type": "uint256"
                                },
                                "id": 9364,
                                "name": "ElementaryTypeName",
                                "src": "2334:7:19"
                            },
                            {
                                "attributes": {
                                    "commonType": {
                                        "typeIdentifier": "t_rational_5192296858534827628530496329220095_by_1",
                                        "typeString": "int_const 5192...(26 digits omitted)...0095"
                                    },
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "operator": "-",
                                    "type": "int_const 5192...(26 digits omitted)...0095"
                                },
                                "children": [
                                    {
                                        "attributes": {
                                            "commonType": {
                                                "typeIdentifier": "t_rational_5192296858534827628530496329220096_by_1",
                                                "typeString": "int_const 5192...(26 digits omitted)...0096"
                                            },
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "operator": "**",
                                            "type": "int_const 5192...(26 digits omitted)...0096"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "hexvalue": "32",
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "token": "number",
                                                    "type": "int_const 2",
                                                    "value": "2"
                                                },
                                                "id": 9365,
                                                "name": "Literal",
                                                "src": "2381:1:19"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isInlineArray": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "type": "int_const 112"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "313132",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "number",
                                                            "type": "int_const 112",
                                                            "value": "112"
                                                        },
                                                        "id": 9366,
                                                        "name": "Literal",
                                                        "src": "2385:3:19"
                                                    }
                                                ],
                                                "id": 9367,
                                                "name": "TupleExpression",
                                                "src": "2384:5:19"
                                            }
                                        ],
                                        "id": 9368,
                                        "name": "BinaryOperation",
                                        "src": "2381:8:19"
                                    },
                                    {
                                        "attributes": {
                                            "hexvalue": "31",
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "token": "number",
                                            "type": "int_const 1",
                                            "value": "1"
                                        },
                                        "id": 9369,
                                        "name": "Literal",
                                        "src": "2392:1:19"
                                    }
                                ],
                                "id": 9370,
                                "name": "BinaryOperation",
                                "src": "2381:12:19"
                            }
                        ],
                        "id": 9371,
                        "name": "VariableDeclaration",
                        "src": "2334:59:19"
                    },
                    {
                        "attributes": {
                            "constant": true,
                            "mutability": "constant",
                            "name": "_DEFAULT_MINIMUM_BPT",
                            "scope": 10930,
                            "stateVariable": true,
                            "storageLocation": "default",
                            "type": "uint256",
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "name": "uint256",
                                    "type": "uint256"
                                },
                                "id": 9372,
                                "name": "ElementaryTypeName",
                                "src": "2399:7:19"
                            },
                            {
                                "attributes": {
                                    "hexvalue": "316536",
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "token": "number",
                                    "type": "int_const 1000000",
                                    "value": "1e6"
                                },
                                "id": 9373,
                                "name": "Literal",
                                "src": "2447:3:19"
                            }
                        ],
                        "id": 9374,
                        "name": "VariableDeclaration",
                        "src": "2399:51:19"
                    },
                    {
                        "attributes": {
                            "anonymous": false,
                            "name": "tradeSettled"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "mutability": "mutable",
                                            "name": "poolid",
                                            "scope": 9398,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 9375,
                                                "name": "ElementaryTypeName",
                                                "src": "2486:7:19"
                                            }
                                        ],
                                        "id": 9376,
                                        "name": "VariableDeclaration",
                                        "src": "2486:22:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "transferor",
                                            "scope": 9398,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 9377,
                                                "name": "ElementaryTypeName",
                                                "src": "2518:7:19"
                                            }
                                        ],
                                        "id": 9378,
                                        "name": "VariableDeclaration",
                                        "src": "2518:18:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "transferee",
                                            "scope": 9398,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 9379,
                                                "name": "ElementaryTypeName",
                                                "src": "2546:7:19"
                                            }
                                        ],
                                        "id": 9380,
                                        "name": "VariableDeclaration",
                                        "src": "2546:18:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "unitsToTransfer",
                                            "scope": 9398,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 9381,
                                                "name": "ElementaryTypeName",
                                                "src": "2574:7:19"
                                            }
                                        ],
                                        "id": 9382,
                                        "name": "VariableDeclaration",
                                        "src": "2574:23:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "security",
                                            "scope": 9398,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 9383,
                                                "name": "ElementaryTypeName",
                                                "src": "2607:7:19"
                                            }
                                        ],
                                        "id": 9384,
                                        "name": "VariableDeclaration",
                                        "src": "2607:16:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "price",
                                            "scope": 9398,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 9385,
                                                "name": "ElementaryTypeName",
                                                "src": "2633:7:19"
                                            }
                                        ],
                                        "id": 9386,
                                        "name": "VariableDeclaration",
                                        "src": "2633:13:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "currency",
                                            "scope": 9398,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 9387,
                                                "name": "ElementaryTypeName",
                                                "src": "2656:7:19"
                                            }
                                        ],
                                        "id": 9388,
                                        "name": "VariableDeclaration",
                                        "src": "2656:16:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "settlementStatus",
                                            "scope": 9398,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 9389,
                                                "name": "ElementaryTypeName",
                                                "src": "2682:7:19"
                                            }
                                        ],
                                        "id": 9390,
                                        "name": "VariableDeclaration",
                                        "src": "2682:24:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "tradeRef",
                                            "scope": 9398,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 9391,
                                                "name": "ElementaryTypeName",
                                                "src": "2716:7:19"
                                            }
                                        ],
                                        "id": 9392,
                                        "name": "VariableDeclaration",
                                        "src": "2716:16:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "fee",
                                            "scope": 9398,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 9393,
                                                "name": "ElementaryTypeName",
                                                "src": "2742:7:19"
                                            }
                                        ],
                                        "id": 9394,
                                        "name": "VariableDeclaration",
                                        "src": "2742:11:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "timestamp",
                                            "scope": 9398,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 9395,
                                                "name": "ElementaryTypeName",
                                                "src": "2763:7:19"
                                            }
                                        ],
                                        "id": 9396,
                                        "name": "VariableDeclaration",
                                        "src": "2763:17:19"
                                    }
                                ],
                                "id": 9397,
                                "name": "ParameterList",
                                "src": "2475:311:19"
                            }
                        ],
                        "id": 9398,
                        "name": "EventDefinition",
                        "src": "2457:330:19"
                    },
                    {
                        "attributes": {
                            "anonymous": false,
                            "name": "subscribers"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "poolId",
                                            "scope": 9420,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 9399,
                                                "name": "ElementaryTypeName",
                                                "src": "2811:7:19"
                                            }
                                        ],
                                        "id": 9400,
                                        "name": "VariableDeclaration",
                                        "src": "2811:14:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "seller",
                                            "scope": 9420,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 9401,
                                                "name": "ElementaryTypeName",
                                                "src": "2827:7:19"
                                            }
                                        ],
                                        "id": 9402,
                                        "name": "VariableDeclaration",
                                        "src": "2827:14:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "investor",
                                            "scope": 9420,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 9403,
                                                "name": "ElementaryTypeName",
                                                "src": "2843:7:19"
                                            }
                                        ],
                                        "id": 9404,
                                        "name": "VariableDeclaration",
                                        "src": "2843:16:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "mutability": "mutable",
                                            "name": "securityTraded",
                                            "scope": 9420,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 9405,
                                                "name": "ElementaryTypeName",
                                                "src": "2886:7:19"
                                            }
                                        ],
                                        "id": 9406,
                                        "name": "VariableDeclaration",
                                        "src": "2886:30:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "currencySettled",
                                            "scope": 9420,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 9407,
                                                "name": "ElementaryTypeName",
                                                "src": "2918:7:19"
                                            }
                                        ],
                                        "id": 9408,
                                        "name": "VariableDeclaration",
                                        "src": "2918:23:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "amount",
                                            "scope": 9420,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 9409,
                                                "name": "ElementaryTypeName",
                                                "src": "2943:7:19"
                                            }
                                        ],
                                        "id": 9410,
                                        "name": "VariableDeclaration",
                                        "src": "2943:14:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "price",
                                            "scope": 9420,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 9411,
                                                "name": "ElementaryTypeName",
                                                "src": "2959:7:19"
                                            }
                                        ],
                                        "id": 9412,
                                        "name": "VariableDeclaration",
                                        "src": "2959:13:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "tradeRef",
                                            "scope": 9420,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 9413,
                                                "name": "ElementaryTypeName",
                                                "src": "2998:7:19"
                                            }
                                        ],
                                        "id": 9414,
                                        "name": "VariableDeclaration",
                                        "src": "2998:16:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "DPID",
                                            "scope": 9420,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 9415,
                                                "name": "ElementaryTypeName",
                                                "src": "3016:7:19"
                                            }
                                        ],
                                        "id": 9416,
                                        "name": "VariableDeclaration",
                                        "src": "3016:12:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "timestamp",
                                            "scope": 9420,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 9417,
                                                "name": "ElementaryTypeName",
                                                "src": "3030:7:19"
                                            }
                                        ],
                                        "id": 9418,
                                        "name": "VariableDeclaration",
                                        "src": "3030:17:19"
                                    }
                                ],
                                "id": 9419,
                                "name": "ParameterList",
                                "src": "2810:238:19"
                            }
                        ],
                        "id": 9420,
                        "name": "EventDefinition",
                        "src": "2793:256:19"
                    },
                    {
                        "attributes": {
                            "anonymous": false,
                            "name": "closures"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "mutability": "mutable",
                                            "name": "poolId",
                                            "scope": 9428,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 9421,
                                                "name": "ElementaryTypeName",
                                                "src": "3070:7:19"
                                            }
                                        ],
                                        "id": 9422,
                                        "name": "VariableDeclaration",
                                        "src": "3070:22:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "security",
                                            "scope": 9428,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 9423,
                                                "name": "ElementaryTypeName",
                                                "src": "3094:7:19"
                                            }
                                        ],
                                        "id": 9424,
                                        "name": "VariableDeclaration",
                                        "src": "3094:16:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "timestamp",
                                            "scope": 9428,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 9425,
                                                "name": "ElementaryTypeName",
                                                "src": "3112:7:19"
                                            }
                                        ],
                                        "id": 9426,
                                        "name": "VariableDeclaration",
                                        "src": "3112:17:19"
                                    }
                                ],
                                "id": 9427,
                                "name": "ParameterList",
                                "src": "3069:61:19"
                            }
                        ],
                        "id": 9428,
                        "name": "EventDefinition",
                        "src": "3055:76:19"
                    },
                    {
                        "attributes": {
                            "anonymous": false,
                            "name": "feecollection"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": true,
                                            "mutability": "mutable",
                                            "name": "platform",
                                            "scope": 9436,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 9429,
                                                "name": "ElementaryTypeName",
                                                "src": "3156:7:19"
                                            }
                                        ],
                                        "id": 9430,
                                        "name": "VariableDeclaration",
                                        "src": "3156:24:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "collection",
                                            "scope": 9436,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 9431,
                                                "name": "ElementaryTypeName",
                                                "src": "3182:7:19"
                                            }
                                        ],
                                        "id": 9432,
                                        "name": "VariableDeclaration",
                                        "src": "3182:18:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "indexed": false,
                                            "mutability": "mutable",
                                            "name": "timestamp",
                                            "scope": 9436,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 9433,
                                                "name": "ElementaryTypeName",
                                                "src": "3202:7:19"
                                            }
                                        ],
                                        "id": 9434,
                                        "name": "VariableDeclaration",
                                        "src": "3202:17:19"
                                    }
                                ],
                                "id": 9435,
                                "name": "ParameterList",
                                "src": "3155:65:19"
                            }
                        ],
                        "id": 9436,
                        "name": "EventDefinition",
                        "src": "3136:85:19"
                    },
                    {
                        "attributes": {
                            "name": "onlyIssueManager",
                            "virtual": false,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "sender",
                                            "scope": 9458,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 9437,
                                                "name": "ElementaryTypeName",
                                                "src": "3253:7:19"
                                            }
                                        ],
                                        "id": 9438,
                                        "name": "VariableDeclaration",
                                        "src": "3253:14:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "security",
                                            "scope": 9458,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 9439,
                                                "name": "ElementaryTypeName",
                                                "src": "3269:7:19"
                                            }
                                        ],
                                        "id": 9440,
                                        "name": "VariableDeclaration",
                                        "src": "3269:16:19"
                                    }
                                ],
                                "id": 9441,
                                "name": "ParameterList",
                                "src": "3252:34:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                9443
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "DP",
                                                    "scope": 9457,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "address",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 9442,
                                                        "name": "ElementaryTypeName",
                                                        "src": "3296:7:19"
                                                    }
                                                ],
                                                "id": 9443,
                                                "name": "VariableDeclaration",
                                                "src": "3296:10:19"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "address",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "getDP",
                                                            "referencedDeclaration": 11116,
                                                            "type": "function (address) view external returns (address)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9361,
                                                                    "type": "contract IFactory",
                                                                    "value": "products"
                                                                },
                                                                "id": 9444,
                                                                "name": "Identifier",
                                                                "src": "3309:8:19"
                                                            }
                                                        ],
                                                        "id": 9445,
                                                        "name": "MemberAccess",
                                                        "src": "3309:14:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9440,
                                                            "type": "address",
                                                            "value": "security"
                                                        },
                                                        "id": 9446,
                                                        "name": "Identifier",
                                                        "src": "3324:8:19"
                                                    }
                                                ],
                                                "id": 9447,
                                                "name": "FunctionCall",
                                                "src": "3309:24:19"
                                            }
                                        ],
                                        "id": 9448,
                                        "name": "VariableDeclarationStatement",
                                        "src": "3296:37:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_5469c551907b09fc0ad4c47784eb4c2d1ad33bdbc0af57eae1b771927c4d0118",
                                                                    "typeString": "literal_string \"Only issue managers\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 9449,
                                                        "name": "Identifier",
                                                        "src": "3343:7:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9443,
                                                                    "type": "address",
                                                                    "value": "DP"
                                                                },
                                                                "id": 9450,
                                                                "name": "Identifier",
                                                                "src": "3351:2:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9438,
                                                                    "type": "address",
                                                                    "value": "sender"
                                                                },
                                                                "id": 9451,
                                                                "name": "Identifier",
                                                                "src": "3355:6:19"
                                                            }
                                                        ],
                                                        "id": 9452,
                                                        "name": "BinaryOperation",
                                                        "src": "3351:10:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "4f6e6c79206973737565206d616e6167657273",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "string",
                                                            "type": "literal_string \"Only issue managers\"",
                                                            "value": "Only issue managers"
                                                        },
                                                        "id": 9453,
                                                        "name": "Literal",
                                                        "src": "3363:21:19"
                                                    }
                                                ],
                                                "id": 9454,
                                                "name": "FunctionCall",
                                                "src": "3343:42:19"
                                            }
                                        ],
                                        "id": 9455,
                                        "name": "ExpressionStatement",
                                        "src": "3343:42:19"
                                    },
                                    {
                                        "id": 9456,
                                        "name": "PlaceholderStatement",
                                        "src": "3395:1:19"
                                    }
                                ],
                                "id": 9457,
                                "name": "Block",
                                "src": "3286:117:19"
                            }
                        ],
                        "id": 9458,
                        "name": "ModifierDefinition",
                        "src": "3227:176:19"
                    },
                    {
                        "attributes": {
                            "name": "onlyDP",
                            "virtual": false,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "sender",
                                            "scope": 9478,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 9459,
                                                "name": "ElementaryTypeName",
                                                "src": "3425:7:19"
                                            }
                                        ],
                                        "id": 9460,
                                        "name": "VariableDeclaration",
                                        "src": "3425:14:19"
                                    }
                                ],
                                "id": 9461,
                                "name": "ParameterList",
                                "src": "3424:16:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                9463,
                                                null,
                                                null
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "role",
                                                    "scope": 9477,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "bytes32",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "bytes32",
                                                            "type": "bytes32"
                                                        },
                                                        "id": 9462,
                                                        "name": "ElementaryTypeName",
                                                        "src": "3451:7:19"
                                                    }
                                                ],
                                                "id": 9463,
                                                "name": "VariableDeclaration",
                                                "src": "3451:12:19"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "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": 12315,
                                                            "type": "function (address) view external returns (bytes32,bytes32,bytes32)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9359,
                                                                    "type": "contract VerifiedClient",
                                                                    "value": "client"
                                                                },
                                                                "id": 9464,
                                                                "name": "Identifier",
                                                                "src": "3471:6:19"
                                                            }
                                                        ],
                                                        "id": 9465,
                                                        "name": "MemberAccess",
                                                        "src": "3471:14:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9460,
                                                            "type": "address",
                                                            "value": "sender"
                                                        },
                                                        "id": 9466,
                                                        "name": "Identifier",
                                                        "src": "3486:6:19"
                                                    }
                                                ],
                                                "id": 9467,
                                                "name": "FunctionCall",
                                                "src": "3471:22:19"
                                            }
                                        ],
                                        "id": 9468,
                                        "name": "VariableDeclarationStatement",
                                        "src": "3450:43:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_894a32609b0720c7aeffef479ce5ac9284470305252de585494f8b33c6ad3c3f",
                                                                    "typeString": "literal_string \"Only Depositary participant\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 9469,
                                                        "name": "Identifier",
                                                        "src": "3503:7:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9463,
                                                                    "type": "bytes32",
                                                                    "value": "role"
                                                                },
                                                                "id": 9470,
                                                                "name": "Identifier",
                                                                "src": "3511:4:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "hexvalue": "4450",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "token": "string",
                                                                    "type": "literal_string \"DP\"",
                                                                    "value": "DP"
                                                                },
                                                                "id": 9471,
                                                                "name": "Literal",
                                                                "src": "3517:4:19"
                                                            }
                                                        ],
                                                        "id": 9472,
                                                        "name": "BinaryOperation",
                                                        "src": "3511:10:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "4f6e6c79204465706f736974617279207061727469636970616e74",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "string",
                                                            "type": "literal_string \"Only Depositary participant\"",
                                                            "value": "Only Depositary participant"
                                                        },
                                                        "id": 9473,
                                                        "name": "Literal",
                                                        "src": "3523:29:19"
                                                    }
                                                ],
                                                "id": 9474,
                                                "name": "FunctionCall",
                                                "src": "3503:50:19"
                                            }
                                        ],
                                        "id": 9475,
                                        "name": "ExpressionStatement",
                                        "src": "3503:50:19"
                                    },
                                    {
                                        "id": 9476,
                                        "name": "PlaceholderStatement",
                                        "src": "3563:1:19"
                                    }
                                ],
                                "id": 9477,
                                "name": "Block",
                                "src": "3440:131:19"
                            }
                        ],
                        "id": 9478,
                        "name": "ModifierDefinition",
                        "src": "3409:162:19"
                    },
                    {
                        "attributes": {
                            "functionSelector": "a2dc2ab7",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "initialize",
                            "scope": 10930,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "text": "Initializes this asset management contract\n@param  _factory            reference to the secondary issue pool factory contract\n@param  _issueFeePercentage  percentage of trading fee to be charged by the asset manager\n@param  _client             address of Verified client contract\n@param  _vault              address of balancer vault"
                                },
                                "id": 9479,
                                "name": "StructuredDocumentation",
                                "src": "3577:385:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_factory",
                                            "scope": 9525,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 9480,
                                                "name": "ElementaryTypeName",
                                                "src": "3987:7:19"
                                            }
                                        ],
                                        "id": 9481,
                                        "name": "VariableDeclaration",
                                        "src": "3987:16:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_issueFeePercentage",
                                            "scope": 9525,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 9482,
                                                "name": "ElementaryTypeName",
                                                "src": "4005:7:19"
                                            }
                                        ],
                                        "id": 9483,
                                        "name": "VariableDeclaration",
                                        "src": "4005:27:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_client",
                                            "scope": 9525,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 9484,
                                                "name": "ElementaryTypeName",
                                                "src": "4034:7:19"
                                            }
                                        ],
                                        "id": 9485,
                                        "name": "VariableDeclaration",
                                        "src": "4034:15:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_vault",
                                            "scope": 9525,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 9486,
                                                "name": "ElementaryTypeName",
                                                "src": "4051:7:19"
                                            }
                                        ],
                                        "id": 9487,
                                        "name": "VariableDeclaration",
                                        "src": "4051:14:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_distribution",
                                            "scope": 9525,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 9488,
                                                "name": "ElementaryTypeName",
                                                "src": "4067:7:19"
                                            }
                                        ],
                                        "id": 9489,
                                        "name": "VariableDeclaration",
                                        "src": "4067:21:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_products",
                                            "scope": 9525,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 9490,
                                                "name": "ElementaryTypeName",
                                                "src": "4090:7:19"
                                            }
                                        ],
                                        "id": 9491,
                                        "name": "VariableDeclaration",
                                        "src": "4090:17:19"
                                    }
                                ],
                                "id": 9492,
                                "name": "ParameterList",
                                "src": "3986:122:19"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 9495,
                                "name": "ParameterList",
                                "src": "4126:0:19"
                            },
                            {
                                "attributes": {},
                                "children": [
                                    {
                                        "attributes": {
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 2993,
                                            "type": "modifier ()",
                                            "value": "onlyOwner"
                                        },
                                        "id": 9493,
                                        "name": "Identifier",
                                        "src": "4116:9:19"
                                    }
                                ],
                                "id": 9494,
                                "name": "ModifierInvocation",
                                "src": "4116:9:19"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9311,
                                                            "type": "address",
                                                            "value": "factory"
                                                        },
                                                        "id": 9496,
                                                        "name": "Identifier",
                                                        "src": "4136:7:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9481,
                                                            "type": "address",
                                                            "value": "_factory"
                                                        },
                                                        "id": 9497,
                                                        "name": "Identifier",
                                                        "src": "4146:8:19"
                                                    }
                                                ],
                                                "id": 9498,
                                                "name": "Assignment",
                                                "src": "4136:18:19"
                                            }
                                        ],
                                        "id": 9499,
                                        "name": "ExpressionStatement",
                                        "src": "4136:18:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9315,
                                                            "type": "uint256",
                                                            "value": "fee"
                                                        },
                                                        "id": 9500,
                                                        "name": "Identifier",
                                                        "src": "4164:3:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9483,
                                                            "type": "uint256",
                                                            "value": "_issueFeePercentage"
                                                        },
                                                        "id": 9501,
                                                        "name": "Identifier",
                                                        "src": "4170:19:19"
                                                    }
                                                ],
                                                "id": 9502,
                                                "name": "Assignment",
                                                "src": "4164:25:19"
                                            }
                                        ],
                                        "id": 9503,
                                        "name": "ExpressionStatement",
                                        "src": "4164:25:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "contract VerifiedClient"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9359,
                                                            "type": "contract VerifiedClient",
                                                            "value": "client"
                                                        },
                                                        "id": 9504,
                                                        "name": "Identifier",
                                                        "src": "4199:6:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "contract VerifiedClient",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 12414,
                                                                    "type": "type(contract VerifiedClient)",
                                                                    "value": "VerifiedClient"
                                                                },
                                                                "id": 9505,
                                                                "name": "Identifier",
                                                                "src": "4208:14:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9485,
                                                                    "type": "address",
                                                                    "value": "_client"
                                                                },
                                                                "id": 9506,
                                                                "name": "Identifier",
                                                                "src": "4223:7:19"
                                                            }
                                                        ],
                                                        "id": 9507,
                                                        "name": "FunctionCall",
                                                        "src": "4208:23:19"
                                                    }
                                                ],
                                                "id": 9508,
                                                "name": "Assignment",
                                                "src": "4199:32:19"
                                            }
                                        ],
                                        "id": 9509,
                                        "name": "ExpressionStatement",
                                        "src": "4199:32:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9313,
                                                            "type": "address",
                                                            "value": "vault"
                                                        },
                                                        "id": 9510,
                                                        "name": "Identifier",
                                                        "src": "4241:5:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9487,
                                                            "type": "address",
                                                            "value": "_vault"
                                                        },
                                                        "id": 9511,
                                                        "name": "Identifier",
                                                        "src": "4249:6:19"
                                                    }
                                                ],
                                                "id": 9512,
                                                "name": "Assignment",
                                                "src": "4241:14:19"
                                            }
                                        ],
                                        "id": 9513,
                                        "name": "ExpressionStatement",
                                        "src": "4241:14:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "contract IFactory"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9361,
                                                            "type": "contract IFactory",
                                                            "value": "products"
                                                        },
                                                        "id": 9514,
                                                        "name": "Identifier",
                                                        "src": "4265:8:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "contract IFactory",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 11117,
                                                                    "type": "type(contract IFactory)",
                                                                    "value": "IFactory"
                                                                },
                                                                "id": 9515,
                                                                "name": "Identifier",
                                                                "src": "4276:8:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9491,
                                                                    "type": "address",
                                                                    "value": "_products"
                                                                },
                                                                "id": 9516,
                                                                "name": "Identifier",
                                                                "src": "4285:9:19"
                                                            }
                                                        ],
                                                        "id": 9517,
                                                        "name": "FunctionCall",
                                                        "src": "4276:19:19"
                                                    }
                                                ],
                                                "id": 9518,
                                                "name": "Assignment",
                                                "src": "4265:30:19"
                                            }
                                        ],
                                        "id": 9519,
                                        "name": "ExpressionStatement",
                                        "src": "4265:30:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9363,
                                                            "type": "address",
                                                            "value": "distribution"
                                                        },
                                                        "id": 9520,
                                                        "name": "Identifier",
                                                        "src": "4305:12:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9489,
                                                            "type": "address",
                                                            "value": "_distribution"
                                                        },
                                                        "id": 9521,
                                                        "name": "Identifier",
                                                        "src": "4320:13:19"
                                                    }
                                                ],
                                                "id": 9522,
                                                "name": "Assignment",
                                                "src": "4305:28:19"
                                            }
                                        ],
                                        "id": 9523,
                                        "name": "ExpressionStatement",
                                        "src": "4305:28:19"
                                    }
                                ],
                                "id": 9524,
                                "name": "Block",
                                "src": "4126:214:19"
                            }
                        ],
                        "id": 9525,
                        "name": "FunctionDefinition",
                        "src": "3967:373:19"
                    },
                    {
                        "attributes": {
                            "functionSelector": "69fe0e2d",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "setFee",
                            "scope": 10930,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "public"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_fee",
                                            "scope": 9537,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 9526,
                                                "name": "ElementaryTypeName",
                                                "src": "4362:7:19"
                                            }
                                        ],
                                        "id": 9527,
                                        "name": "VariableDeclaration",
                                        "src": "4362:12:19"
                                    }
                                ],
                                "id": 9528,
                                "name": "ParameterList",
                                "src": "4361:14:19"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 9531,
                                "name": "ParameterList",
                                "src": "4393:0:19"
                            },
                            {
                                "attributes": {},
                                "children": [
                                    {
                                        "attributes": {
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 2993,
                                            "type": "modifier ()",
                                            "value": "onlyOwner"
                                        },
                                        "id": 9529,
                                        "name": "Identifier",
                                        "src": "4383:9:19"
                                    }
                                ],
                                "id": 9530,
                                "name": "ModifierInvocation",
                                "src": "4383:9:19"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9315,
                                                            "type": "uint256",
                                                            "value": "fee"
                                                        },
                                                        "id": 9532,
                                                        "name": "Identifier",
                                                        "src": "4403:3:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9527,
                                                            "type": "uint256",
                                                            "value": "_fee"
                                                        },
                                                        "id": 9533,
                                                        "name": "Identifier",
                                                        "src": "4409:4:19"
                                                    }
                                                ],
                                                "id": 9534,
                                                "name": "Assignment",
                                                "src": "4403:10:19"
                                            }
                                        ],
                                        "id": 9535,
                                        "name": "ExpressionStatement",
                                        "src": "4403:10:19"
                                    }
                                ],
                                "id": 9536,
                                "name": "Block",
                                "src": "4393:27:19"
                            }
                        ],
                        "id": 9537,
                        "name": "FunctionDefinition",
                        "src": "4346:74:19"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                12188
                            ],
                            "functionSelector": "905ec5ce",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "issueSecondary",
                            "scope": 10930,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "text": "Joins existing (secondary) tokenized assets into pool by primary issue token holders\n@param  security            reference to asset issued\n@param  currency            reference to cash (settlement) token\n@param  securityOutstanding total number of securities outstanding\n@param  securityOffered     amount of security to issue\n@param  minSecurityOrder    minimum order size of securities issued in pool\n@param  cashAmount          amount of currency issued in pool"
                                },
                                "id": 9538,
                                "name": "StructuredDocumentation",
                                "src": "4430:532:19"
                            },
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 9552,
                                "name": "OverrideSpecifier",
                                "src": "5127:8:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "security",
                                            "scope": 9805,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 9539,
                                                "name": "ElementaryTypeName",
                                                "src": "4991:7:19"
                                            }
                                        ],
                                        "id": 9540,
                                        "name": "VariableDeclaration",
                                        "src": "4991:16:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "currency",
                                            "scope": 9805,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 9541,
                                                "name": "ElementaryTypeName",
                                                "src": "5009:7:19"
                                            }
                                        ],
                                        "id": 9542,
                                        "name": "VariableDeclaration",
                                        "src": "5009:16:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "securityOutstanding",
                                            "scope": 9805,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 9543,
                                                "name": "ElementaryTypeName",
                                                "src": "5027:7:19"
                                            }
                                        ],
                                        "id": 9544,
                                        "name": "VariableDeclaration",
                                        "src": "5027:27:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "securityOffered",
                                            "scope": 9805,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 9545,
                                                "name": "ElementaryTypeName",
                                                "src": "5056:7:19"
                                            }
                                        ],
                                        "id": 9546,
                                        "name": "VariableDeclaration",
                                        "src": "5056:23:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "minSecurityOrder",
                                            "scope": 9805,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 9547,
                                                "name": "ElementaryTypeName",
                                                "src": "5081:7:19"
                                            }
                                        ],
                                        "id": 9548,
                                        "name": "VariableDeclaration",
                                        "src": "5081:24:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "cashAmount",
                                            "scope": 9805,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 9549,
                                                "name": "ElementaryTypeName",
                                                "src": "5107:7:19"
                                            }
                                        ],
                                        "id": 9550,
                                        "name": "VariableDeclaration",
                                        "src": "5107:18:19"
                                    }
                                ],
                                "id": 9551,
                                "name": "ParameterList",
                                "src": "4990:136:19"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 9557,
                                "name": "ParameterList",
                                "src": "5163:0:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 9478,
                                            "type": "modifier (address)",
                                            "value": "onlyDP"
                                        },
                                        "id": 9553,
                                        "name": "Identifier",
                                        "src": "5145:6:19"
                                    },
                                    {
                                        "attributes": {
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "member_name": "sender",
                                            "type": "address payable"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": -15,
                                                    "type": "msg",
                                                    "value": "msg"
                                                },
                                                "id": 9554,
                                                "name": "Identifier",
                                                "src": "5152:3:19"
                                            }
                                        ],
                                        "id": 9555,
                                        "name": "MemberAccess",
                                        "src": "5152:10:19"
                                    }
                                ],
                                "id": 9556,
                                "name": "ModifierInvocation",
                                "src": "5145:18:19"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_d05be564bd54ad6151c2e50eb2ac86d2647726f6cf824747fecbebc8bc5730bc",
                                                                    "typeString": "literal_string \"No balance to create pool\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 9558,
                                                        "name": "Identifier",
                                                        "src": "5173:7:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "&&",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_bool",
                                                                        "typeString": "bool"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "&&",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "commonType": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": ">=",
                                                                            "type": "bool"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "uint256",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address_payable",
                                                                                                    "typeString": "address payable"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "balanceOf",
                                                                                            "referencedDeclaration": 2877,
                                                                                            "type": "function (address) view external returns (uint256)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "tryCall": false,
                                                                                                    "type": "contract IERC20",
                                                                                                    "type_conversion": true
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                }
                                                                                                            ],
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 2938,
                                                                                                            "type": "type(contract IERC20)",
                                                                                                            "value": "IERC20"
                                                                                                        },
                                                                                                        "id": 9559,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "5181:6:19"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 9540,
                                                                                                            "type": "address",
                                                                                                            "value": "security"
                                                                                                        },
                                                                                                        "id": 9560,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "5188:8:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 9561,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "5181:16:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 9562,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "5181:26:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "sender",
                                                                                            "type": "address payable"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": -15,
                                                                                                    "type": "msg",
                                                                                                    "value": "msg"
                                                                                                },
                                                                                                "id": 9563,
                                                                                                "name": "Identifier",
                                                                                                "src": "5208:3:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 9564,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "5208:10:19"
                                                                                    }
                                                                                ],
                                                                                "id": 9565,
                                                                                "name": "FunctionCall",
                                                                                "src": "5181:38:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 9546,
                                                                                    "type": "uint256",
                                                                                    "value": "securityOffered"
                                                                                },
                                                                                "id": 9566,
                                                                                "name": "Identifier",
                                                                                "src": "5221:15:19"
                                                                            }
                                                                        ],
                                                                        "id": 9567,
                                                                        "name": "BinaryOperation",
                                                                        "src": "5181:55:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "commonType": {
                                                                                "typeIdentifier": "t_uint256",
                                                                                "typeString": "uint256"
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": ">=",
                                                                            "type": "bool"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 9546,
                                                                                    "type": "uint256",
                                                                                    "value": "securityOffered"
                                                                                },
                                                                                "id": 9568,
                                                                                "name": "Identifier",
                                                                                "src": "5240:15:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 9548,
                                                                                    "type": "uint256",
                                                                                    "value": "minSecurityOrder"
                                                                                },
                                                                                "id": 9569,
                                                                                "name": "Identifier",
                                                                                "src": "5257:16:19"
                                                                            }
                                                                        ],
                                                                        "id": 9570,
                                                                        "name": "BinaryOperation",
                                                                        "src": "5240:33:19"
                                                                    }
                                                                ],
                                                                "id": 9571,
                                                                "name": "BinaryOperation",
                                                                "src": "5181:92:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": ">=",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address_payable",
                                                                                            "typeString": "address payable"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "balanceOf",
                                                                                    "referencedDeclaration": 2877,
                                                                                    "type": "function (address) view external returns (uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "tryCall": false,
                                                                                            "type": "contract IERC20",
                                                                                            "type_conversion": true
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 2938,
                                                                                                    "type": "type(contract IERC20)",
                                                                                                    "value": "IERC20"
                                                                                                },
                                                                                                "id": 9572,
                                                                                                "name": "Identifier",
                                                                                                "src": "5277:6:19"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 9542,
                                                                                                    "type": "address",
                                                                                                    "value": "currency"
                                                                                                },
                                                                                                "id": 9573,
                                                                                                "name": "Identifier",
                                                                                                "src": "5284:8:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 9574,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "5277:16:19"
                                                                                    }
                                                                                ],
                                                                                "id": 9575,
                                                                                "name": "MemberAccess",
                                                                                "src": "5277:26:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "sender",
                                                                                    "type": "address payable"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": -15,
                                                                                            "type": "msg",
                                                                                            "value": "msg"
                                                                                        },
                                                                                        "id": 9576,
                                                                                        "name": "Identifier",
                                                                                        "src": "5304:3:19"
                                                                                    }
                                                                                ],
                                                                                "id": 9577,
                                                                                "name": "MemberAccess",
                                                                                "src": "5304:10:19"
                                                                            }
                                                                        ],
                                                                        "id": 9578,
                                                                        "name": "FunctionCall",
                                                                        "src": "5277:38:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9550,
                                                                            "type": "uint256",
                                                                            "value": "cashAmount"
                                                                        },
                                                                        "id": 9579,
                                                                        "name": "Identifier",
                                                                        "src": "5317:10:19"
                                                                    }
                                                                ],
                                                                "id": 9580,
                                                                "name": "BinaryOperation",
                                                                "src": "5277:50:19"
                                                            }
                                                        ],
                                                        "id": 9581,
                                                        "name": "BinaryOperation",
                                                        "src": "5181:146:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "4e6f2062616c616e636520746f2063726561746520706f6f6c",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "string",
                                                            "type": "literal_string \"No balance to create pool\"",
                                                            "value": "No balance to create pool"
                                                        },
                                                        "id": 9582,
                                                        "name": "Literal",
                                                        "src": "5346:27:19"
                                                    }
                                                ],
                                                "id": 9583,
                                                "name": "FunctionCall",
                                                "src": "5173:201:19"
                                            }
                                        ],
                                        "id": 9584,
                                        "name": "ExpressionStatement",
                                        "src": "5173:201:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "bool",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "transferFrom",
                                                            "referencedDeclaration": 2582,
                                                            "type": "function (address,address,uint256) external returns (bool)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract ERC20",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2860,
                                                                            "type": "type(contract ERC20)",
                                                                            "value": "ERC20"
                                                                        },
                                                                        "id": 9585,
                                                                        "name": "Identifier",
                                                                        "src": "5384:5:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9542,
                                                                            "type": "address",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 9586,
                                                                        "name": "Identifier",
                                                                        "src": "5390:8:19"
                                                                    }
                                                                ],
                                                                "id": 9587,
                                                                "name": "FunctionCall",
                                                                "src": "5384:15:19"
                                                            }
                                                        ],
                                                        "id": 9588,
                                                        "name": "MemberAccess",
                                                        "src": "5384:28:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "sender",
                                                            "type": "address payable"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": -15,
                                                                    "type": "msg",
                                                                    "value": "msg"
                                                                },
                                                                "id": 9589,
                                                                "name": "Identifier",
                                                                "src": "5413:3:19"
                                                            }
                                                        ],
                                                        "id": 9590,
                                                        "name": "MemberAccess",
                                                        "src": "5413:10:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "address",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_contract$_SecondaryIssueManager_$10930",
                                                                            "typeString": "contract SecondaryIssueManager"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(address)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "address"
                                                                        },
                                                                        "id": 9591,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "5425:7:19"
                                                                    }
                                                                ],
                                                                "id": 9592,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "5425:7:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": -28,
                                                                    "type": "contract SecondaryIssueManager",
                                                                    "value": "this"
                                                                },
                                                                "id": 9593,
                                                                "name": "Identifier",
                                                                "src": "5433:4:19"
                                                            }
                                                        ],
                                                        "id": 9594,
                                                        "name": "FunctionCall",
                                                        "src": "5425:13:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9550,
                                                            "type": "uint256",
                                                            "value": "cashAmount"
                                                        },
                                                        "id": 9595,
                                                        "name": "Identifier",
                                                        "src": "5440:10:19"
                                                    }
                                                ],
                                                "id": 9596,
                                                "name": "FunctionCall",
                                                "src": "5384:67:19"
                                            }
                                        ],
                                        "id": 9597,
                                        "name": "ExpressionStatement",
                                        "src": "5384:67:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "bool",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "transferFrom",
                                                            "referencedDeclaration": 2582,
                                                            "type": "function (address,address,uint256) external returns (bool)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract ERC20",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2860,
                                                                            "type": "type(contract ERC20)",
                                                                            "value": "ERC20"
                                                                        },
                                                                        "id": 9598,
                                                                        "name": "Identifier",
                                                                        "src": "5461:5:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9540,
                                                                            "type": "address",
                                                                            "value": "security"
                                                                        },
                                                                        "id": 9599,
                                                                        "name": "Identifier",
                                                                        "src": "5467:8:19"
                                                                    }
                                                                ],
                                                                "id": 9600,
                                                                "name": "FunctionCall",
                                                                "src": "5461:15:19"
                                                            }
                                                        ],
                                                        "id": 9601,
                                                        "name": "MemberAccess",
                                                        "src": "5461:28:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "sender",
                                                            "type": "address payable"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": -15,
                                                                    "type": "msg",
                                                                    "value": "msg"
                                                                },
                                                                "id": 9602,
                                                                "name": "Identifier",
                                                                "src": "5490:3:19"
                                                            }
                                                        ],
                                                        "id": 9603,
                                                        "name": "MemberAccess",
                                                        "src": "5490:10:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "address",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_contract$_SecondaryIssueManager_$10930",
                                                                            "typeString": "contract SecondaryIssueManager"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(address)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "address"
                                                                        },
                                                                        "id": 9604,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "5502:7:19"
                                                                    }
                                                                ],
                                                                "id": 9605,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "5502:7:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": -28,
                                                                    "type": "contract SecondaryIssueManager",
                                                                    "value": "this"
                                                                },
                                                                "id": 9606,
                                                                "name": "Identifier",
                                                                "src": "5510:4:19"
                                                            }
                                                        ],
                                                        "id": 9607,
                                                        "name": "FunctionCall",
                                                        "src": "5502:13:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9546,
                                                            "type": "uint256",
                                                            "value": "securityOffered"
                                                        },
                                                        "id": 9608,
                                                        "name": "Identifier",
                                                        "src": "5517:15:19"
                                                    }
                                                ],
                                                "id": 9609,
                                                "name": "FunctionCall",
                                                "src": "5461:72:19"
                                            }
                                        ],
                                        "id": 9610,
                                        "name": "ExpressionStatement",
                                        "src": "5461:72:19"
                                    },
                                    {
                                        "attributes": {},
                                        "children": [
                                            {
                                                "attributes": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "!=",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "address",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "getSecurity",
                                                                    "referencedDeclaration": 11075,
                                                                    "type": "function (address) view external returns (address)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9361,
                                                                            "type": "contract IFactory",
                                                                            "value": "products"
                                                                        },
                                                                        "id": 9611,
                                                                        "name": "Identifier",
                                                                        "src": "5546:8:19"
                                                                    }
                                                                ],
                                                                "id": 9612,
                                                                "name": "MemberAccess",
                                                                "src": "5546:20:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9540,
                                                                    "type": "address",
                                                                    "value": "security"
                                                                },
                                                                "id": 9613,
                                                                "name": "Identifier",
                                                                "src": "5567:8:19"
                                                            }
                                                        ],
                                                        "id": 9614,
                                                        "name": "FunctionCall",
                                                        "src": "5546:30:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9540,
                                                            "type": "address",
                                                            "value": "security"
                                                        },
                                                        "id": 9615,
                                                        "name": "Identifier",
                                                        "src": "5578:8:19"
                                                    }
                                                ],
                                                "id": 9616,
                                                "name": "BinaryOperation",
                                                "src": "5546:40:19"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "tuple()",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "whiteList",
                                                                            "referencedDeclaration": 12121,
                                                                            "type": "function (address,uint256) external"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "contract ISecurity",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 12122,
                                                                                            "type": "type(contract ISecurity)",
                                                                                            "value": "ISecurity"
                                                                                        },
                                                                                        "id": 9617,
                                                                                        "name": "Identifier",
                                                                                        "src": "5641:9:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 9540,
                                                                                            "type": "address",
                                                                                            "value": "security"
                                                                                        },
                                                                                        "id": 9618,
                                                                                        "name": "Identifier",
                                                                                        "src": "5651:8:19"
                                                                                    }
                                                                                ],
                                                                                "id": 9619,
                                                                                "name": "FunctionCall",
                                                                                "src": "5641:19:19"
                                                                            }
                                                                        ],
                                                                        "id": 9620,
                                                                        "name": "MemberAccess",
                                                                        "src": "5641:29:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9313,
                                                                            "type": "address",
                                                                            "value": "vault"
                                                                        },
                                                                        "id": 9621,
                                                                        "name": "Identifier",
                                                                        "src": "5671:5:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9544,
                                                                            "type": "uint256",
                                                                            "value": "securityOutstanding"
                                                                        },
                                                                        "id": 9622,
                                                                        "name": "Identifier",
                                                                        "src": "5678:19:19"
                                                                    }
                                                                ],
                                                                "id": 9623,
                                                                "name": "FunctionCall",
                                                                "src": "5641:57:19"
                                                            }
                                                        ],
                                                        "id": 9624,
                                                        "name": "ExpressionStatement",
                                                        "src": "5641:57:19"
                                                    }
                                                ],
                                                "id": 9625,
                                                "name": "Block",
                                                "src": "5587:125:19"
                                            }
                                        ],
                                        "id": 9626,
                                        "name": "IfStatement",
                                        "src": "5543:169:19"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                9628
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "pool",
                                                    "scope": 9804,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "address",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 9627,
                                                        "name": "ElementaryTypeName",
                                                        "src": "5721:7:19"
                                                    }
                                                ],
                                                "id": 9628,
                                                "name": "VariableDeclaration",
                                                "src": "5721:12:19"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "address",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_d8407c43b70b062a4ebfce2d65b9d672a39ddff01e2772e896f61833dce954b7",
                                                                    "typeString": "literal_string \"Verified Pool Token\""
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_7fee470b81c86493872dc1c9070ce794188d075d1c10f31e689bb13cbd714392",
                                                                    "typeString": "literal_string \"VPT\""
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "create",
                                                            "referencedDeclaration": 12092,
                                                            "type": "function (string memory,string memory,address,address,uint256,uint256) external returns (address)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract ISecondaryIssuePoolFactory",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 12093,
                                                                            "type": "type(contract ISecondaryIssuePoolFactory)",
                                                                            "value": "ISecondaryIssuePoolFactory"
                                                                        },
                                                                        "id": 9629,
                                                                        "name": "Identifier",
                                                                        "src": "5736:26:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9311,
                                                                            "type": "address",
                                                                            "value": "factory"
                                                                        },
                                                                        "id": 9630,
                                                                        "name": "Identifier",
                                                                        "src": "5763:7:19"
                                                                    }
                                                                ],
                                                                "id": 9631,
                                                                "name": "FunctionCall",
                                                                "src": "5736:35:19"
                                                            }
                                                        ],
                                                        "id": 9632,
                                                        "name": "MemberAccess",
                                                        "src": "5736:42:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "566572696669656420506f6f6c20546f6b656e",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "string",
                                                            "type": "literal_string \"Verified Pool Token\"",
                                                            "value": "Verified Pool Token"
                                                        },
                                                        "id": 9633,
                                                        "name": "Literal",
                                                        "src": "5792:21:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "565054",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "string",
                                                            "type": "literal_string \"VPT\"",
                                                            "value": "VPT"
                                                        },
                                                        "id": 9634,
                                                        "name": "Literal",
                                                        "src": "5827:5:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9540,
                                                            "type": "address",
                                                            "value": "security"
                                                        },
                                                        "id": 9635,
                                                        "name": "Identifier",
                                                        "src": "5846:8:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9542,
                                                            "type": "address",
                                                            "value": "currency"
                                                        },
                                                        "id": 9636,
                                                        "name": "Identifier",
                                                        "src": "5868:8:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9548,
                                                            "type": "uint256",
                                                            "value": "minSecurityOrder"
                                                        },
                                                        "id": 9637,
                                                        "name": "Identifier",
                                                        "src": "5890:16:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9315,
                                                            "type": "uint256",
                                                            "value": "fee"
                                                        },
                                                        "id": 9638,
                                                        "name": "Identifier",
                                                        "src": "5920:3:19"
                                                    }
                                                ],
                                                "id": 9639,
                                                "name": "FunctionCall",
                                                "src": "5736:197:19"
                                            }
                                        ],
                                        "id": 9640,
                                        "name": "VariableDeclarationStatement",
                                        "src": "5721:212:19"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                9642
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "poolId",
                                                    "scope": 9804,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "bytes32",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "bytes32",
                                                            "type": "bytes32"
                                                        },
                                                        "id": 9641,
                                                        "name": "ElementaryTypeName",
                                                        "src": "5944:7:19"
                                                    }
                                                ],
                                                "id": 9642,
                                                "name": "VariableDeclaration",
                                                "src": "5944:14:19"
                                            },
                                            {
                                                "attributes": {
                                                    "arguments": [
                                                        null
                                                    ],
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "bytes32",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                null
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "getPoolId",
                                                            "referencedDeclaration": 12056,
                                                            "type": "function () view external returns (bytes32)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract ISecondaryIssuePool",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 12072,
                                                                            "type": "type(contract ISecondaryIssuePool)",
                                                                            "value": "ISecondaryIssuePool"
                                                                        },
                                                                        "id": 9643,
                                                                        "name": "Identifier",
                                                                        "src": "5961:19:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9628,
                                                                            "type": "address",
                                                                            "value": "pool"
                                                                        },
                                                                        "id": 9644,
                                                                        "name": "Identifier",
                                                                        "src": "5981:4:19"
                                                                    }
                                                                ],
                                                                "id": 9645,
                                                                "name": "FunctionCall",
                                                                "src": "5961:25:19"
                                                            }
                                                        ],
                                                        "id": 9646,
                                                        "name": "MemberAccess",
                                                        "src": "5961:35:19"
                                                    }
                                                ],
                                                "id": 9647,
                                                "name": "FunctionCall",
                                                "src": "5961:37:19"
                                            }
                                        ],
                                        "id": 9648,
                                        "name": "VariableDeclarationStatement",
                                        "src": "5944:54:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "type": "address"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9344,
                                                                    "type": "mapping(bytes32 => address)",
                                                                    "value": "poolSecurity"
                                                                },
                                                                "id": 9649,
                                                                "name": "Identifier",
                                                                "src": "6010:12:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9642,
                                                                    "type": "bytes32",
                                                                    "value": "poolId"
                                                                },
                                                                "id": 9650,
                                                                "name": "Identifier",
                                                                "src": "6023:6:19"
                                                            }
                                                        ],
                                                        "id": 9651,
                                                        "name": "IndexAccess",
                                                        "src": "6010:20:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9540,
                                                            "type": "address",
                                                            "value": "security"
                                                        },
                                                        "id": 9652,
                                                        "name": "Identifier",
                                                        "src": "6033:8:19"
                                                    }
                                                ],
                                                "id": 9653,
                                                "name": "Assignment",
                                                "src": "6010:31:19"
                                            }
                                        ],
                                        "id": 9654,
                                        "name": "ExpressionStatement",
                                        "src": "6010:31:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "type": "address"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9348,
                                                                    "type": "mapping(bytes32 => address)",
                                                                    "value": "issuer"
                                                                },
                                                                "id": 9655,
                                                                "name": "Identifier",
                                                                "src": "6052:6:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9642,
                                                                    "type": "bytes32",
                                                                    "value": "poolId"
                                                                },
                                                                "id": 9656,
                                                                "name": "Identifier",
                                                                "src": "6059:6:19"
                                                            }
                                                        ],
                                                        "id": 9657,
                                                        "name": "IndexAccess",
                                                        "src": "6052:14:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "sender",
                                                            "type": "address payable"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": -15,
                                                                    "type": "msg",
                                                                    "value": "msg"
                                                                },
                                                                "id": 9658,
                                                                "name": "Identifier",
                                                                "src": "6069:3:19"
                                                            }
                                                        ],
                                                        "id": 9659,
                                                        "name": "MemberAccess",
                                                        "src": "6069:10:19"
                                                    }
                                                ],
                                                "id": 9660,
                                                "name": "Assignment",
                                                "src": "6052:27:19"
                                            }
                                        ],
                                        "id": 9661,
                                        "name": "ExpressionStatement",
                                        "src": "6052:27:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "bytes32"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "type": "bytes32"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9336,
                                                                    "type": "mapping(address => bytes32)",
                                                                    "value": "pools"
                                                                },
                                                                "id": 9662,
                                                                "name": "Identifier",
                                                                "src": "6089:5:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9628,
                                                                    "type": "address",
                                                                    "value": "pool"
                                                                },
                                                                "id": 9663,
                                                                "name": "Identifier",
                                                                "src": "6095:4:19"
                                                            }
                                                        ],
                                                        "id": 9664,
                                                        "name": "IndexAccess",
                                                        "src": "6089:11:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9642,
                                                            "type": "bytes32",
                                                            "value": "poolId"
                                                        },
                                                        "id": 9665,
                                                        "name": "Identifier",
                                                        "src": "6103:6:19"
                                                    }
                                                ],
                                                "id": 9666,
                                                "name": "Assignment",
                                                "src": "6089:20:19"
                                            }
                                        ],
                                        "id": 9667,
                                        "name": "ExpressionStatement",
                                        "src": "6089:20:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "type": "address"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9340,
                                                                    "type": "mapping(bytes32 => address)",
                                                                    "value": "poolAddress"
                                                                },
                                                                "id": 9668,
                                                                "name": "Identifier",
                                                                "src": "6119:11:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9642,
                                                                    "type": "bytes32",
                                                                    "value": "poolId"
                                                                },
                                                                "id": 9669,
                                                                "name": "Identifier",
                                                                "src": "6131:6:19"
                                                            }
                                                        ],
                                                        "id": 9670,
                                                        "name": "IndexAccess",
                                                        "src": "6119:19:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9628,
                                                            "type": "address",
                                                            "value": "pool"
                                                        },
                                                        "id": 9671,
                                                        "name": "Identifier",
                                                        "src": "6141:4:19"
                                                    }
                                                ],
                                                "id": 9672,
                                                "name": "Assignment",
                                                "src": "6119:26:19"
                                            }
                                        ],
                                        "id": 9673,
                                        "name": "ExpressionStatement",
                                        "src": "6119:26:19"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                9677,
                                                null,
                                                null
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "tokens",
                                                    "scope": 9804,
                                                    "stateVariable": false,
                                                    "storageLocation": "memory",
                                                    "type": "contract IERC20[]",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "type": "contract IERC20[]"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "name": "IERC20",
                                                                    "referencedDeclaration": 2938,
                                                                    "type": "contract IERC20"
                                                                },
                                                                "id": 9675,
                                                                "name": "UserDefinedTypeName",
                                                                "src": "6202:6:19"
                                                            }
                                                        ],
                                                        "id": 9676,
                                                        "name": "ArrayTypeName",
                                                        "src": "6202:8:19"
                                                    }
                                                ],
                                                "id": 9677,
                                                "name": "VariableDeclaration",
                                                "src": "6202:22:19"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple(contract IERC20[] memory,uint256[] memory,uint256)",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "getPoolTokens",
                                                            "referencedDeclaration": 3444,
                                                            "type": "function (bytes32) view external returns (contract IERC20[] memory,uint256[] memory,uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract IVault",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3688,
                                                                            "type": "type(contract IVault)",
                                                                            "value": "IVault"
                                                                        },
                                                                        "id": 9678,
                                                                        "name": "Identifier",
                                                                        "src": "6232:6:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9313,
                                                                            "type": "address",
                                                                            "value": "vault"
                                                                        },
                                                                        "id": 9679,
                                                                        "name": "Identifier",
                                                                        "src": "6239:5:19"
                                                                    }
                                                                ],
                                                                "id": 9680,
                                                                "name": "FunctionCall",
                                                                "src": "6232:13:19"
                                                            }
                                                        ],
                                                        "id": 9681,
                                                        "name": "MemberAccess",
                                                        "src": "6232:27:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9642,
                                                            "type": "bytes32",
                                                            "value": "poolId"
                                                        },
                                                        "id": 9682,
                                                        "name": "Identifier",
                                                        "src": "6260:6:19"
                                                    }
                                                ],
                                                "id": 9683,
                                                "name": "FunctionCall",
                                                "src": "6232:35:19"
                                            }
                                        ],
                                        "id": 9684,
                                        "name": "VariableDeclarationStatement",
                                        "src": "6201:66:19"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                9688
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "assets",
                                                    "scope": 9804,
                                                    "stateVariable": false,
                                                    "storageLocation": "memory",
                                                    "type": "contract IAsset[]",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "type": "contract IAsset[]"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "name": "IAsset",
                                                                    "referencedDeclaration": 3127,
                                                                    "type": "contract IAsset"
                                                                },
                                                                "id": 9686,
                                                                "name": "UserDefinedTypeName",
                                                                "src": "6277:6:19"
                                                            }
                                                        ],
                                                        "id": 9687,
                                                        "name": "ArrayTypeName",
                                                        "src": "6277:8:19"
                                                    }
                                                ],
                                                "id": 9688,
                                                "name": "VariableDeclaration",
                                                "src": "6277:22:19"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "contract IAsset[] memory",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr",
                                                                    "typeString": "contract IERC20[] memory"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10860,
                                                            "type": "function (contract IERC20[] memory) pure returns (contract IAsset[] memory)",
                                                            "value": "_convertERC20sToAssets"
                                                        },
                                                        "id": 9689,
                                                        "name": "Identifier",
                                                        "src": "6302:22:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9677,
                                                            "type": "contract IERC20[] memory",
                                                            "value": "tokens"
                                                        },
                                                        "id": 9690,
                                                        "name": "Identifier",
                                                        "src": "6325:6:19"
                                                    }
                                                ],
                                                "id": 9691,
                                                "name": "FunctionCall",
                                                "src": "6302:30:19"
                                            }
                                        ],
                                        "id": 9692,
                                        "name": "VariableDeclarationStatement",
                                        "src": "6277:55:19"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                9697
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "maxAmountsIn",
                                                    "scope": 9804,
                                                    "stateVariable": false,
                                                    "storageLocation": "memory",
                                                    "type": "uint256[]",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "type": "uint256[]"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "name": "uint256",
                                                                    "type": "uint256"
                                                                },
                                                                "id": 9695,
                                                                "name": "ElementaryTypeName",
                                                                "src": "6342:7:19"
                                                            }
                                                        ],
                                                        "id": 9696,
                                                        "name": "ArrayTypeName",
                                                        "src": "6342:9:19"
                                                    }
                                                ],
                                                "id": 9697,
                                                "name": "VariableDeclaration",
                                                "src": "6342:29:19"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "uint256[] memory",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "type": "function (uint256) pure returns (uint256[] memory)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "type": "uint256[]"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "uint256",
                                                                            "type": "uint256"
                                                                        },
                                                                        "id": 9698,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "6378:7:19"
                                                                    }
                                                                ],
                                                                "id": 9699,
                                                                "name": "ArrayTypeName",
                                                                "src": "6378:9:19"
                                                            }
                                                        ],
                                                        "id": 9700,
                                                        "name": "NewExpression",
                                                        "src": "6374:13:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "length",
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9677,
                                                                    "type": "contract IERC20[] memory",
                                                                    "value": "tokens"
                                                                },
                                                                "id": 9701,
                                                                "name": "Identifier",
                                                                "src": "6388:6:19"
                                                            }
                                                        ],
                                                        "id": 9702,
                                                        "name": "MemberAccess",
                                                        "src": "6388:13:19"
                                                    }
                                                ],
                                                "id": 9703,
                                                "name": "FunctionCall",
                                                "src": "6374:28:19"
                                            }
                                        ],
                                        "id": 9704,
                                        "name": "VariableDeclarationStatement",
                                        "src": "6342:60:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "bool",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "approve",
                                                            "referencedDeclaration": 2543,
                                                            "type": "function (address,uint256) external returns (bool)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract ERC20",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2860,
                                                                            "type": "type(contract ERC20)",
                                                                            "value": "ERC20"
                                                                        },
                                                                        "id": 9705,
                                                                        "name": "Identifier",
                                                                        "src": "6412:5:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9542,
                                                                            "type": "address",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 9706,
                                                                        "name": "Identifier",
                                                                        "src": "6418:8:19"
                                                                    }
                                                                ],
                                                                "id": 9707,
                                                                "name": "FunctionCall",
                                                                "src": "6412:15:19"
                                                            }
                                                        ],
                                                        "id": 9708,
                                                        "name": "MemberAccess",
                                                        "src": "6412:23:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9313,
                                                            "type": "address",
                                                            "value": "vault"
                                                        },
                                                        "id": 9709,
                                                        "name": "Identifier",
                                                        "src": "6436:5:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9550,
                                                            "type": "uint256",
                                                            "value": "cashAmount"
                                                        },
                                                        "id": 9710,
                                                        "name": "Identifier",
                                                        "src": "6443:10:19"
                                                    }
                                                ],
                                                "id": 9711,
                                                "name": "FunctionCall",
                                                "src": "6412:42:19"
                                            }
                                        ],
                                        "id": 9712,
                                        "name": "ExpressionStatement",
                                        "src": "6412:42:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "bool",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "approve",
                                                            "referencedDeclaration": 2543,
                                                            "type": "function (address,uint256) external returns (bool)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract ERC20",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2860,
                                                                            "type": "type(contract ERC20)",
                                                                            "value": "ERC20"
                                                                        },
                                                                        "id": 9713,
                                                                        "name": "Identifier",
                                                                        "src": "6464:5:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9540,
                                                                            "type": "address",
                                                                            "value": "security"
                                                                        },
                                                                        "id": 9714,
                                                                        "name": "Identifier",
                                                                        "src": "6470:8:19"
                                                                    }
                                                                ],
                                                                "id": 9715,
                                                                "name": "FunctionCall",
                                                                "src": "6464:15:19"
                                                            }
                                                        ],
                                                        "id": 9716,
                                                        "name": "MemberAccess",
                                                        "src": "6464:23:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9313,
                                                            "type": "address",
                                                            "value": "vault"
                                                        },
                                                        "id": 9717,
                                                        "name": "Identifier",
                                                        "src": "6488:5:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9546,
                                                            "type": "uint256",
                                                            "value": "securityOffered"
                                                        },
                                                        "id": 9718,
                                                        "name": "Identifier",
                                                        "src": "6495:15:19"
                                                    }
                                                ],
                                                "id": 9719,
                                                "name": "FunctionCall",
                                                "src": "6464:47:19"
                                            }
                                        ],
                                        "id": 9720,
                                        "name": "ExpressionStatement",
                                        "src": "6464:47:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "assignments": [
                                                        9722
                                                    ]
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "constant": false,
                                                            "mutability": "mutable",
                                                            "name": "t",
                                                            "scope": 9770,
                                                            "stateVariable": false,
                                                            "storageLocation": "default",
                                                            "type": "uint256",
                                                            "visibility": "internal"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "name": "uint256",
                                                                    "type": "uint256"
                                                                },
                                                                "id": 9721,
                                                                "name": "ElementaryTypeName",
                                                                "src": "6525:7:19"
                                                            }
                                                        ],
                                                        "id": 9722,
                                                        "name": "VariableDeclaration",
                                                        "src": "6525:9:19"
                                                    }
                                                ],
                                                "id": 9723,
                                                "name": "VariableDeclarationStatement",
                                                "src": "6525:9:19"
                                            },
                                            {
                                                "attributes": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "<",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9722,
                                                            "type": "uint256",
                                                            "value": "t"
                                                        },
                                                        "id": 9724,
                                                        "name": "Identifier",
                                                        "src": "6536:1:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "length",
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9677,
                                                                    "type": "contract IERC20[] memory",
                                                                    "value": "tokens"
                                                                },
                                                                "id": 9725,
                                                                "name": "Identifier",
                                                                "src": "6540:6:19"
                                                            }
                                                        ],
                                                        "id": 9726,
                                                        "name": "MemberAccess",
                                                        "src": "6540:13:19"
                                                    }
                                                ],
                                                "id": 9727,
                                                "name": "BinaryOperation",
                                                "src": "6536:17:19"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "++",
                                                            "prefix": false,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9722,
                                                                    "type": "uint256",
                                                                    "value": "t"
                                                                },
                                                                "id": 9728,
                                                                "name": "Identifier",
                                                                "src": "6555:1:19"
                                                            }
                                                        ],
                                                        "id": 9729,
                                                        "name": "UnaryOperation",
                                                        "src": "6555:3:19"
                                                    }
                                                ],
                                                "id": 9730,
                                                "name": "ExpressionStatement",
                                                "src": "6555:3:19"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                        "typeString": "contract IERC20"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "contract IERC20"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 9677,
                                                                                    "type": "contract IERC20[] memory",
                                                                                    "value": "tokens"
                                                                                },
                                                                                "id": 9731,
                                                                                "name": "Identifier",
                                                                                "src": "6577:6:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 9722,
                                                                                    "type": "uint256",
                                                                                    "value": "t"
                                                                                },
                                                                                "id": 9732,
                                                                                "name": "Identifier",
                                                                                "src": "6584:1:19"
                                                                            }
                                                                        ],
                                                                        "id": 9733,
                                                                        "name": "IndexAccess",
                                                                        "src": "6577:9:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "contract IERC20",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 2938,
                                                                                    "type": "type(contract IERC20)",
                                                                                    "value": "IERC20"
                                                                                },
                                                                                "id": 9734,
                                                                                "name": "Identifier",
                                                                                "src": "6588:6:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 9540,
                                                                                    "type": "address",
                                                                                    "value": "security"
                                                                                },
                                                                                "id": 9735,
                                                                                "name": "Identifier",
                                                                                "src": "6595:8:19"
                                                                            }
                                                                        ],
                                                                        "id": 9736,
                                                                        "name": "FunctionCall",
                                                                        "src": "6588:16:19"
                                                                    }
                                                                ],
                                                                "id": 9737,
                                                                "name": "BinaryOperation",
                                                                "src": "6577:27:19"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": "=",
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": true,
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 9697,
                                                                                            "type": "uint256[] memory",
                                                                                            "value": "maxAmountsIn"
                                                                                        },
                                                                                        "id": 9738,
                                                                                        "name": "Identifier",
                                                                                        "src": "6622:12:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 9722,
                                                                                            "type": "uint256",
                                                                                            "value": "t"
                                                                                        },
                                                                                        "id": 9739,
                                                                                        "name": "Identifier",
                                                                                        "src": "6635:1:19"
                                                                                    }
                                                                                ],
                                                                                "id": 9740,
                                                                                "name": "IndexAccess",
                                                                                "src": "6622:15:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 9546,
                                                                                    "type": "uint256",
                                                                                    "value": "securityOffered"
                                                                                },
                                                                                "id": 9741,
                                                                                "name": "Identifier",
                                                                                "src": "6640:15:19"
                                                                            }
                                                                        ],
                                                                        "id": 9742,
                                                                        "name": "Assignment",
                                                                        "src": "6622:33:19"
                                                                    }
                                                                ],
                                                                "id": 9743,
                                                                "name": "ExpressionStatement",
                                                                "src": "6622:33:19"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "commonType": {
                                                                                "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                                "typeString": "contract IERC20"
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": "==",
                                                                            "type": "bool"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "contract IERC20"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 9677,
                                                                                            "type": "contract IERC20[] memory",
                                                                                            "value": "tokens"
                                                                                        },
                                                                                        "id": 9744,
                                                                                        "name": "Identifier",
                                                                                        "src": "6677:6:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 9722,
                                                                                            "type": "uint256",
                                                                                            "value": "t"
                                                                                        },
                                                                                        "id": 9745,
                                                                                        "name": "Identifier",
                                                                                        "src": "6684:1:19"
                                                                                    }
                                                                                ],
                                                                                "id": 9746,
                                                                                "name": "IndexAccess",
                                                                                "src": "6677:9:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "contract IERC20",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 2938,
                                                                                            "type": "type(contract IERC20)",
                                                                                            "value": "IERC20"
                                                                                        },
                                                                                        "id": 9747,
                                                                                        "name": "Identifier",
                                                                                        "src": "6688:6:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 9542,
                                                                                            "type": "address",
                                                                                            "value": "currency"
                                                                                        },
                                                                                        "id": 9748,
                                                                                        "name": "Identifier",
                                                                                        "src": "6695:8:19"
                                                                                    }
                                                                                ],
                                                                                "id": 9749,
                                                                                "name": "FunctionCall",
                                                                                "src": "6688:16:19"
                                                                            }
                                                                        ],
                                                                        "id": 9750,
                                                                        "name": "BinaryOperation",
                                                                        "src": "6677:27:19"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "=",
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": true,
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 9697,
                                                                                                    "type": "uint256[] memory",
                                                                                                    "value": "maxAmountsIn"
                                                                                                },
                                                                                                "id": 9751,
                                                                                                "name": "Identifier",
                                                                                                "src": "6722:12:19"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 9722,
                                                                                                    "type": "uint256",
                                                                                                    "value": "t"
                                                                                                },
                                                                                                "id": 9752,
                                                                                                "name": "Identifier",
                                                                                                "src": "6735:1:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 9753,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "6722:15:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 9550,
                                                                                            "type": "uint256",
                                                                                            "value": "cashAmount"
                                                                                        },
                                                                                        "id": 9754,
                                                                                        "name": "Identifier",
                                                                                        "src": "6740:10:19"
                                                                                    }
                                                                                ],
                                                                                "id": 9755,
                                                                                "name": "Assignment",
                                                                                "src": "6722:28:19"
                                                                            }
                                                                        ],
                                                                        "id": 9756,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "6722:28:19"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "=",
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": true,
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 9697,
                                                                                                    "type": "uint256[] memory",
                                                                                                    "value": "maxAmountsIn"
                                                                                                },
                                                                                                "id": 9757,
                                                                                                "name": "Identifier",
                                                                                                "src": "6786:12:19"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 9722,
                                                                                                    "type": "uint256",
                                                                                                    "value": "t"
                                                                                                },
                                                                                                "id": 9758,
                                                                                                "name": "Identifier",
                                                                                                "src": "6799:1:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 9759,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "6786:15:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "tryCall": false,
                                                                                            "type": "uint256",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        },
                                                                                                        {
                                                                                                            "typeIdentifier": "t_uint256",
                                                                                                            "typeString": "uint256"
                                                                                                        }
                                                                                                    ],
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "sub",
                                                                                                    "referencedDeclaration": 2177,
                                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 2367,
                                                                                                            "type": "type(library Math)",
                                                                                                            "value": "Math"
                                                                                                        },
                                                                                                        "id": 9760,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "6804:4:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 9761,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "6804:8:19"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 9371,
                                                                                                    "type": "uint256",
                                                                                                    "value": "_INITIAL_BPT_SUPPLY"
                                                                                                },
                                                                                                "id": 9762,
                                                                                                "name": "Identifier",
                                                                                                "src": "6813:19:19"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 9374,
                                                                                                    "type": "uint256",
                                                                                                    "value": "_DEFAULT_MINIMUM_BPT"
                                                                                                },
                                                                                                "id": 9763,
                                                                                                "name": "Identifier",
                                                                                                "src": "6834:20:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 9764,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "6804:51:19"
                                                                                    }
                                                                                ],
                                                                                "id": 9765,
                                                                                "name": "Assignment",
                                                                                "src": "6786:69:19"
                                                                            }
                                                                        ],
                                                                        "id": 9766,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "6786:69:19"
                                                                    }
                                                                ],
                                                                "id": 9767,
                                                                "name": "IfStatement",
                                                                "src": "6674:181:19"
                                                            }
                                                        ],
                                                        "id": 9768,
                                                        "name": "IfStatement",
                                                        "src": "6574:281:19"
                                                    }
                                                ],
                                                "id": 9769,
                                                "name": "Block",
                                                "src": "6560:306:19"
                                            }
                                        ],
                                        "id": 9770,
                                        "name": "ForStatement",
                                        "src": "6521:345:19"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                9774
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "request",
                                                    "scope": 9804,
                                                    "stateVariable": false,
                                                    "storageLocation": "memory",
                                                    "type": "struct IVault.JoinPoolRequest",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "IVault.JoinPoolRequest",
                                                            "referencedDeclaration": 3467,
                                                            "type": "struct IVault.JoinPoolRequest"
                                                        },
                                                        "id": 9773,
                                                        "name": "UserDefinedTypeName",
                                                        "src": "6875:22:19"
                                                    }
                                                ],
                                                "id": 9774,
                                                "name": "VariableDeclaration",
                                                "src": "6875:37:19"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": true,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        "assets",
                                                        "maxAmountsIn",
                                                        "userData",
                                                        "fromInternalBalance"
                                                    ],
                                                    "tryCall": false,
                                                    "type": "struct IVault.JoinPoolRequest memory",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_array$_t_contract$_IAsset_$3127_$dyn_memory_ptr",
                                                                    "typeString": "contract IAsset[] memory"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                                    "typeString": "uint256[] memory"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes_memory_ptr",
                                                                    "typeString": "bytes memory"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "JoinPoolRequest",
                                                            "referencedDeclaration": 3467,
                                                            "type": "type(struct IVault.JoinPoolRequest storage pointer)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 3688,
                                                                    "type": "type(contract IVault)",
                                                                    "value": "IVault"
                                                                },
                                                                "id": 9775,
                                                                "name": "Identifier",
                                                                "src": "6915:6:19"
                                                            }
                                                        ],
                                                        "id": 9776,
                                                        "name": "MemberAccess",
                                                        "src": "6915:22:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9688,
                                                            "type": "contract IAsset[] memory",
                                                            "value": "assets"
                                                        },
                                                        "id": 9777,
                                                        "name": "Identifier",
                                                        "src": "6960:6:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9697,
                                                            "type": "uint256[] memory",
                                                            "value": "maxAmountsIn"
                                                        },
                                                        "id": 9778,
                                                        "name": "Identifier",
                                                        "src": "6994:12:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "bytes memory",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_enum$_JoinKind_$12132",
                                                                            "typeString": "enum ISettlor.JoinKind"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                                            "typeString": "uint256[] memory"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "member_name": "encode",
                                                                    "type": "function () pure returns (bytes memory)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": -1,
                                                                            "type": "abi",
                                                                            "value": "abi"
                                                                        },
                                                                        "id": 9779,
                                                                        "name": "Identifier",
                                                                        "src": "7030:3:19"
                                                                    }
                                                                ],
                                                                "id": 9780,
                                                                "name": "MemberAccess",
                                                                "src": "7030:10:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "member_name": "INIT",
                                                                    "type": "enum ISettlor.JoinKind"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 12132,
                                                                            "type": "type(enum ISettlor.JoinKind)",
                                                                            "value": "JoinKind"
                                                                        },
                                                                        "id": 9781,
                                                                        "name": "Identifier",
                                                                        "src": "7041:8:19"
                                                                    }
                                                                ],
                                                                "id": 9782,
                                                                "name": "MemberAccess",
                                                                "src": "7041:13:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9697,
                                                                    "type": "uint256[] memory",
                                                                    "value": "maxAmountsIn"
                                                                },
                                                                "id": 9783,
                                                                "name": "Identifier",
                                                                "src": "7056:12:19"
                                                            }
                                                        ],
                                                        "id": 9784,
                                                        "name": "FunctionCall",
                                                        "src": "7030:39:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "66616c7365",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "bool",
                                                            "type": "bool",
                                                            "value": "false"
                                                        },
                                                        "id": 9785,
                                                        "name": "Literal",
                                                        "src": "7104:5:19"
                                                    }
                                                ],
                                                "id": 9786,
                                                "name": "FunctionCall",
                                                "src": "6915:205:19"
                                            }
                                        ],
                                        "id": 9787,
                                        "name": "VariableDeclarationStatement",
                                        "src": "6875:245:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_struct$_JoinPoolRequest_$3467_memory_ptr",
                                                                    "typeString": "struct IVault.JoinPoolRequest memory"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "joinPool",
                                                            "referencedDeclaration": 3456,
                                                            "type": "function (bytes32,address,address,struct IVault.JoinPoolRequest memory) payable external"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract IVault",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3688,
                                                                            "type": "type(contract IVault)",
                                                                            "value": "IVault"
                                                                        },
                                                                        "id": 9788,
                                                                        "name": "Identifier",
                                                                        "src": "7139:6:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9313,
                                                                            "type": "address",
                                                                            "value": "vault"
                                                                        },
                                                                        "id": 9789,
                                                                        "name": "Identifier",
                                                                        "src": "7146:5:19"
                                                                    }
                                                                ],
                                                                "id": 9790,
                                                                "name": "FunctionCall",
                                                                "src": "7139:13:19"
                                                            }
                                                        ],
                                                        "id": 9791,
                                                        "name": "MemberAccess",
                                                        "src": "7139:22:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9642,
                                                            "type": "bytes32",
                                                            "value": "poolId"
                                                        },
                                                        "id": 9792,
                                                        "name": "Identifier",
                                                        "src": "7162:6:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "address",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_contract$_SecondaryIssueManager_$10930",
                                                                            "typeString": "contract SecondaryIssueManager"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(address)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "address"
                                                                        },
                                                                        "id": 9793,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "7170:7:19"
                                                                    }
                                                                ],
                                                                "id": 9794,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "7170:7:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": -28,
                                                                    "type": "contract SecondaryIssueManager",
                                                                    "value": "this"
                                                                },
                                                                "id": 9795,
                                                                "name": "Identifier",
                                                                "src": "7178:4:19"
                                                            }
                                                        ],
                                                        "id": 9796,
                                                        "name": "FunctionCall",
                                                        "src": "7170:13:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "address",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_contract$_SecondaryIssueManager_$10930",
                                                                            "typeString": "contract SecondaryIssueManager"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(address)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "address"
                                                                        },
                                                                        "id": 9797,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "7185:7:19"
                                                                    }
                                                                ],
                                                                "id": 9798,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "7185:7:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": -28,
                                                                    "type": "contract SecondaryIssueManager",
                                                                    "value": "this"
                                                                },
                                                                "id": 9799,
                                                                "name": "Identifier",
                                                                "src": "7193:4:19"
                                                            }
                                                        ],
                                                        "id": 9800,
                                                        "name": "FunctionCall",
                                                        "src": "7185:13:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9774,
                                                            "type": "struct IVault.JoinPoolRequest memory",
                                                            "value": "request"
                                                        },
                                                        "id": 9801,
                                                        "name": "Identifier",
                                                        "src": "7200:7:19"
                                                    }
                                                ],
                                                "id": 9802,
                                                "name": "FunctionCall",
                                                "src": "7139:69:19"
                                            }
                                        ],
                                        "id": 9803,
                                        "name": "ExpressionStatement",
                                        "src": "7139:69:19"
                                    }
                                ],
                                "id": 9804,
                                "name": "Block",
                                "src": "5163:2052:19"
                            }
                        ],
                        "id": 9805,
                        "name": "FunctionDefinition",
                        "src": "4967:2248:19"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                12248
                            ],
                            "functionSelector": "b431657c",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "setIssuingFee",
                            "scope": 10930,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 9813,
                                "name": "OverrideSpecifier",
                                "src": "7297:8:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "security",
                                            "scope": 9828,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 9806,
                                                "name": "ElementaryTypeName",
                                                "src": "7244:7:19"
                                            }
                                        ],
                                        "id": 9807,
                                        "name": "VariableDeclaration",
                                        "src": "7244:16:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "currency",
                                            "scope": 9828,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 9808,
                                                "name": "ElementaryTypeName",
                                                "src": "7262:7:19"
                                            }
                                        ],
                                        "id": 9809,
                                        "name": "VariableDeclaration",
                                        "src": "7262:16:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "swapfee",
                                            "scope": 9828,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 9810,
                                                "name": "ElementaryTypeName",
                                                "src": "7280:7:19"
                                            }
                                        ],
                                        "id": 9811,
                                        "name": "VariableDeclaration",
                                        "src": "7280:15:19"
                                    }
                                ],
                                "id": 9812,
                                "name": "ParameterList",
                                "src": "7243:53:19"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 9818,
                                "name": "ParameterList",
                                "src": "7334:0:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 9478,
                                            "type": "modifier (address)",
                                            "value": "onlyDP"
                                        },
                                        "id": 9814,
                                        "name": "Identifier",
                                        "src": "7315:6:19"
                                    },
                                    {
                                        "attributes": {
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "member_name": "sender",
                                            "type": "address payable"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": -15,
                                                    "type": "msg",
                                                    "value": "msg"
                                                },
                                                "id": 9815,
                                                "name": "Identifier",
                                                "src": "7322:3:19"
                                            }
                                        ],
                                        "id": 9816,
                                        "name": "MemberAccess",
                                        "src": "7322:10:19"
                                    }
                                ],
                                "id": 9817,
                                "name": "ModifierInvocation",
                                "src": "7315:18:19"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "mapping(address => uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9323,
                                                                            "type": "mapping(address => mapping(address => uint256))",
                                                                            "value": "customFee"
                                                                        },
                                                                        "id": 9819,
                                                                        "name": "Identifier",
                                                                        "src": "7344:9:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9807,
                                                                            "type": "address",
                                                                            "value": "security"
                                                                        },
                                                                        "id": 9820,
                                                                        "name": "Identifier",
                                                                        "src": "7354:8:19"
                                                                    }
                                                                ],
                                                                "id": 9822,
                                                                "name": "IndexAccess",
                                                                "src": "7344:19:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9809,
                                                                    "type": "address",
                                                                    "value": "currency"
                                                                },
                                                                "id": 9821,
                                                                "name": "Identifier",
                                                                "src": "7364:8:19"
                                                            }
                                                        ],
                                                        "id": 9823,
                                                        "name": "IndexAccess",
                                                        "src": "7344:29:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9811,
                                                            "type": "uint256",
                                                            "value": "swapfee"
                                                        },
                                                        "id": 9824,
                                                        "name": "Identifier",
                                                        "src": "7376:7:19"
                                                    }
                                                ],
                                                "id": 9825,
                                                "name": "Assignment",
                                                "src": "7344:39:19"
                                            }
                                        ],
                                        "id": 9826,
                                        "name": "ExpressionStatement",
                                        "src": "7344:39:19"
                                    }
                                ],
                                "id": 9827,
                                "name": "Block",
                                "src": "7334:56:19"
                            }
                        ],
                        "id": 9828,
                        "name": "FunctionDefinition",
                        "src": "7221:169:19"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                12257
                            ],
                            "functionSelector": "9f2a0ccc",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getIssuingFee",
                            "scope": 10930,
                            "stateMutability": "view",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 9834,
                                "name": "OverrideSpecifier",
                                "src": "7455:8:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "security",
                                            "scope": 9845,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 9829,
                                                "name": "ElementaryTypeName",
                                                "src": "7419:7:19"
                                            }
                                        ],
                                        "id": 9830,
                                        "name": "VariableDeclaration",
                                        "src": "7419:16:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "currency",
                                            "scope": 9845,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 9831,
                                                "name": "ElementaryTypeName",
                                                "src": "7437:7:19"
                                            }
                                        ],
                                        "id": 9832,
                                        "name": "VariableDeclaration",
                                        "src": "7437:16:19"
                                    }
                                ],
                                "id": 9833,
                                "name": "ParameterList",
                                "src": "7418:36:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "",
                                            "scope": 9845,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 9835,
                                                "name": "ElementaryTypeName",
                                                "src": "7486:7:19"
                                            }
                                        ],
                                        "id": 9836,
                                        "name": "VariableDeclaration",
                                        "src": "7486:7:19"
                                    }
                                ],
                                "id": 9837,
                                "name": "ParameterList",
                                "src": "7485:9:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 9837
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "mapping(address => uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9323,
                                                                    "type": "mapping(address => mapping(address => uint256))",
                                                                    "value": "customFee"
                                                                },
                                                                "id": 9838,
                                                                "name": "Identifier",
                                                                "src": "7511:9:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9830,
                                                                    "type": "address",
                                                                    "value": "security"
                                                                },
                                                                "id": 9839,
                                                                "name": "Identifier",
                                                                "src": "7521:8:19"
                                                            }
                                                        ],
                                                        "id": 9840,
                                                        "name": "IndexAccess",
                                                        "src": "7511:19:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9832,
                                                            "type": "address",
                                                            "value": "currency"
                                                        },
                                                        "id": 9841,
                                                        "name": "Identifier",
                                                        "src": "7531:8:19"
                                                    }
                                                ],
                                                "id": 9842,
                                                "name": "IndexAccess",
                                                "src": "7511:29:19"
                                            }
                                        ],
                                        "id": 9843,
                                        "name": "Return",
                                        "src": "7504:36:19"
                                    }
                                ],
                                "id": 9844,
                                "name": "Block",
                                "src": "7494:53:19"
                            }
                        ],
                        "id": 9845,
                        "name": "FunctionDefinition",
                        "src": "7396:151:19"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                12195
                            ],
                            "functionSelector": "71eedc7f",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "requestSettlement",
                            "scope": 10930,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "text": "Used by Secondary pools to request settlement for trades\n@param  tradeToReport     data structure holding order matching data"
                                },
                                "id": 9846,
                                "name": "StructuredDocumentation",
                                "src": "7562:153:19"
                            },
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 9852,
                                "name": "OverrideSpecifier",
                                "src": "7800:8:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "tradeToReport",
                                            "scope": 10085,
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "type": "struct ITrade.trade",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "ITrade.trade",
                                                    "referencedDeclaration": 12274,
                                                    "type": "struct ITrade.trade"
                                                },
                                                "id": 9847,
                                                "name": "UserDefinedTypeName",
                                                "src": "7747:12:19"
                                            }
                                        ],
                                        "id": 9848,
                                        "name": "VariableDeclaration",
                                        "src": "7747:33:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "orderbook",
                                            "scope": 10085,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "contract IOrder",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "IOrder",
                                                    "referencedDeclaration": 11977,
                                                    "type": "contract IOrder"
                                                },
                                                "id": 9849,
                                                "name": "UserDefinedTypeName",
                                                "src": "7782:6:19"
                                            }
                                        ],
                                        "id": 9850,
                                        "name": "VariableDeclaration",
                                        "src": "7782:16:19"
                                    }
                                ],
                                "id": 9851,
                                "name": "ParameterList",
                                "src": "7746:53:19"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 9853,
                                "name": "ParameterList",
                                "src": "7818:0:19"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_f9b21344f4bcb6c6821c4426034ac50f2342bc63130080557d4864f66ae77ac2",
                                                                    "typeString": "literal_string \"Invalid pool request\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 9854,
                                                        "name": "Identifier",
                                                        "src": "7828:7:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "!=",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "bytes32"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9336,
                                                                            "type": "mapping(address => bytes32)",
                                                                            "value": "pools"
                                                                        },
                                                                        "id": 9855,
                                                                        "name": "Identifier",
                                                                        "src": "7836:5:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "sender",
                                                                            "type": "address payable"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": -15,
                                                                                    "type": "msg",
                                                                                    "value": "msg"
                                                                                },
                                                                                "id": 9856,
                                                                                "name": "Identifier",
                                                                                "src": "7842:3:19"
                                                                            }
                                                                        ],
                                                                        "id": 9857,
                                                                        "name": "MemberAccess",
                                                                        "src": "7842:10:19"
                                                                    }
                                                                ],
                                                                "id": 9858,
                                                                "name": "IndexAccess",
                                                                "src": "7836:17:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "hexvalue": "",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "token": "string",
                                                                    "type": "literal_string \"\"",
                                                                    "value": ""
                                                                },
                                                                "id": 9859,
                                                                "name": "Literal",
                                                                "src": "7855:2:19"
                                                            }
                                                        ],
                                                        "id": 9860,
                                                        "name": "BinaryOperation",
                                                        "src": "7836:21:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "496e76616c696420706f6f6c2072657175657374",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "string",
                                                            "type": "literal_string \"Invalid pool request\"",
                                                            "value": "Invalid pool request"
                                                        },
                                                        "id": 9861,
                                                        "name": "Literal",
                                                        "src": "7859:22:19"
                                                    }
                                                ],
                                                "id": 9862,
                                                "name": "FunctionCall",
                                                "src": "7828:54:19"
                                            }
                                        ],
                                        "id": 9863,
                                        "name": "ExpressionStatement",
                                        "src": "7828:54:19"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                9867
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "orderByParty",
                                                    "scope": 10084,
                                                    "stateVariable": false,
                                                    "storageLocation": "memory",
                                                    "type": "struct IOrder.order",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "IOrder.order",
                                                            "referencedDeclaration": 11910,
                                                            "type": "struct IOrder.order"
                                                        },
                                                        "id": 9866,
                                                        "name": "UserDefinedTypeName",
                                                        "src": "7892:12:19"
                                                    }
                                                ],
                                                "id": 9867,
                                                "name": "VariableDeclaration",
                                                "src": "7892:32:19"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "struct IOrder.order memory",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "getOrder",
                                                            "referencedDeclaration": 11937,
                                                            "type": "function (bytes32) view external returns (struct IOrder.order memory)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9850,
                                                                    "type": "contract IOrder",
                                                                    "value": "orderbook"
                                                                },
                                                                "id": 9868,
                                                                "name": "Identifier",
                                                                "src": "7927:9:19"
                                                            }
                                                        ],
                                                        "id": 9869,
                                                        "name": "MemberAccess",
                                                        "src": "7927:18:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "partyRef",
                                                            "referencedDeclaration": 12265,
                                                            "type": "bytes32"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9848,
                                                                    "type": "struct ITrade.trade memory",
                                                                    "value": "tradeToReport"
                                                                },
                                                                "id": 9870,
                                                                "name": "Identifier",
                                                                "src": "7946:13:19"
                                                            }
                                                        ],
                                                        "id": 9871,
                                                        "name": "MemberAccess",
                                                        "src": "7946:22:19"
                                                    }
                                                ],
                                                "id": 9872,
                                                "name": "FunctionCall",
                                                "src": "7927:42:19"
                                            }
                                        ],
                                        "id": 9873,
                                        "name": "VariableDeclarationStatement",
                                        "src": "7892:77:19"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                9877
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "orderByCounterparty",
                                                    "scope": 10084,
                                                    "stateVariable": false,
                                                    "storageLocation": "memory",
                                                    "type": "struct IOrder.order",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "IOrder.order",
                                                            "referencedDeclaration": 11910,
                                                            "type": "struct IOrder.order"
                                                        },
                                                        "id": 9876,
                                                        "name": "UserDefinedTypeName",
                                                        "src": "7979:12:19"
                                                    }
                                                ],
                                                "id": 9877,
                                                "name": "VariableDeclaration",
                                                "src": "7979:39:19"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "struct IOrder.order memory",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "getOrder",
                                                            "referencedDeclaration": 11937,
                                                            "type": "function (bytes32) view external returns (struct IOrder.order memory)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9850,
                                                                    "type": "contract IOrder",
                                                                    "value": "orderbook"
                                                                },
                                                                "id": 9878,
                                                                "name": "Identifier",
                                                                "src": "8021:9:19"
                                                            }
                                                        ],
                                                        "id": 9879,
                                                        "name": "MemberAccess",
                                                        "src": "8021:18:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "counterpartyRef",
                                                            "referencedDeclaration": 12267,
                                                            "type": "bytes32"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9848,
                                                                    "type": "struct ITrade.trade memory",
                                                                    "value": "tradeToReport"
                                                                },
                                                                "id": 9880,
                                                                "name": "Identifier",
                                                                "src": "8040:13:19"
                                                            }
                                                        ],
                                                        "id": 9881,
                                                        "name": "MemberAccess",
                                                        "src": "8040:29:19"
                                                    }
                                                ],
                                                "id": 9882,
                                                "name": "FunctionCall",
                                                "src": "8021:49:19"
                                            }
                                        ],
                                        "id": 9883,
                                        "name": "VariableDeclarationStatement",
                                        "src": "7979:91:19"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                9885
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "securityTraded",
                                                    "scope": 10084,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "address",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 9884,
                                                        "name": "ElementaryTypeName",
                                                        "src": "8080:7:19"
                                                    }
                                                ],
                                                "id": 9885,
                                                "name": "VariableDeclaration",
                                                "src": "8080:22:19"
                                            },
                                            {
                                                "attributes": {
                                                    "arguments": [
                                                        null
                                                    ],
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "address",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                null
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "getSecurity",
                                                            "referencedDeclaration": 11925,
                                                            "type": "function () view external returns (address)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9850,
                                                                    "type": "contract IOrder",
                                                                    "value": "orderbook"
                                                                },
                                                                "id": 9886,
                                                                "name": "Identifier",
                                                                "src": "8105:9:19"
                                                            }
                                                        ],
                                                        "id": 9887,
                                                        "name": "MemberAccess",
                                                        "src": "8105:21:19"
                                                    }
                                                ],
                                                "id": 9888,
                                                "name": "FunctionCall",
                                                "src": "8105:23:19"
                                            }
                                        ],
                                        "id": 9889,
                                        "name": "VariableDeclarationStatement",
                                        "src": "8080:48:19"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                9891
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "currencySettled",
                                                    "scope": 10084,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "address",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 9890,
                                                        "name": "ElementaryTypeName",
                                                        "src": "8139:7:19"
                                                    }
                                                ],
                                                "id": 9891,
                                                "name": "VariableDeclaration",
                                                "src": "8139:23:19"
                                            },
                                            {
                                                "attributes": {
                                                    "arguments": [
                                                        null
                                                    ],
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "address",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                null
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "getCurrency",
                                                            "referencedDeclaration": 11930,
                                                            "type": "function () view external returns (address)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9850,
                                                                    "type": "contract IOrder",
                                                                    "value": "orderbook"
                                                                },
                                                                "id": 9892,
                                                                "name": "Identifier",
                                                                "src": "8165:9:19"
                                                            }
                                                        ],
                                                        "id": 9893,
                                                        "name": "MemberAccess",
                                                        "src": "8165:21:19"
                                                    }
                                                ],
                                                "id": 9894,
                                                "name": "FunctionCall",
                                                "src": "8165:23:19"
                                            }
                                        ],
                                        "id": 9895,
                                        "name": "VariableDeclarationStatement",
                                        "src": "8139:49:19"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                9897
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "party",
                                                    "scope": 10084,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "address",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 9896,
                                                        "name": "ElementaryTypeName",
                                                        "src": "8198:7:19"
                                                    }
                                                ],
                                                "id": 9897,
                                                "name": "VariableDeclaration",
                                                "src": "8198:13:19"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "tokenIn",
                                                                    "referencedDeclaration": 11903,
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9867,
                                                                            "type": "struct IOrder.order memory",
                                                                            "value": "orderByParty"
                                                                        },
                                                                        "id": 9898,
                                                                        "name": "Identifier",
                                                                        "src": "8214:12:19"
                                                                    }
                                                                ],
                                                                "id": 9899,
                                                                "name": "MemberAccess",
                                                                "src": "8214:20:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9885,
                                                                    "type": "address",
                                                                    "value": "securityTraded"
                                                                },
                                                                "id": 9900,
                                                                "name": "Identifier",
                                                                "src": "8236:14:19"
                                                            }
                                                        ],
                                                        "id": 9901,
                                                        "name": "BinaryOperation",
                                                        "src": "8214:36:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "party",
                                                            "referencedDeclaration": 11901,
                                                            "type": "address"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9867,
                                                                    "type": "struct IOrder.order memory",
                                                                    "value": "orderByParty"
                                                                },
                                                                "id": 9902,
                                                                "name": "Identifier",
                                                                "src": "8253:12:19"
                                                            }
                                                        ],
                                                        "id": 9903,
                                                        "name": "MemberAccess",
                                                        "src": "8253:18:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "party",
                                                            "referencedDeclaration": 11901,
                                                            "type": "address"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9877,
                                                                    "type": "struct IOrder.order memory",
                                                                    "value": "orderByCounterparty"
                                                                },
                                                                "id": 9904,
                                                                "name": "Identifier",
                                                                "src": "8274:19:19"
                                                            }
                                                        ],
                                                        "id": 9905,
                                                        "name": "MemberAccess",
                                                        "src": "8274:25:19"
                                                    }
                                                ],
                                                "id": 9906,
                                                "name": "Conditional",
                                                "src": "8214:85:19"
                                            }
                                        ],
                                        "id": 9907,
                                        "name": "VariableDeclarationStatement",
                                        "src": "8198:101:19"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                9909
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "counterparty",
                                                    "scope": 10084,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "address",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 9908,
                                                        "name": "ElementaryTypeName",
                                                        "src": "8309:7:19"
                                                    }
                                                ],
                                                "id": 9909,
                                                "name": "VariableDeclaration",
                                                "src": "8309:20:19"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "address"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "tokenIn",
                                                                    "referencedDeclaration": 11903,
                                                                    "type": "address"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9877,
                                                                            "type": "struct IOrder.order memory",
                                                                            "value": "orderByCounterparty"
                                                                        },
                                                                        "id": 9910,
                                                                        "name": "Identifier",
                                                                        "src": "8332:19:19"
                                                                    }
                                                                ],
                                                                "id": 9911,
                                                                "name": "MemberAccess",
                                                                "src": "8332:27:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9891,
                                                                    "type": "address",
                                                                    "value": "currencySettled"
                                                                },
                                                                "id": 9912,
                                                                "name": "Identifier",
                                                                "src": "8361:15:19"
                                                            }
                                                        ],
                                                        "id": 9913,
                                                        "name": "BinaryOperation",
                                                        "src": "8332:44:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "party",
                                                            "referencedDeclaration": 11901,
                                                            "type": "address"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9877,
                                                                    "type": "struct IOrder.order memory",
                                                                    "value": "orderByCounterparty"
                                                                },
                                                                "id": 9914,
                                                                "name": "Identifier",
                                                                "src": "8379:19:19"
                                                            }
                                                        ],
                                                        "id": 9915,
                                                        "name": "MemberAccess",
                                                        "src": "8379:25:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "party",
                                                            "referencedDeclaration": 11901,
                                                            "type": "address"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9867,
                                                                    "type": "struct IOrder.order memory",
                                                                    "value": "orderByParty"
                                                                },
                                                                "id": 9916,
                                                                "name": "Identifier",
                                                                "src": "8407:12:19"
                                                            }
                                                        ],
                                                        "id": 9917,
                                                        "name": "MemberAccess",
                                                        "src": "8407:18:19"
                                                    }
                                                ],
                                                "id": 9918,
                                                "name": "Conditional",
                                                "src": "8332:93:19"
                                            }
                                        ],
                                        "id": 9919,
                                        "name": "VariableDeclarationStatement",
                                        "src": "8309:116:19"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                9921
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "amount",
                                                    "scope": 10084,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 9920,
                                                        "name": "ElementaryTypeName",
                                                        "src": "8435:7:19"
                                                    }
                                                ],
                                                "id": 9921,
                                                "name": "VariableDeclaration",
                                                "src": "8435:14:19"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "member_name": "securityTraded",
                                                    "referencedDeclaration": 12271,
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9848,
                                                            "type": "struct ITrade.trade memory",
                                                            "value": "tradeToReport"
                                                        },
                                                        "id": 9922,
                                                        "name": "Identifier",
                                                        "src": "8452:13:19"
                                                    }
                                                ],
                                                "id": 9923,
                                                "name": "MemberAccess",
                                                "src": "8452:28:19"
                                            }
                                        ],
                                        "id": 9924,
                                        "name": "VariableDeclarationStatement",
                                        "src": "8435:45:19"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                9926
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "_DPID",
                                                    "scope": 10084,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "bytes32",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "bytes32",
                                                            "type": "bytes32"
                                                        },
                                                        "id": 9925,
                                                        "name": "ElementaryTypeName",
                                                        "src": "8491:7:19"
                                                    }
                                                ],
                                                "id": 9926,
                                                "name": "VariableDeclaration",
                                                "src": "8491:13:19"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "bytes32",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10792,
                                                            "type": "function (address) view returns (bytes32)",
                                                            "value": "getTransferAgent"
                                                        },
                                                        "id": 9927,
                                                        "name": "Identifier",
                                                        "src": "8507:16:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9885,
                                                            "type": "address",
                                                            "value": "securityTraded"
                                                        },
                                                        "id": 9928,
                                                        "name": "Identifier",
                                                        "src": "8524:14:19"
                                                    }
                                                ],
                                                "id": 9929,
                                                "name": "FunctionCall",
                                                "src": "8507:32:19"
                                            }
                                        ],
                                        "id": 9930,
                                        "name": "VariableDeclarationStatement",
                                        "src": "8491:48:19"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                9932
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "price",
                                                    "scope": 10084,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 9931,
                                                        "name": "ElementaryTypeName",
                                                        "src": "8549:7:19"
                                                    }
                                                ],
                                                "id": 9932,
                                                "name": "VariableDeclaration",
                                                "src": "8549:13:19"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "uint256",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "divDown",
                                                            "referencedDeclaration": 631,
                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 780,
                                                                    "type": "type(library FixedPoint)",
                                                                    "value": "FixedPoint"
                                                                },
                                                                "id": 9933,
                                                                "name": "Identifier",
                                                                "src": "8565:10:19"
                                                            }
                                                        ],
                                                        "id": 9934,
                                                        "name": "MemberAccess",
                                                        "src": "8565:18:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 10929,
                                                                    "type": "function (uint256,uint256) pure returns (uint256)",
                                                                    "value": "_upscale"
                                                                },
                                                                "id": 9935,
                                                                "name": "Identifier",
                                                                "src": "8584:8:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "currencyTraded",
                                                                    "referencedDeclaration": 12273,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9848,
                                                                            "type": "struct ITrade.trade memory",
                                                                            "value": "tradeToReport"
                                                                        },
                                                                        "id": 9936,
                                                                        "name": "Identifier",
                                                                        "src": "8593:13:19"
                                                                    }
                                                                ],
                                                                "id": 9937,
                                                                "name": "MemberAccess",
                                                                "src": "8593:28:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                                    "typeString": "contract IERC20"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 10895,
                                                                            "type": "function (contract IERC20) view returns (uint256)",
                                                                            "value": "_computeScalingFactor"
                                                                        },
                                                                        "id": 9938,
                                                                        "name": "Identifier",
                                                                        "src": "8623:21:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "contract IERC20",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 2938,
                                                                                    "type": "type(contract IERC20)",
                                                                                    "value": "IERC20"
                                                                                },
                                                                                "id": 9939,
                                                                                "name": "Identifier",
                                                                                "src": "8645:6:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 9891,
                                                                                    "type": "address",
                                                                                    "value": "currencySettled"
                                                                                },
                                                                                "id": 9940,
                                                                                "name": "Identifier",
                                                                                "src": "8652:15:19"
                                                                            }
                                                                        ],
                                                                        "id": 9941,
                                                                        "name": "FunctionCall",
                                                                        "src": "8645:23:19"
                                                                    }
                                                                ],
                                                                "id": 9942,
                                                                "name": "FunctionCall",
                                                                "src": "8623:46:19"
                                                            }
                                                        ],
                                                        "id": 9943,
                                                        "name": "FunctionCall",
                                                        "src": "8584:86:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 10929,
                                                                    "type": "function (uint256,uint256) pure returns (uint256)",
                                                                    "value": "_upscale"
                                                                },
                                                                "id": 9944,
                                                                "name": "Identifier",
                                                                "src": "8672:8:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "securityTraded",
                                                                    "referencedDeclaration": 12271,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9848,
                                                                            "type": "struct ITrade.trade memory",
                                                                            "value": "tradeToReport"
                                                                        },
                                                                        "id": 9945,
                                                                        "name": "Identifier",
                                                                        "src": "8681:13:19"
                                                                    }
                                                                ],
                                                                "id": 9946,
                                                                "name": "MemberAccess",
                                                                "src": "8681:28:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                                    "typeString": "contract IERC20"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 10895,
                                                                            "type": "function (contract IERC20) view returns (uint256)",
                                                                            "value": "_computeScalingFactor"
                                                                        },
                                                                        "id": 9947,
                                                                        "name": "Identifier",
                                                                        "src": "8711:21:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "contract IERC20",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 2938,
                                                                                    "type": "type(contract IERC20)",
                                                                                    "value": "IERC20"
                                                                                },
                                                                                "id": 9948,
                                                                                "name": "Identifier",
                                                                                "src": "8733:6:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 9885,
                                                                                    "type": "address",
                                                                                    "value": "securityTraded"
                                                                                },
                                                                                "id": 9949,
                                                                                "name": "Identifier",
                                                                                "src": "8740:14:19"
                                                                            }
                                                                        ],
                                                                        "id": 9950,
                                                                        "name": "FunctionCall",
                                                                        "src": "8733:22:19"
                                                                    }
                                                                ],
                                                                "id": 9951,
                                                                "name": "FunctionCall",
                                                                "src": "8711:45:19"
                                                            }
                                                        ],
                                                        "id": 9952,
                                                        "name": "FunctionCall",
                                                        "src": "8672:85:19"
                                                    }
                                                ],
                                                "id": 9953,
                                                "name": "FunctionCall",
                                                "src": "8565:193:19"
                                            }
                                        ],
                                        "id": 9954,
                                        "name": "VariableDeclarationStatement",
                                        "src": "8549:209:19"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                9958
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "tradeToSettle",
                                                    "scope": 10084,
                                                    "stateVariable": false,
                                                    "storageLocation": "memory",
                                                    "type": "struct ISettlor.settlement",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "ISettlor.settlement",
                                                            "referencedDeclaration": 12173,
                                                            "type": "struct ISettlor.settlement"
                                                        },
                                                        "id": 9957,
                                                        "name": "UserDefinedTypeName",
                                                        "src": "8768:19:19"
                                                    }
                                                ],
                                                "id": 9958,
                                                "name": "VariableDeclaration",
                                                "src": "8768:40:19"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": true,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        "transferor",
                                                        "transferee",
                                                        "security",
                                                        "status",
                                                        "currency",
                                                        "price",
                                                        "unitsToTransfer",
                                                        "consideration",
                                                        "executionDate",
                                                        "partyRef",
                                                        "counterpartyRef",
                                                        "DPID",
                                                        "orderPool"
                                                    ],
                                                    "tryCall": false,
                                                    "type": "struct ISettlor.settlement memory",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_4be840e351422c3b302abb79aa7db05560ead7e387e413320822a342fca3f54e",
                                                                    "typeString": "literal_string \"Pending\""
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_contract$_IOrder_$11977",
                                                                    "typeString": "contract IOrder"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "settlement",
                                                            "referencedDeclaration": 12173,
                                                            "type": "type(struct ISettlor.settlement storage pointer)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 12258,
                                                                    "type": "type(contract ISettlor)",
                                                                    "value": "ISettlor"
                                                                },
                                                                "id": 9959,
                                                                "name": "Identifier",
                                                                "src": "8811:8:19"
                                                            }
                                                        ],
                                                        "id": 9960,
                                                        "name": "MemberAccess",
                                                        "src": "8811:19:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9897,
                                                            "type": "address",
                                                            "value": "party"
                                                        },
                                                        "id": 9961,
                                                        "name": "Identifier",
                                                        "src": "8857:5:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9909,
                                                            "type": "address",
                                                            "value": "counterparty"
                                                        },
                                                        "id": 9962,
                                                        "name": "Identifier",
                                                        "src": "8907:12:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9885,
                                                            "type": "address",
                                                            "value": "securityTraded"
                                                        },
                                                        "id": 9963,
                                                        "name": "Identifier",
                                                        "src": "8961:14:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "50656e64696e67",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "string",
                                                            "type": "literal_string \"Pending\"",
                                                            "value": "Pending"
                                                        },
                                                        "id": 9964,
                                                        "name": "Literal",
                                                        "src": "8997:9:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9891,
                                                            "type": "address",
                                                            "value": "currencySettled"
                                                        },
                                                        "id": 9965,
                                                        "name": "Identifier",
                                                        "src": "9030:15:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9932,
                                                            "type": "uint256",
                                                            "value": "price"
                                                        },
                                                        "id": 9966,
                                                        "name": "Identifier",
                                                        "src": "9066:5:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9921,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 9967,
                                                        "name": "Identifier",
                                                        "src": "9102:6:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 10929,
                                                                    "type": "function (uint256,uint256) pure returns (uint256)",
                                                                    "value": "_upscale"
                                                                },
                                                                "id": 9968,
                                                                "name": "Identifier",
                                                                "src": "9137:8:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "currencyTraded",
                                                                    "referencedDeclaration": 12273,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9848,
                                                                            "type": "struct ITrade.trade memory",
                                                                            "value": "tradeToReport"
                                                                        },
                                                                        "id": 9969,
                                                                        "name": "Identifier",
                                                                        "src": "9146:13:19"
                                                                    }
                                                                ],
                                                                "id": 9970,
                                                                "name": "MemberAccess",
                                                                "src": "9146:28:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                                    "typeString": "contract IERC20"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 10895,
                                                                            "type": "function (contract IERC20) view returns (uint256)",
                                                                            "value": "_computeScalingFactor"
                                                                        },
                                                                        "id": 9971,
                                                                        "name": "Identifier",
                                                                        "src": "9176:21:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "contract IERC20",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 2938,
                                                                                    "type": "type(contract IERC20)",
                                                                                    "value": "IERC20"
                                                                                },
                                                                                "id": 9972,
                                                                                "name": "Identifier",
                                                                                "src": "9198:6:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 9891,
                                                                                    "type": "address",
                                                                                    "value": "currencySettled"
                                                                                },
                                                                                "id": 9973,
                                                                                "name": "Identifier",
                                                                                "src": "9205:15:19"
                                                                            }
                                                                        ],
                                                                        "id": 9974,
                                                                        "name": "FunctionCall",
                                                                        "src": "9198:23:19"
                                                                    }
                                                                ],
                                                                "id": 9975,
                                                                "name": "FunctionCall",
                                                                "src": "9176:46:19"
                                                            }
                                                        ],
                                                        "id": 9976,
                                                        "name": "FunctionCall",
                                                        "src": "9137:86:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "dt",
                                                            "referencedDeclaration": 12269,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9848,
                                                                    "type": "struct ITrade.trade memory",
                                                                    "value": "tradeToReport"
                                                                },
                                                                "id": 9977,
                                                                "name": "Identifier",
                                                                "src": "9252:13:19"
                                                            }
                                                        ],
                                                        "id": 9978,
                                                        "name": "MemberAccess",
                                                        "src": "9252:16:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "bytes32"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "tokenIn",
                                                                            "referencedDeclaration": 11903,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 9867,
                                                                                    "type": "struct IOrder.order memory",
                                                                                    "value": "orderByParty"
                                                                                },
                                                                                "id": 9979,
                                                                                "name": "Identifier",
                                                                                "src": "9292:12:19"
                                                                            }
                                                                        ],
                                                                        "id": 9980,
                                                                        "name": "MemberAccess",
                                                                        "src": "9292:20:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9885,
                                                                            "type": "address",
                                                                            "value": "securityTraded"
                                                                        },
                                                                        "id": 9981,
                                                                        "name": "Identifier",
                                                                        "src": "9314:14:19"
                                                                    }
                                                                ],
                                                                "id": 9982,
                                                                "name": "BinaryOperation",
                                                                "src": "9292:36:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "partyRef",
                                                                    "referencedDeclaration": 12265,
                                                                    "type": "bytes32"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9848,
                                                                            "type": "struct ITrade.trade memory",
                                                                            "value": "tradeToReport"
                                                                        },
                                                                        "id": 9983,
                                                                        "name": "Identifier",
                                                                        "src": "9331:13:19"
                                                                    }
                                                                ],
                                                                "id": 9984,
                                                                "name": "MemberAccess",
                                                                "src": "9331:22:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "counterpartyRef",
                                                                    "referencedDeclaration": 12267,
                                                                    "type": "bytes32"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9848,
                                                                            "type": "struct ITrade.trade memory",
                                                                            "value": "tradeToReport"
                                                                        },
                                                                        "id": 9985,
                                                                        "name": "Identifier",
                                                                        "src": "9356:13:19"
                                                                    }
                                                                ],
                                                                "id": 9986,
                                                                "name": "MemberAccess",
                                                                "src": "9356:29:19"
                                                            }
                                                        ],
                                                        "id": 9987,
                                                        "name": "Conditional",
                                                        "src": "9292:93:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "bytes32"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_address",
                                                                        "typeString": "address"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "tokenIn",
                                                                            "referencedDeclaration": 11903,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 9877,
                                                                                    "type": "struct IOrder.order memory",
                                                                                    "value": "orderByCounterparty"
                                                                                },
                                                                                "id": 9988,
                                                                                "name": "Identifier",
                                                                                "src": "9416:19:19"
                                                                            }
                                                                        ],
                                                                        "id": 9989,
                                                                        "name": "MemberAccess",
                                                                        "src": "9416:27:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9891,
                                                                            "type": "address",
                                                                            "value": "currencySettled"
                                                                        },
                                                                        "id": 9990,
                                                                        "name": "Identifier",
                                                                        "src": "9445:15:19"
                                                                    }
                                                                ],
                                                                "id": 9991,
                                                                "name": "BinaryOperation",
                                                                "src": "9416:44:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "counterpartyRef",
                                                                    "referencedDeclaration": 12267,
                                                                    "type": "bytes32"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9848,
                                                                            "type": "struct ITrade.trade memory",
                                                                            "value": "tradeToReport"
                                                                        },
                                                                        "id": 9992,
                                                                        "name": "Identifier",
                                                                        "src": "9463:13:19"
                                                                    }
                                                                ],
                                                                "id": 9993,
                                                                "name": "MemberAccess",
                                                                "src": "9463:29:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "partyRef",
                                                                    "referencedDeclaration": 12265,
                                                                    "type": "bytes32"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9848,
                                                                            "type": "struct ITrade.trade memory",
                                                                            "value": "tradeToReport"
                                                                        },
                                                                        "id": 9994,
                                                                        "name": "Identifier",
                                                                        "src": "9495:13:19"
                                                                    }
                                                                ],
                                                                "id": 9995,
                                                                "name": "MemberAccess",
                                                                "src": "9495:22:19"
                                                            }
                                                        ],
                                                        "id": 9996,
                                                        "name": "Conditional",
                                                        "src": "9416:101:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9926,
                                                            "type": "bytes32",
                                                            "value": "_DPID"
                                                        },
                                                        "id": 9997,
                                                        "name": "Identifier",
                                                        "src": "9537:5:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9850,
                                                            "type": "contract IOrder",
                                                            "value": "orderbook"
                                                        },
                                                        "id": 9998,
                                                        "name": "Identifier",
                                                        "src": "9567:9:19"
                                                    }
                                                ],
                                                "id": 9999,
                                                "name": "FunctionCall",
                                                "src": "8811:776:19"
                                            }
                                        ],
                                        "id": 10000,
                                        "name": "VariableDeclarationStatement",
                                        "src": "8768:819:19"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                10002
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "ref",
                                                    "scope": 10084,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "bytes32",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "bytes32",
                                                            "type": "bytes32"
                                                        },
                                                        "id": 10001,
                                                        "name": "ElementaryTypeName",
                                                        "src": "9597:7:19"
                                                    }
                                                ],
                                                "id": 10002,
                                                "name": "VariableDeclaration",
                                                "src": "9597:11:19"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "bytes32",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes_memory_ptr",
                                                                    "typeString": "bytes memory"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": -8,
                                                            "type": "function (bytes memory) pure returns (bytes32)",
                                                            "value": "keccak256"
                                                        },
                                                        "id": 10003,
                                                        "name": "Identifier",
                                                        "src": "9611:9:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "bytes memory",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "member_name": "encodePacked",
                                                                    "type": "function () pure returns (bytes memory)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": -1,
                                                                            "type": "abi",
                                                                            "value": "abi"
                                                                        },
                                                                        "id": 10004,
                                                                        "name": "Identifier",
                                                                        "src": "9621:3:19"
                                                                    }
                                                                ],
                                                                "id": 10005,
                                                                "name": "MemberAccess",
                                                                "src": "9621:16:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "partyRef",
                                                                    "referencedDeclaration": 12265,
                                                                    "type": "bytes32"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9848,
                                                                            "type": "struct ITrade.trade memory",
                                                                            "value": "tradeToReport"
                                                                        },
                                                                        "id": 10006,
                                                                        "name": "Identifier",
                                                                        "src": "9638:13:19"
                                                                    }
                                                                ],
                                                                "id": 10007,
                                                                "name": "MemberAccess",
                                                                "src": "9638:22:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "counterpartyRef",
                                                                    "referencedDeclaration": 12267,
                                                                    "type": "bytes32"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9848,
                                                                            "type": "struct ITrade.trade memory",
                                                                            "value": "tradeToReport"
                                                                        },
                                                                        "id": 10008,
                                                                        "name": "Identifier",
                                                                        "src": "9662:13:19"
                                                                    }
                                                                ],
                                                                "id": 10009,
                                                                "name": "MemberAccess",
                                                                "src": "9662:29:19"
                                                            }
                                                        ],
                                                        "id": 10010,
                                                        "name": "FunctionCall",
                                                        "src": "9621:71:19"
                                                    }
                                                ],
                                                "id": 10011,
                                                "name": "FunctionCall",
                                                "src": "9611:82:19"
                                            }
                                        ],
                                        "id": 10012,
                                        "name": "VariableDeclarationStatement",
                                        "src": "9597:96:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "struct ISettlor.settlement storage ref"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "type": "struct ISettlor.settlement storage ref"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9327,
                                                                    "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                    "value": "settlements"
                                                                },
                                                                "id": 10013,
                                                                "name": "Identifier",
                                                                "src": "9764:11:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 10002,
                                                                    "type": "bytes32",
                                                                    "value": "ref"
                                                                },
                                                                "id": 10014,
                                                                "name": "Identifier",
                                                                "src": "9776:3:19"
                                                            }
                                                        ],
                                                        "id": 10015,
                                                        "name": "IndexAccess",
                                                        "src": "9764:16:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9958,
                                                            "type": "struct ISettlor.settlement memory",
                                                            "value": "tradeToSettle"
                                                        },
                                                        "id": 10016,
                                                        "name": "Identifier",
                                                        "src": "9783:13:19"
                                                    }
                                                ],
                                                "id": 10017,
                                                "name": "Assignment",
                                                "src": "9764:32:19"
                                            }
                                        ],
                                        "id": 10018,
                                        "name": "ExpressionStatement",
                                        "src": "9764:32:19"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                10022
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "subscription",
                                                    "scope": 10084,
                                                    "stateVariable": false,
                                                    "storageLocation": "memory",
                                                    "type": "struct ISettlor.subscriptions",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "ISettlor.subscriptions",
                                                            "referencedDeclaration": 12146,
                                                            "type": "struct ISettlor.subscriptions"
                                                        },
                                                        "id": 10021,
                                                        "name": "UserDefinedTypeName",
                                                        "src": "9810:22:19"
                                                    }
                                                ],
                                                "id": 10022,
                                                "name": "VariableDeclaration",
                                                "src": "9810:42:19"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": true,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        "investor",
                                                        "asset",
                                                        "currency",
                                                        "amount",
                                                        "price"
                                                    ],
                                                    "tryCall": false,
                                                    "type": "struct ISettlor.subscriptions memory",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "subscriptions",
                                                            "referencedDeclaration": 12146,
                                                            "type": "type(struct ISettlor.subscriptions storage pointer)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 12258,
                                                                    "type": "type(contract ISettlor)",
                                                                    "value": "ISettlor"
                                                                },
                                                                "id": 10023,
                                                                "name": "Identifier",
                                                                "src": "9855:8:19"
                                                            }
                                                        ],
                                                        "id": 10024,
                                                        "name": "MemberAccess",
                                                        "src": "9855:22:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9909,
                                                            "type": "address",
                                                            "value": "counterparty"
                                                        },
                                                        "id": 10025,
                                                        "name": "Identifier",
                                                        "src": "9906:12:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9885,
                                                            "type": "address",
                                                            "value": "securityTraded"
                                                        },
                                                        "id": 10026,
                                                        "name": "Identifier",
                                                        "src": "9965:14:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9891,
                                                            "type": "address",
                                                            "value": "currencySettled"
                                                        },
                                                        "id": 10027,
                                                        "name": "Identifier",
                                                        "src": "10007:15:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9921,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 10028,
                                                        "name": "Identifier",
                                                        "src": "10049:6:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9932,
                                                            "type": "uint256",
                                                            "value": "price"
                                                        },
                                                        "id": 10029,
                                                        "name": "Identifier",
                                                        "src": "10083:5:19"
                                                    }
                                                ],
                                                "id": 10030,
                                                "name": "FunctionCall",
                                                "src": "9855:249:19"
                                            }
                                        ],
                                        "id": 10031,
                                        "name": "VariableDeclarationStatement",
                                        "src": "9810:294:19"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                10033
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "poolId",
                                                    "scope": 10084,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "bytes32",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "bytes32",
                                                            "type": "bytes32"
                                                        },
                                                        "id": 10032,
                                                        "name": "ElementaryTypeName",
                                                        "src": "10118:7:19"
                                                    }
                                                ],
                                                "id": 10033,
                                                "name": "VariableDeclaration",
                                                "src": "10118:14:19"
                                            },
                                            {
                                                "attributes": {
                                                    "arguments": [
                                                        null
                                                    ],
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "bytes32",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                null
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "getPoolId",
                                                            "referencedDeclaration": 11920,
                                                            "type": "function () view external returns (bytes32)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9850,
                                                                    "type": "contract IOrder",
                                                                    "value": "orderbook"
                                                                },
                                                                "id": 10034,
                                                                "name": "Identifier",
                                                                "src": "10135:9:19"
                                                            }
                                                        ],
                                                        "id": 10035,
                                                        "name": "MemberAccess",
                                                        "src": "10135:19:19"
                                                    }
                                                ],
                                                "id": 10036,
                                                "name": "FunctionCall",
                                                "src": "10135:21:19"
                                            }
                                        ],
                                        "id": 10037,
                                        "name": "VariableDeclarationStatement",
                                        "src": "10118:38:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_struct$_subscriptions_$12146_memory_ptr",
                                                                    "typeString": "struct ISettlor.subscriptions memory"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "push",
                                                            "type": "function (struct ISettlor.subscriptions storage ref)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct ISettlor.subscriptions storage ref[] storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9353,
                                                                            "type": "mapping(bytes32 => struct ISettlor.subscriptions storage ref[] storage ref)",
                                                                            "value": "investors"
                                                                        },
                                                                        "id": 10038,
                                                                        "name": "Identifier",
                                                                        "src": "10170:9:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 10033,
                                                                            "type": "bytes32",
                                                                            "value": "poolId"
                                                                        },
                                                                        "id": 10039,
                                                                        "name": "Identifier",
                                                                        "src": "10180:6:19"
                                                                    }
                                                                ],
                                                                "id": 10040,
                                                                "name": "IndexAccess",
                                                                "src": "10170:17:19"
                                                            }
                                                        ],
                                                        "id": 10041,
                                                        "name": "MemberAccess",
                                                        "src": "10170:22:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10022,
                                                            "type": "struct ISettlor.subscriptions memory",
                                                            "value": "subscription"
                                                        },
                                                        "id": 10042,
                                                        "name": "Identifier",
                                                        "src": "10193:12:19"
                                                    }
                                                ],
                                                "id": 10043,
                                                "name": "FunctionCall",
                                                "src": "10170:36:19"
                                            }
                                        ],
                                        "id": 10044,
                                        "name": "ExpressionStatement",
                                        "src": "10170:36:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "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"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9420,
                                                            "type": "function (bytes32,address,address,address,address,uint256,uint256,bytes32,bytes32,uint256)",
                                                            "value": "subscribers"
                                                        },
                                                        "id": 10045,
                                                        "name": "Identifier",
                                                        "src": "10225:11:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10033,
                                                            "type": "bytes32",
                                                            "value": "poolId"
                                                        },
                                                        "id": 10046,
                                                        "name": "Identifier",
                                                        "src": "10237:6:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9897,
                                                            "type": "address",
                                                            "value": "party"
                                                        },
                                                        "id": 10047,
                                                        "name": "Identifier",
                                                        "src": "10245:5:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9909,
                                                            "type": "address",
                                                            "value": "counterparty"
                                                        },
                                                        "id": 10048,
                                                        "name": "Identifier",
                                                        "src": "10252:12:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9885,
                                                            "type": "address",
                                                            "value": "securityTraded"
                                                        },
                                                        "id": 10049,
                                                        "name": "Identifier",
                                                        "src": "10266:14:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9891,
                                                            "type": "address",
                                                            "value": "currencySettled"
                                                        },
                                                        "id": 10050,
                                                        "name": "Identifier",
                                                        "src": "10282:15:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9921,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 10051,
                                                        "name": "Identifier",
                                                        "src": "10299:6:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "price",
                                                            "referencedDeclaration": 12145,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 10022,
                                                                    "type": "struct ISettlor.subscriptions memory",
                                                                    "value": "subscription"
                                                                },
                                                                "id": 10052,
                                                                "name": "Identifier",
                                                                "src": "10307:12:19"
                                                            }
                                                        ],
                                                        "id": 10053,
                                                        "name": "MemberAccess",
                                                        "src": "10307:18:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10002,
                                                            "type": "bytes32",
                                                            "value": "ref"
                                                        },
                                                        "id": 10054,
                                                        "name": "Identifier",
                                                        "src": "10327:3:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "DPID",
                                                            "referencedDeclaration": 12160,
                                                            "type": "bytes32"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9958,
                                                                    "type": "struct ISettlor.settlement memory",
                                                                    "value": "tradeToSettle"
                                                                },
                                                                "id": 10055,
                                                                "name": "Identifier",
                                                                "src": "10332:13:19"
                                                            }
                                                        ],
                                                        "id": 10056,
                                                        "name": "MemberAccess",
                                                        "src": "10332:18:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "timestamp",
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": -4,
                                                                    "type": "block",
                                                                    "value": "block"
                                                                },
                                                                "id": 10057,
                                                                "name": "Identifier",
                                                                "src": "10352:5:19"
                                                            }
                                                        ],
                                                        "id": 10058,
                                                        "name": "MemberAccess",
                                                        "src": "10352:15:19"
                                                    }
                                                ],
                                                "id": 10059,
                                                "name": "FunctionCall",
                                                "src": "10225:143:19"
                                            }
                                        ],
                                        "id": 10060,
                                        "name": "EmitStatement",
                                        "src": "10220:148:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "push",
                                                            "type": "function (bytes32)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "bytes32[] storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9332,
                                                                            "type": "mapping(bytes32 => bytes32[] storage ref)",
                                                                            "value": "trades"
                                                                        },
                                                                        "id": 10061,
                                                                        "name": "Identifier",
                                                                        "src": "10382:6:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "DPID",
                                                                            "referencedDeclaration": 12160,
                                                                            "type": "bytes32"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 9958,
                                                                                    "type": "struct ISettlor.settlement memory",
                                                                                    "value": "tradeToSettle"
                                                                                },
                                                                                "id": 10062,
                                                                                "name": "Identifier",
                                                                                "src": "10389:13:19"
                                                                            }
                                                                        ],
                                                                        "id": 10063,
                                                                        "name": "MemberAccess",
                                                                        "src": "10389:18:19"
                                                                    }
                                                                ],
                                                                "id": 10064,
                                                                "name": "IndexAccess",
                                                                "src": "10382:26:19"
                                                            }
                                                        ],
                                                        "id": 10065,
                                                        "name": "MemberAccess",
                                                        "src": "10382:31:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10002,
                                                            "type": "bytes32",
                                                            "value": "ref"
                                                        },
                                                        "id": 10066,
                                                        "name": "Identifier",
                                                        "src": "10414:3:19"
                                                    }
                                                ],
                                                "id": 10067,
                                                "name": "FunctionCall",
                                                "src": "10382:36:19"
                                            }
                                        ],
                                        "id": 10068,
                                        "name": "ExpressionStatement",
                                        "src": "10382:36:19"
                                    },
                                    {
                                        "attributes": {},
                                        "children": [
                                            {
                                                "attributes": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "==",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "address",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "getDP",
                                                                    "referencedDeclaration": 11116,
                                                                    "type": "function (address) view external returns (address)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9361,
                                                                            "type": "contract IFactory",
                                                                            "value": "products"
                                                                        },
                                                                        "id": 10069,
                                                                        "name": "Identifier",
                                                                        "src": "10435:8:19"
                                                                    }
                                                                ],
                                                                "id": 10070,
                                                                "name": "MemberAccess",
                                                                "src": "10435:14:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9885,
                                                                    "type": "address",
                                                                    "value": "securityTraded"
                                                                },
                                                                "id": 10071,
                                                                "name": "Identifier",
                                                                "src": "10450:14:19"
                                                            }
                                                        ],
                                                        "id": 10072,
                                                        "name": "FunctionCall",
                                                        "src": "10435:30:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "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)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "address"
                                                                        },
                                                                        "id": 10073,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "10467:7:19"
                                                                    }
                                                                ],
                                                                "id": 10074,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "10467:7:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "hexvalue": "307830",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0x0"
                                                                },
                                                                "id": 10075,
                                                                "name": "Literal",
                                                                "src": "10475:3:19"
                                                            }
                                                        ],
                                                        "id": 10076,
                                                        "name": "FunctionCall",
                                                        "src": "10467:12:19"
                                                    }
                                                ],
                                                "id": 10077,
                                                "name": "BinaryOperation",
                                                "src": "10435:44:19"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "tuple()",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_bytes32",
                                                                            "typeString": "bytes32"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_stringliteral_3835a712a1868db4190e4c5c9d4a588f4b967c58d59a16f49582013eccd94268",
                                                                            "typeString": "literal_string \"Confirm\""
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 10748,
                                                                    "type": "function (bytes32,bytes32)",
                                                                    "value": "setSettlement"
                                                                },
                                                                "id": 10078,
                                                                "name": "Identifier",
                                                                "src": "10527:13:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 10002,
                                                                    "type": "bytes32",
                                                                    "value": "ref"
                                                                },
                                                                "id": 10079,
                                                                "name": "Identifier",
                                                                "src": "10541:3:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "hexvalue": "436f6e6669726d",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "token": "string",
                                                                    "type": "literal_string \"Confirm\"",
                                                                    "value": "Confirm"
                                                                },
                                                                "id": 10080,
                                                                "name": "Literal",
                                                                "src": "10546:9:19"
                                                            }
                                                        ],
                                                        "id": 10081,
                                                        "name": "FunctionCall",
                                                        "src": "10527:29:19"
                                                    }
                                                ],
                                                "id": 10082,
                                                "name": "ExpressionStatement",
                                                "src": "10527:29:19"
                                            }
                                        ],
                                        "id": 10083,
                                        "name": "IfStatement",
                                        "src": "10432:124:19"
                                    }
                                ],
                                "id": 10084,
                                "name": "Block",
                                "src": "7818:2757:19"
                            }
                        ],
                        "id": 10085,
                        "name": "FunctionDefinition",
                        "src": "7720:2855:19"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                12205
                            ],
                            "functionSelector": "c9fca3c7",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "getSettlementRequests",
                            "scope": 10930,
                            "stateMutability": "view",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "text": "Fetches trade settlement requests for depository participant\n@param  dpid         identifier of depository participant (eg, transfer agent) that is authorized to settle the asset "
                                },
                                "id": 10086,
                                "name": "StructuredDocumentation",
                                "src": "10585:207:19"
                            },
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 10092,
                                "name": "OverrideSpecifier",
                                "src": "10858:8:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "dpid",
                                            "scope": 10109,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 10087,
                                                "name": "ElementaryTypeName",
                                                "src": "10828:7:19"
                                            }
                                        ],
                                        "id": 10088,
                                        "name": "VariableDeclaration",
                                        "src": "10828:12:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "poolId",
                                            "scope": 10109,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 10089,
                                                "name": "ElementaryTypeName",
                                                "src": "10842:7:19"
                                            }
                                        ],
                                        "id": 10090,
                                        "name": "VariableDeclaration",
                                        "src": "10842:14:19"
                                    }
                                ],
                                "id": 10091,
                                "name": "ParameterList",
                                "src": "10827:30:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "",
                                            "scope": 10109,
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "type": "bytes32[]",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "type": "bytes32[]"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "bytes32",
                                                            "type": "bytes32"
                                                        },
                                                        "id": 10100,
                                                        "name": "ElementaryTypeName",
                                                        "src": "10940:7:19"
                                                    }
                                                ],
                                                "id": 10101,
                                                "name": "ArrayTypeName",
                                                "src": "10940:9:19"
                                            }
                                        ],
                                        "id": 10102,
                                        "name": "VariableDeclaration",
                                        "src": "10940:16:19"
                                    }
                                ],
                                "id": 10103,
                                "name": "ParameterList",
                                "src": "10939:18:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 9458,
                                            "type": "modifier (address,address)",
                                            "value": "onlyIssueManager"
                                        },
                                        "id": 10093,
                                        "name": "Identifier",
                                        "src": "10881:16:19"
                                    },
                                    {
                                        "attributes": {
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "member_name": "sender",
                                            "type": "address payable"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": -15,
                                                    "type": "msg",
                                                    "value": "msg"
                                                },
                                                "id": 10094,
                                                "name": "Identifier",
                                                "src": "10898:3:19"
                                            }
                                        ],
                                        "id": 10095,
                                        "name": "MemberAccess",
                                        "src": "10898:10:19"
                                    },
                                    {
                                        "attributes": {
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "type": "address"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 9344,
                                                    "type": "mapping(bytes32 => address)",
                                                    "value": "poolSecurity"
                                                },
                                                "id": 10096,
                                                "name": "Identifier",
                                                "src": "10910:12:19"
                                            },
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 10090,
                                                    "type": "bytes32",
                                                    "value": "poolId"
                                                },
                                                "id": 10097,
                                                "name": "Identifier",
                                                "src": "10923:6:19"
                                            }
                                        ],
                                        "id": 10098,
                                        "name": "IndexAccess",
                                        "src": "10910:20:19"
                                    }
                                ],
                                "id": 10099,
                                "name": "ModifierInvocation",
                                "src": "10881:50:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 10103
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "bytes32[] storage ref"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9332,
                                                            "type": "mapping(bytes32 => bytes32[] storage ref)",
                                                            "value": "trades"
                                                        },
                                                        "id": 10104,
                                                        "name": "Identifier",
                                                        "src": "10974:6:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10088,
                                                            "type": "bytes32",
                                                            "value": "dpid"
                                                        },
                                                        "id": 10105,
                                                        "name": "Identifier",
                                                        "src": "10981:4:19"
                                                    }
                                                ],
                                                "id": 10106,
                                                "name": "IndexAccess",
                                                "src": "10974:12:19"
                                            }
                                        ],
                                        "id": 10107,
                                        "name": "Return",
                                        "src": "10967:19:19"
                                    }
                                ],
                                "id": 10108,
                                "name": "Block",
                                "src": "10957:36:19"
                            }
                        ],
                        "id": 10109,
                        "name": "FunctionDefinition",
                        "src": "10797:196:19"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                12212
                            ],
                            "functionSelector": "79a7dc0e",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getSettlementRequest",
                            "scope": 10930,
                            "stateMutability": "view",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "text": "Fetches a specific trade settlement request        \n@param  ref         reference to the trade"
                                },
                                "id": 10110,
                                "name": "StructuredDocumentation",
                                "src": "10999:122:19"
                            },
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 10114,
                                "name": "OverrideSpecifier",
                                "src": "11169:8:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "ref",
                                            "scope": 10130,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 10111,
                                                "name": "ElementaryTypeName",
                                                "src": "11156:7:19"
                                            }
                                        ],
                                        "id": 10112,
                                        "name": "VariableDeclaration",
                                        "src": "11156:11:19"
                                    }
                                ],
                                "id": 10113,
                                "name": "ParameterList",
                                "src": "11155:13:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "",
                                            "scope": 10130,
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "type": "struct ISettlor.settlement",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "settlement",
                                                    "referencedDeclaration": 12173,
                                                    "type": "struct ISettlor.settlement"
                                                },
                                                "id": 10115,
                                                "name": "UserDefinedTypeName",
                                                "src": "11200:10:19"
                                            }
                                        ],
                                        "id": 10116,
                                        "name": "VariableDeclaration",
                                        "src": "11200:17:19"
                                    }
                                ],
                                "id": 10117,
                                "name": "ParameterList",
                                "src": "11199:19:19"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_878d406bf8506eb539ea221b0ab14cb9762f555d7268c6377a26768d0098eb08",
                                                                    "typeString": "literal_string \"Invalid reference\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 10118,
                                                        "name": "Identifier",
                                                        "src": "11228:7:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "!=",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 10112,
                                                                    "type": "bytes32",
                                                                    "value": "ref"
                                                                },
                                                                "id": 10119,
                                                                "name": "Identifier",
                                                                "src": "11236:3:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "hexvalue": "",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "token": "string",
                                                                    "type": "literal_string \"\"",
                                                                    "value": ""
                                                                },
                                                                "id": 10120,
                                                                "name": "Literal",
                                                                "src": "11241:2:19"
                                                            }
                                                        ],
                                                        "id": 10121,
                                                        "name": "BinaryOperation",
                                                        "src": "11236:7:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "496e76616c6964207265666572656e6365",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "string",
                                                            "type": "literal_string \"Invalid reference\"",
                                                            "value": "Invalid reference"
                                                        },
                                                        "id": 10122,
                                                        "name": "Literal",
                                                        "src": "11245:19:19"
                                                    }
                                                ],
                                                "id": 10123,
                                                "name": "FunctionCall",
                                                "src": "11228:37:19"
                                            }
                                        ],
                                        "id": 10124,
                                        "name": "ExpressionStatement",
                                        "src": "11228:37:19"
                                    },
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 10117
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "struct ISettlor.settlement storage ref"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9327,
                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                            "value": "settlements"
                                                        },
                                                        "id": 10125,
                                                        "name": "Identifier",
                                                        "src": "11283:11:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10112,
                                                            "type": "bytes32",
                                                            "value": "ref"
                                                        },
                                                        "id": 10126,
                                                        "name": "Identifier",
                                                        "src": "11295:3:19"
                                                    }
                                                ],
                                                "id": 10127,
                                                "name": "IndexAccess",
                                                "src": "11283:16:19"
                                            }
                                        ],
                                        "id": 10128,
                                        "name": "Return",
                                        "src": "11276:23:19"
                                    }
                                ],
                                "id": 10129,
                                "name": "Block",
                                "src": "11218:88:19"
                            }
                        ],
                        "id": 10130,
                        "name": "FunctionDefinition",
                        "src": "11126:180:19"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                12239
                            ],
                            "functionSelector": "39c79e0c",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "close",
                            "scope": 10930,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 10134,
                                "name": "OverrideSpecifier",
                                "src": "11347:8:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "poolId",
                                            "scope": 10270,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 10131,
                                                "name": "ElementaryTypeName",
                                                "src": "11331:7:19"
                                            }
                                        ],
                                        "id": 10132,
                                        "name": "VariableDeclaration",
                                        "src": "11331:14:19"
                                    }
                                ],
                                "id": 10133,
                                "name": "ParameterList",
                                "src": "11330:16:19"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 10142,
                                "name": "ParameterList",
                                "src": "11416:0:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 9458,
                                            "type": "modifier (address,address)",
                                            "value": "onlyIssueManager"
                                        },
                                        "id": 10135,
                                        "name": "Identifier",
                                        "src": "11365:16:19"
                                    },
                                    {
                                        "attributes": {
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "member_name": "sender",
                                            "type": "address payable"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": -15,
                                                    "type": "msg",
                                                    "value": "msg"
                                                },
                                                "id": 10136,
                                                "name": "Identifier",
                                                "src": "11382:3:19"
                                            }
                                        ],
                                        "id": 10137,
                                        "name": "MemberAccess",
                                        "src": "11382:10:19"
                                    },
                                    {
                                        "attributes": {
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "type": "address"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 9344,
                                                    "type": "mapping(bytes32 => address)",
                                                    "value": "poolSecurity"
                                                },
                                                "id": 10138,
                                                "name": "Identifier",
                                                "src": "11394:12:19"
                                            },
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 10132,
                                                    "type": "bytes32",
                                                    "value": "poolId"
                                                },
                                                "id": 10139,
                                                "name": "Identifier",
                                                "src": "11407:6:19"
                                            }
                                        ],
                                        "id": 10140,
                                        "name": "IndexAccess",
                                        "src": "11394:20:19"
                                    }
                                ],
                                "id": 10141,
                                "name": "ModifierInvocation",
                                "src": "11365:50:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                10144
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "currency",
                                                    "scope": 10269,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "address",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 10143,
                                                        "name": "ElementaryTypeName",
                                                        "src": "11426:7:19"
                                                    }
                                                ],
                                                "id": 10144,
                                                "name": "VariableDeclaration",
                                                "src": "11426:16:19"
                                            },
                                            {
                                                "attributes": {
                                                    "arguments": [
                                                        null
                                                    ],
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "address",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                null
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "getCurrency",
                                                            "referencedDeclaration": 12066,
                                                            "type": "function () view external returns (address)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract ISecondaryIssuePool",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 12072,
                                                                            "type": "type(contract ISecondaryIssuePool)",
                                                                            "value": "ISecondaryIssuePool"
                                                                        },
                                                                        "id": 10145,
                                                                        "name": "Identifier",
                                                                        "src": "11445:19:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 9340,
                                                                                    "type": "mapping(bytes32 => address)",
                                                                                    "value": "poolAddress"
                                                                                },
                                                                                "id": 10146,
                                                                                "name": "Identifier",
                                                                                "src": "11465:11:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 10132,
                                                                                    "type": "bytes32",
                                                                                    "value": "poolId"
                                                                                },
                                                                                "id": 10147,
                                                                                "name": "Identifier",
                                                                                "src": "11477:6:19"
                                                                            }
                                                                        ],
                                                                        "id": 10148,
                                                                        "name": "IndexAccess",
                                                                        "src": "11465:19:19"
                                                                    }
                                                                ],
                                                                "id": 10149,
                                                                "name": "FunctionCall",
                                                                "src": "11445:40:19"
                                                            }
                                                        ],
                                                        "id": 10150,
                                                        "name": "MemberAccess",
                                                        "src": "11445:52:19"
                                                    }
                                                ],
                                                "id": 10151,
                                                "name": "FunctionCall",
                                                "src": "11445:54:19"
                                            }
                                        ],
                                        "id": 10152,
                                        "name": "VariableDeclarationStatement",
                                        "src": "11426:73:19"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                10156,
                                                null,
                                                null
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "tokens",
                                                    "scope": 10269,
                                                    "stateVariable": false,
                                                    "storageLocation": "memory",
                                                    "type": "contract IERC20[]",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "type": "contract IERC20[]"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "name": "IERC20",
                                                                    "referencedDeclaration": 2938,
                                                                    "type": "contract IERC20"
                                                                },
                                                                "id": 10154,
                                                                "name": "UserDefinedTypeName",
                                                                "src": "11544:6:19"
                                                            }
                                                        ],
                                                        "id": 10155,
                                                        "name": "ArrayTypeName",
                                                        "src": "11544:8:19"
                                                    }
                                                ],
                                                "id": 10156,
                                                "name": "VariableDeclaration",
                                                "src": "11544:22:19"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple(contract IERC20[] memory,uint256[] memory,uint256)",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "getPoolTokens",
                                                            "referencedDeclaration": 3444,
                                                            "type": "function (bytes32) view external returns (contract IERC20[] memory,uint256[] memory,uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract IVault",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3688,
                                                                            "type": "type(contract IVault)",
                                                                            "value": "IVault"
                                                                        },
                                                                        "id": 10157,
                                                                        "name": "Identifier",
                                                                        "src": "11574:6:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9313,
                                                                            "type": "address",
                                                                            "value": "vault"
                                                                        },
                                                                        "id": 10158,
                                                                        "name": "Identifier",
                                                                        "src": "11581:5:19"
                                                                    }
                                                                ],
                                                                "id": 10159,
                                                                "name": "FunctionCall",
                                                                "src": "11574:13:19"
                                                            }
                                                        ],
                                                        "id": 10160,
                                                        "name": "MemberAccess",
                                                        "src": "11574:27:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10132,
                                                            "type": "bytes32",
                                                            "value": "poolId"
                                                        },
                                                        "id": 10161,
                                                        "name": "Identifier",
                                                        "src": "11602:6:19"
                                                    }
                                                ],
                                                "id": 10162,
                                                "name": "FunctionCall",
                                                "src": "11574:35:19"
                                            }
                                        ],
                                        "id": 10163,
                                        "name": "VariableDeclarationStatement",
                                        "src": "11543:66:19"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                10167
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "assets",
                                                    "scope": 10269,
                                                    "stateVariable": false,
                                                    "storageLocation": "memory",
                                                    "type": "contract IAsset[]",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "type": "contract IAsset[]"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "name": "IAsset",
                                                                    "referencedDeclaration": 3127,
                                                                    "type": "contract IAsset"
                                                                },
                                                                "id": 10165,
                                                                "name": "UserDefinedTypeName",
                                                                "src": "11619:6:19"
                                                            }
                                                        ],
                                                        "id": 10166,
                                                        "name": "ArrayTypeName",
                                                        "src": "11619:8:19"
                                                    }
                                                ],
                                                "id": 10167,
                                                "name": "VariableDeclaration",
                                                "src": "11619:22:19"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "contract IAsset[] memory",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_array$_t_contract$_IERC20_$2938_$dyn_memory_ptr",
                                                                    "typeString": "contract IERC20[] memory"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10860,
                                                            "type": "function (contract IERC20[] memory) pure returns (contract IAsset[] memory)",
                                                            "value": "_convertERC20sToAssets"
                                                        },
                                                        "id": 10168,
                                                        "name": "Identifier",
                                                        "src": "11644:22:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10156,
                                                            "type": "contract IERC20[] memory",
                                                            "value": "tokens"
                                                        },
                                                        "id": 10169,
                                                        "name": "Identifier",
                                                        "src": "11667:6:19"
                                                    }
                                                ],
                                                "id": 10170,
                                                "name": "FunctionCall",
                                                "src": "11644:30:19"
                                            }
                                        ],
                                        "id": 10171,
                                        "name": "VariableDeclarationStatement",
                                        "src": "11619:55:19"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                10176
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "amountsOut",
                                                    "scope": 10269,
                                                    "stateVariable": false,
                                                    "storageLocation": "memory",
                                                    "type": "uint256[]",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "type": "uint256[]"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "name": "uint256",
                                                                    "type": "uint256"
                                                                },
                                                                "id": 10174,
                                                                "name": "ElementaryTypeName",
                                                                "src": "11684:7:19"
                                                            }
                                                        ],
                                                        "id": 10175,
                                                        "name": "ArrayTypeName",
                                                        "src": "11684:9:19"
                                                    }
                                                ],
                                                "id": 10176,
                                                "name": "VariableDeclaration",
                                                "src": "11684:27:19"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "uint256[] memory",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "type": "function (uint256) pure returns (uint256[] memory)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "type": "uint256[]"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "uint256",
                                                                            "type": "uint256"
                                                                        },
                                                                        "id": 10177,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "11718:7:19"
                                                                    }
                                                                ],
                                                                "id": 10178,
                                                                "name": "ArrayTypeName",
                                                                "src": "11718:9:19"
                                                            }
                                                        ],
                                                        "id": 10179,
                                                        "name": "NewExpression",
                                                        "src": "11714:13:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "length",
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 10156,
                                                                    "type": "contract IERC20[] memory",
                                                                    "value": "tokens"
                                                                },
                                                                "id": 10180,
                                                                "name": "Identifier",
                                                                "src": "11728:6:19"
                                                            }
                                                        ],
                                                        "id": 10181,
                                                        "name": "MemberAccess",
                                                        "src": "11728:13:19"
                                                    }
                                                ],
                                                "id": 10182,
                                                "name": "FunctionCall",
                                                "src": "11714:28:19"
                                            }
                                        ],
                                        "id": 10183,
                                        "name": "VariableDeclarationStatement",
                                        "src": "11684:58:19"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                10187
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "request",
                                                    "scope": 10269,
                                                    "stateVariable": false,
                                                    "storageLocation": "memory",
                                                    "type": "struct IVault.ExitPoolRequest",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "IVault.ExitPoolRequest",
                                                            "referencedDeclaration": 3490,
                                                            "type": "struct IVault.ExitPoolRequest"
                                                        },
                                                        "id": 10186,
                                                        "name": "UserDefinedTypeName",
                                                        "src": "11752:22:19"
                                                    }
                                                ],
                                                "id": 10187,
                                                "name": "VariableDeclaration",
                                                "src": "11752:37:19"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": true,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        "assets",
                                                        "minAmountsOut",
                                                        "userData",
                                                        "toInternalBalance"
                                                    ],
                                                    "tryCall": false,
                                                    "type": "struct IVault.ExitPoolRequest memory",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_array$_t_contract$_IAsset_$3127_$dyn_memory_ptr",
                                                                    "typeString": "contract IAsset[] memory"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                                    "typeString": "uint256[] memory"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes_memory_ptr",
                                                                    "typeString": "bytes memory"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "ExitPoolRequest",
                                                            "referencedDeclaration": 3490,
                                                            "type": "type(struct IVault.ExitPoolRequest storage pointer)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 3688,
                                                                    "type": "type(contract IVault)",
                                                                    "value": "IVault"
                                                                },
                                                                "id": 10188,
                                                                "name": "Identifier",
                                                                "src": "11792:6:19"
                                                            }
                                                        ],
                                                        "id": 10189,
                                                        "name": "MemberAccess",
                                                        "src": "11792:22:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10167,
                                                            "type": "contract IAsset[] memory",
                                                            "value": "assets"
                                                        },
                                                        "id": 10190,
                                                        "name": "Identifier",
                                                        "src": "11837:6:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10176,
                                                            "type": "uint256[] memory",
                                                            "value": "amountsOut"
                                                        },
                                                        "id": 10191,
                                                        "name": "Identifier",
                                                        "src": "11872:10:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "bytes memory",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_enum$_ExitKind_$12135",
                                                                            "typeString": "enum ISettlor.ExitKind"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_rational_0_by_1",
                                                                            "typeString": "int_const 0"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "member_name": "encode",
                                                                    "type": "function () pure returns (bytes memory)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": -1,
                                                                            "type": "abi",
                                                                            "value": "abi"
                                                                        },
                                                                        "id": 10192,
                                                                        "name": "Identifier",
                                                                        "src": "11906:3:19"
                                                                    }
                                                                ],
                                                                "id": 10193,
                                                                "name": "MemberAccess",
                                                                "src": "11906:10:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "member_name": "EXACT_BPT_IN_FOR_TOKENS_OUT",
                                                                    "type": "enum ISettlor.ExitKind"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 12135,
                                                                            "type": "type(enum ISettlor.ExitKind)",
                                                                            "value": "ExitKind"
                                                                        },
                                                                        "id": 10194,
                                                                        "name": "Identifier",
                                                                        "src": "11917:8:19"
                                                                    }
                                                                ],
                                                                "id": 10195,
                                                                "name": "MemberAccess",
                                                                "src": "11917:36:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "hexvalue": "30",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "token": "number",
                                                                    "type": "int_const 0",
                                                                    "value": "0"
                                                                },
                                                                "id": 10196,
                                                                "name": "Literal",
                                                                "src": "11955:1:19"
                                                            }
                                                        ],
                                                        "id": 10197,
                                                        "name": "FunctionCall",
                                                        "src": "11906:51:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "66616c7365",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "bool",
                                                            "type": "bool",
                                                            "value": "false"
                                                        },
                                                        "id": 10198,
                                                        "name": "Literal",
                                                        "src": "11990:5:19"
                                                    }
                                                ],
                                                "id": 10199,
                                                "name": "FunctionCall",
                                                "src": "11792:214:19"
                                            }
                                        ],
                                        "id": 10200,
                                        "name": "VariableDeclarationStatement",
                                        "src": "11752:254:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address_payable",
                                                                    "typeString": "address payable"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_struct$_ExitPoolRequest_$3490_memory_ptr",
                                                                    "typeString": "struct IVault.ExitPoolRequest memory"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "exitPool",
                                                            "referencedDeclaration": 3479,
                                                            "type": "function (bytes32,address,address payable,struct IVault.ExitPoolRequest memory) external"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract IVault",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 3688,
                                                                            "type": "type(contract IVault)",
                                                                            "value": "IVault"
                                                                        },
                                                                        "id": 10201,
                                                                        "name": "Identifier",
                                                                        "src": "12025:6:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9313,
                                                                            "type": "address",
                                                                            "value": "vault"
                                                                        },
                                                                        "id": 10202,
                                                                        "name": "Identifier",
                                                                        "src": "12032:5:19"
                                                                    }
                                                                ],
                                                                "id": 10203,
                                                                "name": "FunctionCall",
                                                                "src": "12025:13:19"
                                                            }
                                                        ],
                                                        "id": 10204,
                                                        "name": "MemberAccess",
                                                        "src": "12025:22:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10132,
                                                            "type": "bytes32",
                                                            "value": "poolId"
                                                        },
                                                        "id": 10205,
                                                        "name": "Identifier",
                                                        "src": "12048:6:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "address",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_contract$_SecondaryIssueManager_$10930",
                                                                            "typeString": "contract SecondaryIssueManager"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(address)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "address"
                                                                        },
                                                                        "id": 10206,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "12056:7:19"
                                                                    }
                                                                ],
                                                                "id": 10207,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "12056:7:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": -28,
                                                                    "type": "contract SecondaryIssueManager",
                                                                    "value": "this"
                                                                },
                                                                "id": 10208,
                                                                "name": "Identifier",
                                                                "src": "12064:4:19"
                                                            }
                                                        ],
                                                        "id": 10209,
                                                        "name": "FunctionCall",
                                                        "src": "12056:13:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "address payable",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(address payable)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "address",
                                                                            "stateMutability": "payable"
                                                                        },
                                                                        "id": 10210,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "12071:8:19"
                                                                    }
                                                                ],
                                                                "id": 10211,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "12071:8:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "address",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_contract$_SecondaryIssueManager_$10930",
                                                                                    "typeString": "contract SecondaryIssueManager"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "type": "type(address)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "name": "address"
                                                                                },
                                                                                "id": 10212,
                                                                                "name": "ElementaryTypeName",
                                                                                "src": "12079:7:19"
                                                                            }
                                                                        ],
                                                                        "id": 10213,
                                                                        "name": "ElementaryTypeNameExpression",
                                                                        "src": "12079:7:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": -28,
                                                                            "type": "contract SecondaryIssueManager",
                                                                            "value": "this"
                                                                        },
                                                                        "id": 10214,
                                                                        "name": "Identifier",
                                                                        "src": "12087:4:19"
                                                                    }
                                                                ],
                                                                "id": 10215,
                                                                "name": "FunctionCall",
                                                                "src": "12079:13:19"
                                                            }
                                                        ],
                                                        "id": 10216,
                                                        "name": "FunctionCall",
                                                        "src": "12071:22:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10187,
                                                            "type": "struct IVault.ExitPoolRequest memory",
                                                            "value": "request"
                                                        },
                                                        "id": 10217,
                                                        "name": "Identifier",
                                                        "src": "12095:7:19"
                                                    }
                                                ],
                                                "id": 10218,
                                                "name": "FunctionCall",
                                                "src": "12025:78:19"
                                            }
                                        ],
                                        "id": 10219,
                                        "name": "ExpressionStatement",
                                        "src": "12025:78:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9428,
                                                            "type": "function (bytes32,address,uint256)",
                                                            "value": "closures"
                                                        },
                                                        "id": 10220,
                                                        "name": "Identifier",
                                                        "src": "12118:8:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10132,
                                                            "type": "bytes32",
                                                            "value": "poolId"
                                                        },
                                                        "id": 10221,
                                                        "name": "Identifier",
                                                        "src": "12127:6:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "address"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9344,
                                                                    "type": "mapping(bytes32 => address)",
                                                                    "value": "poolSecurity"
                                                                },
                                                                "id": 10222,
                                                                "name": "Identifier",
                                                                "src": "12135:12:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 10132,
                                                                    "type": "bytes32",
                                                                    "value": "poolId"
                                                                },
                                                                "id": 10223,
                                                                "name": "Identifier",
                                                                "src": "12148:6:19"
                                                            }
                                                        ],
                                                        "id": 10224,
                                                        "name": "IndexAccess",
                                                        "src": "12135:20:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "timestamp",
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": -4,
                                                                    "type": "block",
                                                                    "value": "block"
                                                                },
                                                                "id": 10225,
                                                                "name": "Identifier",
                                                                "src": "12157:5:19"
                                                            }
                                                        ],
                                                        "id": 10226,
                                                        "name": "MemberAccess",
                                                        "src": "12157:15:19"
                                                    }
                                                ],
                                                "id": 10227,
                                                "name": "FunctionCall",
                                                "src": "12118:55:19"
                                            }
                                        ],
                                        "id": 10228,
                                        "name": "EmitStatement",
                                        "src": "12113:60:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "bool",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "transfer",
                                                            "referencedDeclaration": 2887,
                                                            "type": "function (address,uint256) external returns (bool)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract IERC20",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2938,
                                                                            "type": "type(contract IERC20)",
                                                                            "value": "IERC20"
                                                                        },
                                                                        "id": 10229,
                                                                        "name": "Identifier",
                                                                        "src": "12183:6:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 10144,
                                                                            "type": "address",
                                                                            "value": "currency"
                                                                        },
                                                                        "id": 10230,
                                                                        "name": "Identifier",
                                                                        "src": "12190:8:19"
                                                                    }
                                                                ],
                                                                "id": 10231,
                                                                "name": "FunctionCall",
                                                                "src": "12183:16:19"
                                                            }
                                                        ],
                                                        "id": 10232,
                                                        "name": "MemberAccess",
                                                        "src": "12183:25:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "address"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9348,
                                                                    "type": "mapping(bytes32 => address)",
                                                                    "value": "issuer"
                                                                },
                                                                "id": 10233,
                                                                "name": "Identifier",
                                                                "src": "12209:6:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 10132,
                                                                    "type": "bytes32",
                                                                    "value": "poolId"
                                                                },
                                                                "id": 10234,
                                                                "name": "Identifier",
                                                                "src": "12216:6:19"
                                                            }
                                                        ],
                                                        "id": 10235,
                                                        "name": "IndexAccess",
                                                        "src": "12209:14:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "balanceOf",
                                                                    "referencedDeclaration": 2877,
                                                                    "type": "function (address) view external returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "contract IERC20",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 2938,
                                                                                    "type": "type(contract IERC20)",
                                                                                    "value": "IERC20"
                                                                                },
                                                                                "id": 10236,
                                                                                "name": "Identifier",
                                                                                "src": "12225:6:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 10144,
                                                                                    "type": "address",
                                                                                    "value": "currency"
                                                                                },
                                                                                "id": 10237,
                                                                                "name": "Identifier",
                                                                                "src": "12232:8:19"
                                                                            }
                                                                        ],
                                                                        "id": 10238,
                                                                        "name": "FunctionCall",
                                                                        "src": "12225:16:19"
                                                                    }
                                                                ],
                                                                "id": 10239,
                                                                "name": "MemberAccess",
                                                                "src": "12225:26:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "address",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_contract$_SecondaryIssueManager_$10930",
                                                                                    "typeString": "contract SecondaryIssueManager"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "type": "type(address)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "name": "address"
                                                                                },
                                                                                "id": 10240,
                                                                                "name": "ElementaryTypeName",
                                                                                "src": "12252:7:19"
                                                                            }
                                                                        ],
                                                                        "id": 10241,
                                                                        "name": "ElementaryTypeNameExpression",
                                                                        "src": "12252:7:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": -28,
                                                                            "type": "contract SecondaryIssueManager",
                                                                            "value": "this"
                                                                        },
                                                                        "id": 10242,
                                                                        "name": "Identifier",
                                                                        "src": "12260:4:19"
                                                                    }
                                                                ],
                                                                "id": 10243,
                                                                "name": "FunctionCall",
                                                                "src": "12252:13:19"
                                                            }
                                                        ],
                                                        "id": 10244,
                                                        "name": "FunctionCall",
                                                        "src": "12225:41:19"
                                                    }
                                                ],
                                                "id": 10245,
                                                "name": "FunctionCall",
                                                "src": "12183:84:19"
                                            }
                                        ],
                                        "id": 10246,
                                        "name": "ExpressionStatement",
                                        "src": "12183:84:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "bool",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "transfer",
                                                            "referencedDeclaration": 2887,
                                                            "type": "function (address,uint256) external returns (bool)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract IERC20",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2938,
                                                                            "type": "type(contract IERC20)",
                                                                            "value": "IERC20"
                                                                        },
                                                                        "id": 10247,
                                                                        "name": "Identifier",
                                                                        "src": "12277:6:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 9344,
                                                                                    "type": "mapping(bytes32 => address)",
                                                                                    "value": "poolSecurity"
                                                                                },
                                                                                "id": 10248,
                                                                                "name": "Identifier",
                                                                                "src": "12284:12:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 10132,
                                                                                    "type": "bytes32",
                                                                                    "value": "poolId"
                                                                                },
                                                                                "id": 10249,
                                                                                "name": "Identifier",
                                                                                "src": "12297:6:19"
                                                                            }
                                                                        ],
                                                                        "id": 10250,
                                                                        "name": "IndexAccess",
                                                                        "src": "12284:20:19"
                                                                    }
                                                                ],
                                                                "id": 10251,
                                                                "name": "FunctionCall",
                                                                "src": "12277:28:19"
                                                            }
                                                        ],
                                                        "id": 10252,
                                                        "name": "MemberAccess",
                                                        "src": "12277:37:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "address"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9348,
                                                                    "type": "mapping(bytes32 => address)",
                                                                    "value": "issuer"
                                                                },
                                                                "id": 10253,
                                                                "name": "Identifier",
                                                                "src": "12315:6:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 10132,
                                                                    "type": "bytes32",
                                                                    "value": "poolId"
                                                                },
                                                                "id": 10254,
                                                                "name": "Identifier",
                                                                "src": "12322:6:19"
                                                            }
                                                        ],
                                                        "id": 10255,
                                                        "name": "IndexAccess",
                                                        "src": "12315:14:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "balanceOf",
                                                                    "referencedDeclaration": 2877,
                                                                    "type": "function (address) view external returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "contract IERC20",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 2938,
                                                                                    "type": "type(contract IERC20)",
                                                                                    "value": "IERC20"
                                                                                },
                                                                                "id": 10256,
                                                                                "name": "Identifier",
                                                                                "src": "12331:6:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "address"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 9344,
                                                                                            "type": "mapping(bytes32 => address)",
                                                                                            "value": "poolSecurity"
                                                                                        },
                                                                                        "id": 10257,
                                                                                        "name": "Identifier",
                                                                                        "src": "12338:12:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 10132,
                                                                                            "type": "bytes32",
                                                                                            "value": "poolId"
                                                                                        },
                                                                                        "id": 10258,
                                                                                        "name": "Identifier",
                                                                                        "src": "12351:6:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10259,
                                                                                "name": "IndexAccess",
                                                                                "src": "12338:20:19"
                                                                            }
                                                                        ],
                                                                        "id": 10260,
                                                                        "name": "FunctionCall",
                                                                        "src": "12331:28:19"
                                                                    }
                                                                ],
                                                                "id": 10261,
                                                                "name": "MemberAccess",
                                                                "src": "12331:38:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "address",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_contract$_SecondaryIssueManager_$10930",
                                                                                    "typeString": "contract SecondaryIssueManager"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "type": "type(address)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "name": "address"
                                                                                },
                                                                                "id": 10262,
                                                                                "name": "ElementaryTypeName",
                                                                                "src": "12370:7:19"
                                                                            }
                                                                        ],
                                                                        "id": 10263,
                                                                        "name": "ElementaryTypeNameExpression",
                                                                        "src": "12370:7:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": -28,
                                                                            "type": "contract SecondaryIssueManager",
                                                                            "value": "this"
                                                                        },
                                                                        "id": 10264,
                                                                        "name": "Identifier",
                                                                        "src": "12378:4:19"
                                                                    }
                                                                ],
                                                                "id": 10265,
                                                                "name": "FunctionCall",
                                                                "src": "12370:13:19"
                                                            }
                                                        ],
                                                        "id": 10266,
                                                        "name": "FunctionCall",
                                                        "src": "12331:53:19"
                                                    }
                                                ],
                                                "id": 10267,
                                                "name": "FunctionCall",
                                                "src": "12277:108:19"
                                            }
                                        ],
                                        "id": 10268,
                                        "name": "ExpressionStatement",
                                        "src": "12277:108:19"
                                    }
                                ],
                                "id": 10269,
                                "name": "Block",
                                "src": "11416:976:19"
                            }
                        ],
                        "id": 10270,
                        "name": "FunctionDefinition",
                        "src": "11316:1076:19"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                12219
                            ],
                            "functionSelector": "04967159",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "setSettlementStatus",
                            "scope": 10930,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "text": "Sets settlement status for trades executed\n@param  ref         reference to the trade executed\n@param  status      settlement status"
                                },
                                "id": 10271,
                                "name": "StructuredDocumentation",
                                "src": "12402:168:19"
                            },
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 10277,
                                "name": "OverrideSpecifier",
                                "src": "12633:8:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "ref",
                                            "scope": 10293,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 10272,
                                                "name": "ElementaryTypeName",
                                                "src": "12604:7:19"
                                            }
                                        ],
                                        "id": 10273,
                                        "name": "VariableDeclaration",
                                        "src": "12604:11:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "status",
                                            "scope": 10293,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 10274,
                                                "name": "ElementaryTypeName",
                                                "src": "12617:7:19"
                                            }
                                        ],
                                        "id": 10275,
                                        "name": "VariableDeclaration",
                                        "src": "12617:14:19"
                                    }
                                ],
                                "id": 10276,
                                "name": "ParameterList",
                                "src": "12603:29:19"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 10286,
                                "name": "ParameterList",
                                "src": "12706:0:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 9458,
                                            "type": "modifier (address,address)",
                                            "value": "onlyIssueManager"
                                        },
                                        "id": 10278,
                                        "name": "Identifier",
                                        "src": "12651:16:19"
                                    },
                                    {
                                        "attributes": {
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "member_name": "sender",
                                            "type": "address payable"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": -15,
                                                    "type": "msg",
                                                    "value": "msg"
                                                },
                                                "id": 10279,
                                                "name": "Identifier",
                                                "src": "12668:3:19"
                                            }
                                        ],
                                        "id": 10280,
                                        "name": "MemberAccess",
                                        "src": "12668:10:19"
                                    },
                                    {
                                        "attributes": {
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "member_name": "security",
                                            "referencedDeclaration": 12154,
                                            "type": "address"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "struct ISettlor.settlement storage ref"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9327,
                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                            "value": "settlements"
                                                        },
                                                        "id": 10281,
                                                        "name": "Identifier",
                                                        "src": "12680:11:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10273,
                                                            "type": "bytes32",
                                                            "value": "ref"
                                                        },
                                                        "id": 10282,
                                                        "name": "Identifier",
                                                        "src": "12692:3:19"
                                                    }
                                                ],
                                                "id": 10283,
                                                "name": "IndexAccess",
                                                "src": "12680:16:19"
                                            }
                                        ],
                                        "id": 10284,
                                        "name": "MemberAccess",
                                        "src": "12680:25:19"
                                    }
                                ],
                                "id": 10285,
                                "name": "ModifierInvocation",
                                "src": "12651:55:19"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10748,
                                                            "type": "function (bytes32,bytes32)",
                                                            "value": "setSettlement"
                                                        },
                                                        "id": 10287,
                                                        "name": "Identifier",
                                                        "src": "12716:13:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10273,
                                                            "type": "bytes32",
                                                            "value": "ref"
                                                        },
                                                        "id": 10288,
                                                        "name": "Identifier",
                                                        "src": "12730:3:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10275,
                                                            "type": "bytes32",
                                                            "value": "status"
                                                        },
                                                        "id": 10289,
                                                        "name": "Identifier",
                                                        "src": "12735:6:19"
                                                    }
                                                ],
                                                "id": 10290,
                                                "name": "FunctionCall",
                                                "src": "12716:26:19"
                                            }
                                        ],
                                        "id": 10291,
                                        "name": "ExpressionStatement",
                                        "src": "12716:26:19"
                                    }
                                ],
                                "id": 10292,
                                "name": "Block",
                                "src": "12706:43:19"
                            }
                        ],
                        "id": 10293,
                        "name": "FunctionDefinition",
                        "src": "12575:174:19"
                    },
                    {
                        "attributes": {
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "setSettlement",
                            "scope": 10930,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "ref",
                                            "scope": 10748,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 10294,
                                                "name": "ElementaryTypeName",
                                                "src": "12782:7:19"
                                            }
                                        ],
                                        "id": 10295,
                                        "name": "VariableDeclaration",
                                        "src": "12782:11:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "status",
                                            "scope": 10748,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 10296,
                                                "name": "ElementaryTypeName",
                                                "src": "12795:7:19"
                                            }
                                        ],
                                        "id": 10297,
                                        "name": "VariableDeclaration",
                                        "src": "12795:14:19"
                                    }
                                ],
                                "id": 10298,
                                "name": "ParameterList",
                                "src": "12781:29:19"
                            },
                            {
                                "attributes": {
                                    "parameters": [
                                        null
                                    ]
                                },
                                "children": [],
                                "id": 10299,
                                "name": "ParameterList",
                                "src": "12819:0:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                10301
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "DPID",
                                                    "scope": 10747,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "bytes32",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "bytes32",
                                                            "type": "bytes32"
                                                        },
                                                        "id": 10300,
                                                        "name": "ElementaryTypeName",
                                                        "src": "12829:7:19"
                                                    }
                                                ],
                                                "id": 10301,
                                                "name": "VariableDeclaration",
                                                "src": "12829:12:19"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "member_name": "DPID",
                                                    "referencedDeclaration": 12160,
                                                    "type": "bytes32"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "struct ISettlor.settlement storage ref"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9327,
                                                                    "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                    "value": "settlements"
                                                                },
                                                                "id": 10302,
                                                                "name": "Identifier",
                                                                "src": "12844:11:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 10295,
                                                                    "type": "bytes32",
                                                                    "value": "ref"
                                                                },
                                                                "id": 10303,
                                                                "name": "Identifier",
                                                                "src": "12856:3:19"
                                                            }
                                                        ],
                                                        "id": 10304,
                                                        "name": "IndexAccess",
                                                        "src": "12844:16:19"
                                                    }
                                                ],
                                                "id": 10305,
                                                "name": "MemberAccess",
                                                "src": "12844:21:19"
                                            }
                                        ],
                                        "id": 10306,
                                        "name": "VariableDeclarationStatement",
                                        "src": "12829:36:19"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                10308
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "settled",
                                                    "scope": 10747,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "bool",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "bool",
                                                            "type": "bool"
                                                        },
                                                        "id": 10307,
                                                        "name": "ElementaryTypeName",
                                                        "src": "12875:4:19"
                                                    }
                                                ],
                                                "id": 10308,
                                                "name": "VariableDeclaration",
                                                "src": "12875:12:19"
                                            },
                                            {
                                                "attributes": {
                                                    "hexvalue": "66616c7365",
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "lValueRequested": false,
                                                    "token": "bool",
                                                    "type": "bool",
                                                    "value": "false"
                                                },
                                                "id": 10309,
                                                "name": "Literal",
                                                "src": "12890:5:19"
                                            }
                                        ],
                                        "id": 10310,
                                        "name": "VariableDeclarationStatement",
                                        "src": "12875:20:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_32a2d999dbadb90dd3034cfecdd6027a6a805113a245b2073073dd8b137c7e39",
                                                                    "typeString": "literal_string \"Settlement status invalid\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 10311,
                                                        "name": "Identifier",
                                                        "src": "12905:7:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "||",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 10297,
                                                                            "type": "bytes32",
                                                                            "value": "status"
                                                                        },
                                                                        "id": 10312,
                                                                        "name": "Identifier",
                                                                        "src": "12913:6:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "hexvalue": "436f6e6669726d",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "token": "string",
                                                                            "type": "literal_string \"Confirm\"",
                                                                            "value": "Confirm"
                                                                        },
                                                                        "id": 10313,
                                                                        "name": "Literal",
                                                                        "src": "12921:9:19"
                                                                    }
                                                                ],
                                                                "id": 10314,
                                                                "name": "BinaryOperation",
                                                                "src": "12913:17:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 10297,
                                                                            "type": "bytes32",
                                                                            "value": "status"
                                                                        },
                                                                        "id": 10315,
                                                                        "name": "Identifier",
                                                                        "src": "12934:6:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "hexvalue": "52656a656374",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "token": "string",
                                                                            "type": "literal_string \"Reject\"",
                                                                            "value": "Reject"
                                                                        },
                                                                        "id": 10316,
                                                                        "name": "Literal",
                                                                        "src": "12942:8:19"
                                                                    }
                                                                ],
                                                                "id": 10317,
                                                                "name": "BinaryOperation",
                                                                "src": "12934:16:19"
                                                            }
                                                        ],
                                                        "id": 10318,
                                                        "name": "BinaryOperation",
                                                        "src": "12913:37:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "536574746c656d656e742073746174757320696e76616c6964",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "string",
                                                            "type": "literal_string \"Settlement status invalid\"",
                                                            "value": "Settlement status invalid"
                                                        },
                                                        "id": 10319,
                                                        "name": "Literal",
                                                        "src": "12952:27:19"
                                                    }
                                                ],
                                                "id": 10320,
                                                "name": "FunctionCall",
                                                "src": "12905:75:19"
                                            }
                                        ],
                                        "id": 10321,
                                        "name": "ExpressionStatement",
                                        "src": "12905:75:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9317,
                                                            "type": "uint256",
                                                            "value": "settlementFee"
                                                        },
                                                        "id": 10322,
                                                        "name": "Identifier",
                                                        "src": "12990:13:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "mapping(address => uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 9323,
                                                                                            "type": "mapping(address => mapping(address => uint256))",
                                                                                            "value": "customFee"
                                                                                        },
                                                                                        "id": 10323,
                                                                                        "name": "Identifier",
                                                                                        "src": "13006:9:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "security",
                                                                                            "referencedDeclaration": 12154,
                                                                                            "type": "address"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 9327,
                                                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                            "value": "settlements"
                                                                                                        },
                                                                                                        "id": 10324,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "13016:11:19"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 10295,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "ref"
                                                                                                        },
                                                                                                        "id": 10325,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "13028:3:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10326,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "13016:16:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10327,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "13016:25:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10328,
                                                                                "name": "IndexAccess",
                                                                                "src": "13006:36:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "currency",
                                                                                    "referencedDeclaration": 12156,
                                                                                    "type": "address"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct ISettlor.settlement storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 9327,
                                                                                                    "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                    "value": "settlements"
                                                                                                },
                                                                                                "id": 10329,
                                                                                                "name": "Identifier",
                                                                                                "src": "13043:11:19"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 10295,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "ref"
                                                                                                },
                                                                                                "id": 10330,
                                                                                                "name": "Identifier",
                                                                                                "src": "13055:3:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10331,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "13043:16:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10332,
                                                                                "name": "MemberAccess",
                                                                                "src": "13043:25:19"
                                                                            }
                                                                        ],
                                                                        "id": 10333,
                                                                        "name": "IndexAccess",
                                                                        "src": "13006:63:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "hexvalue": "30",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "token": "number",
                                                                            "type": "int_const 0",
                                                                            "value": "0"
                                                                        },
                                                                        "id": 10334,
                                                                        "name": "Literal",
                                                                        "src": "13071:1:19"
                                                                    }
                                                                ],
                                                                "id": 10335,
                                                                "name": "BinaryOperation",
                                                                "src": "13006:66:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "mulDown",
                                                                            "referencedDeclaration": 537,
                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 780,
                                                                                    "type": "type(library FixedPoint)",
                                                                                    "value": "FixedPoint"
                                                                                },
                                                                                "id": 10336,
                                                                                "name": "Identifier",
                                                                                "src": "13075:10:19"
                                                                            }
                                                                        ],
                                                                        "id": 10337,
                                                                        "name": "MemberAccess",
                                                                        "src": "13075:18:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "consideration",
                                                                            "referencedDeclaration": 12166,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 9327,
                                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                            "value": "settlements"
                                                                                        },
                                                                                        "id": 10338,
                                                                                        "name": "Identifier",
                                                                                        "src": "13094:11:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 10295,
                                                                                            "type": "bytes32",
                                                                                            "value": "ref"
                                                                                        },
                                                                                        "id": 10339,
                                                                                        "name": "Identifier",
                                                                                        "src": "13106:3:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10340,
                                                                                "name": "IndexAccess",
                                                                                "src": "13094:16:19"
                                                                            }
                                                                        ],
                                                                        "id": 10341,
                                                                        "name": "MemberAccess",
                                                                        "src": "13094:30:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9315,
                                                                            "type": "uint256",
                                                                            "value": "fee"
                                                                        },
                                                                        "id": 10342,
                                                                        "name": "Identifier",
                                                                        "src": "13126:3:19"
                                                                    }
                                                                ],
                                                                "id": 10343,
                                                                "name": "FunctionCall",
                                                                "src": "13075:55:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "uint256",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "mulDown",
                                                                            "referencedDeclaration": 537,
                                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 780,
                                                                                    "type": "type(library FixedPoint)",
                                                                                    "value": "FixedPoint"
                                                                                },
                                                                                "id": 10344,
                                                                                "name": "Identifier",
                                                                                "src": "13153:10:19"
                                                                            }
                                                                        ],
                                                                        "id": 10345,
                                                                        "name": "MemberAccess",
                                                                        "src": "13153:18:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "consideration",
                                                                            "referencedDeclaration": 12166,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 9327,
                                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                            "value": "settlements"
                                                                                        },
                                                                                        "id": 10346,
                                                                                        "name": "Identifier",
                                                                                        "src": "13172:11:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 10295,
                                                                                            "type": "bytes32",
                                                                                            "value": "ref"
                                                                                        },
                                                                                        "id": 10347,
                                                                                        "name": "Identifier",
                                                                                        "src": "13184:3:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10348,
                                                                                "name": "IndexAccess",
                                                                                "src": "13172:16:19"
                                                                            }
                                                                        ],
                                                                        "id": 10349,
                                                                        "name": "MemberAccess",
                                                                        "src": "13172:30:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "mapping(address => uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 9323,
                                                                                            "type": "mapping(address => mapping(address => uint256))",
                                                                                            "value": "customFee"
                                                                                        },
                                                                                        "id": 10350,
                                                                                        "name": "Identifier",
                                                                                        "src": "13204:9:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "security",
                                                                                            "referencedDeclaration": 12154,
                                                                                            "type": "address"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 9327,
                                                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                            "value": "settlements"
                                                                                                        },
                                                                                                        "id": 10351,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "13214:11:19"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 10295,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "ref"
                                                                                                        },
                                                                                                        "id": 10352,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "13226:3:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10353,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "13214:16:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10354,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "13214:25:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10355,
                                                                                "name": "IndexAccess",
                                                                                "src": "13204:36:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "currency",
                                                                                    "referencedDeclaration": 12156,
                                                                                    "type": "address"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct ISettlor.settlement storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 9327,
                                                                                                    "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                    "value": "settlements"
                                                                                                },
                                                                                                "id": 10356,
                                                                                                "name": "Identifier",
                                                                                                "src": "13241:11:19"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 10295,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "ref"
                                                                                                },
                                                                                                "id": 10357,
                                                                                                "name": "Identifier",
                                                                                                "src": "13253:3:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10358,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "13241:16:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10359,
                                                                                "name": "MemberAccess",
                                                                                "src": "13241:25:19"
                                                                            }
                                                                        ],
                                                                        "id": 10360,
                                                                        "name": "IndexAccess",
                                                                        "src": "13204:63:19"
                                                                    }
                                                                ],
                                                                "id": 10361,
                                                                "name": "FunctionCall",
                                                                "src": "13153:115:19"
                                                            }
                                                        ],
                                                        "id": 10362,
                                                        "name": "Conditional",
                                                        "src": "13006:262:19"
                                                    }
                                                ],
                                                "id": 10363,
                                                "name": "Assignment",
                                                "src": "12990:278:19"
                                            }
                                        ],
                                        "id": 10364,
                                        "name": "ExpressionStatement",
                                        "src": "12990:278:19"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                10366
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "pay",
                                                    "scope": 10747,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 10365,
                                                        "name": "ElementaryTypeName",
                                                        "src": "13278:7:19"
                                                    }
                                                ],
                                                "id": 10366,
                                                "name": "VariableDeclaration",
                                                "src": "13278:11:19"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "uint256",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "divDown",
                                                            "referencedDeclaration": 631,
                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 780,
                                                                    "type": "type(library FixedPoint)",
                                                                    "value": "FixedPoint"
                                                                },
                                                                "id": 10367,
                                                                "name": "Identifier",
                                                                "src": "13292:10:19"
                                                            }
                                                        ],
                                                        "id": 10368,
                                                        "name": "MemberAccess",
                                                        "src": "13292:18:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9317,
                                                            "type": "uint256",
                                                            "value": "settlementFee"
                                                        },
                                                        "id": 10369,
                                                        "name": "Identifier",
                                                        "src": "13311:13:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                            "typeString": "contract IERC20"
                                                                        }
                                                                    ],
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 10895,
                                                                    "type": "function (contract IERC20) view returns (uint256)",
                                                                    "value": "_computeScalingFactor"
                                                                },
                                                                "id": 10370,
                                                                "name": "Identifier",
                                                                "src": "13326:21:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract IERC20",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2938,
                                                                            "type": "type(contract IERC20)",
                                                                            "value": "IERC20"
                                                                        },
                                                                        "id": 10371,
                                                                        "name": "Identifier",
                                                                        "src": "13348:6:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "currency",
                                                                            "referencedDeclaration": 12156,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 9327,
                                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                            "value": "settlements"
                                                                                        },
                                                                                        "id": 10372,
                                                                                        "name": "Identifier",
                                                                                        "src": "13355:11:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 10295,
                                                                                            "type": "bytes32",
                                                                                            "value": "ref"
                                                                                        },
                                                                                        "id": 10373,
                                                                                        "name": "Identifier",
                                                                                        "src": "13367:3:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10374,
                                                                                "name": "IndexAccess",
                                                                                "src": "13355:16:19"
                                                                            }
                                                                        ],
                                                                        "id": 10375,
                                                                        "name": "MemberAccess",
                                                                        "src": "13355:25:19"
                                                                    }
                                                                ],
                                                                "id": 10376,
                                                                "name": "FunctionCall",
                                                                "src": "13348:33:19"
                                                            }
                                                        ],
                                                        "id": 10377,
                                                        "name": "FunctionCall",
                                                        "src": "13326:56:19"
                                                    }
                                                ],
                                                "id": 10378,
                                                "name": "FunctionCall",
                                                "src": "13292:91:19"
                                            }
                                        ],
                                        "id": 10379,
                                        "name": "VariableDeclarationStatement",
                                        "src": "13278:105:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_bool",
                                                        "typeString": "bool"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "&&",
                                                    "type": "bool"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "&&",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 10297,
                                                                            "type": "bytes32",
                                                                            "value": "status"
                                                                        },
                                                                        "id": 10380,
                                                                        "name": "Identifier",
                                                                        "src": "13396:6:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "hexvalue": "436f6e6669726d",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "token": "string",
                                                                            "type": "literal_string \"Confirm\"",
                                                                            "value": "Confirm"
                                                                        },
                                                                        "id": 10381,
                                                                        "name": "Literal",
                                                                        "src": "13404:9:19"
                                                                    }
                                                                ],
                                                                "id": 10382,
                                                                "name": "BinaryOperation",
                                                                "src": "13396:17:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "!=",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "status",
                                                                            "referencedDeclaration": 12158,
                                                                            "type": "bytes32"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 9327,
                                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                            "value": "settlements"
                                                                                        },
                                                                                        "id": 10383,
                                                                                        "name": "Identifier",
                                                                                        "src": "13417:11:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 10295,
                                                                                            "type": "bytes32",
                                                                                            "value": "ref"
                                                                                        },
                                                                                        "id": 10384,
                                                                                        "name": "Identifier",
                                                                                        "src": "13429:3:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10385,
                                                                                "name": "IndexAccess",
                                                                                "src": "13417:16:19"
                                                                            }
                                                                        ],
                                                                        "id": 10386,
                                                                        "name": "MemberAccess",
                                                                        "src": "13417:23:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "hexvalue": "436f6e6669726d",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "token": "string",
                                                                            "type": "literal_string \"Confirm\"",
                                                                            "value": "Confirm"
                                                                        },
                                                                        "id": 10387,
                                                                        "name": "Literal",
                                                                        "src": "13442:9:19"
                                                                    }
                                                                ],
                                                                "id": 10388,
                                                                "name": "BinaryOperation",
                                                                "src": "13417:34:19"
                                                            }
                                                        ],
                                                        "id": 10389,
                                                        "name": "BinaryOperation",
                                                        "src": "13396:55:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_bytes32",
                                                                "typeString": "bytes32"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "!=",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "status",
                                                                    "referencedDeclaration": 12158,
                                                                    "type": "bytes32"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "struct ISettlor.settlement storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 9327,
                                                                                    "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                    "value": "settlements"
                                                                                },
                                                                                "id": 10390,
                                                                                "name": "Identifier",
                                                                                "src": "13455:11:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 10295,
                                                                                    "type": "bytes32",
                                                                                    "value": "ref"
                                                                                },
                                                                                "id": 10391,
                                                                                "name": "Identifier",
                                                                                "src": "13467:3:19"
                                                                            }
                                                                        ],
                                                                        "id": 10392,
                                                                        "name": "IndexAccess",
                                                                        "src": "13455:16:19"
                                                                    }
                                                                ],
                                                                "id": 10393,
                                                                "name": "MemberAccess",
                                                                "src": "13455:23:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "hexvalue": "4661696c",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "token": "string",
                                                                    "type": "literal_string \"Fail\"",
                                                                    "value": "Fail"
                                                                },
                                                                "id": 10394,
                                                                "name": "Literal",
                                                                "src": "13480:6:19"
                                                            }
                                                        ],
                                                        "id": 10395,
                                                        "name": "BinaryOperation",
                                                        "src": "13455:31:19"
                                                    }
                                                ],
                                                "id": 10396,
                                                "name": "BinaryOperation",
                                                "src": "13396:90:19"
                                            },
                                            {
                                                "children": [
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "=",
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": true,
                                                                            "type": "uint256"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 9357,
                                                                                    "type": "mapping(address => uint256)",
                                                                                    "value": "fees"
                                                                                },
                                                                                "id": 10397,
                                                                                "name": "Identifier",
                                                                                "src": "13513:4:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "currency",
                                                                                    "referencedDeclaration": 12156,
                                                                                    "type": "address"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct ISettlor.settlement storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 9327,
                                                                                                    "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                    "value": "settlements"
                                                                                                },
                                                                                                "id": 10398,
                                                                                                "name": "Identifier",
                                                                                                "src": "13518:11:19"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 10295,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "ref"
                                                                                                },
                                                                                                "id": 10399,
                                                                                                "name": "Identifier",
                                                                                                "src": "13530:3:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10400,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "13518:16:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10401,
                                                                                "name": "MemberAccess",
                                                                                "src": "13518:25:19"
                                                                            }
                                                                        ],
                                                                        "id": 10402,
                                                                        "name": "IndexAccess",
                                                                        "src": "13513:31:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "add",
                                                                                    "referencedDeclaration": 2109,
                                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 2367,
                                                                                            "type": "type(library Math)",
                                                                                            "value": "Math"
                                                                                        },
                                                                                        "id": 10403,
                                                                                        "name": "Identifier",
                                                                                        "src": "13547:4:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10404,
                                                                                "name": "MemberAccess",
                                                                                "src": "13547:8:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 9357,
                                                                                            "type": "mapping(address => uint256)",
                                                                                            "value": "fees"
                                                                                        },
                                                                                        "id": 10405,
                                                                                        "name": "Identifier",
                                                                                        "src": "13556:4:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "currency",
                                                                                            "referencedDeclaration": 12156,
                                                                                            "type": "address"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 9327,
                                                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                            "value": "settlements"
                                                                                                        },
                                                                                                        "id": 10406,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "13561:11:19"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 10295,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "ref"
                                                                                                        },
                                                                                                        "id": 10407,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "13573:3:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10408,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "13561:16:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10409,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "13561:25:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10410,
                                                                                "name": "IndexAccess",
                                                                                "src": "13556:31:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 10366,
                                                                                    "type": "uint256",
                                                                                    "value": "pay"
                                                                                },
                                                                                "id": 10411,
                                                                                "name": "Identifier",
                                                                                "src": "13589:3:19"
                                                                            }
                                                                        ],
                                                                        "id": 10412,
                                                                        "name": "FunctionCall",
                                                                        "src": "13547:46:19"
                                                                    }
                                                                ],
                                                                "id": 10413,
                                                                "name": "Assignment",
                                                                "src": "13513:80:19"
                                                            }
                                                        ],
                                                        "id": 10414,
                                                        "name": "ExpressionStatement",
                                                        "src": "13513:80:19"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "bool",
                                                                    "type_conversion": false
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                },
                                                                                {
                                                                                    "typeIdentifier": "t_uint256",
                                                                                    "typeString": "uint256"
                                                                                }
                                                                            ],
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "transferFrom",
                                                                            "referencedDeclaration": 2919,
                                                                            "type": "function (address,address,uint256) external returns (bool)"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "contract IERC20",
                                                                                    "type_conversion": true
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 2938,
                                                                                            "type": "type(contract IERC20)",
                                                                                            "value": "IERC20"
                                                                                        },
                                                                                        "id": 10415,
                                                                                        "name": "Identifier",
                                                                                        "src": "13610:6:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "currency",
                                                                                            "referencedDeclaration": 12156,
                                                                                            "type": "address"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 9327,
                                                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                            "value": "settlements"
                                                                                                        },
                                                                                                        "id": 10416,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "13617:11:19"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 10295,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "ref"
                                                                                                        },
                                                                                                        "id": 10417,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "13629:3:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10418,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "13617:16:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10419,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "13617:25:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10420,
                                                                                "name": "FunctionCall",
                                                                                "src": "13610:33:19"
                                                                            }
                                                                        ],
                                                                        "id": 10421,
                                                                        "name": "MemberAccess",
                                                                        "src": "13610:46:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "transferor",
                                                                            "referencedDeclaration": 12150,
                                                                            "type": "address"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 9327,
                                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                            "value": "settlements"
                                                                                        },
                                                                                        "id": 10422,
                                                                                        "name": "Identifier",
                                                                                        "src": "13657:11:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 10295,
                                                                                            "type": "bytes32",
                                                                                            "value": "ref"
                                                                                        },
                                                                                        "id": 10423,
                                                                                        "name": "Identifier",
                                                                                        "src": "13669:3:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10424,
                                                                                "name": "IndexAccess",
                                                                                "src": "13657:16:19"
                                                                            }
                                                                        ],
                                                                        "id": 10425,
                                                                        "name": "MemberAccess",
                                                                        "src": "13657:27:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "address",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_contract$_SecondaryIssueManager_$10930",
                                                                                            "typeString": "contract SecondaryIssueManager"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "type": "type(address)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "name": "address"
                                                                                        },
                                                                                        "id": 10426,
                                                                                        "name": "ElementaryTypeName",
                                                                                        "src": "13686:7:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10427,
                                                                                "name": "ElementaryTypeNameExpression",
                                                                                "src": "13686:7:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": -28,
                                                                                    "type": "contract SecondaryIssueManager",
                                                                                    "value": "this"
                                                                                },
                                                                                "id": 10428,
                                                                                "name": "Identifier",
                                                                                "src": "13694:4:19"
                                                                            }
                                                                        ],
                                                                        "id": 10429,
                                                                        "name": "FunctionCall",
                                                                        "src": "13686:13:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 10366,
                                                                            "type": "uint256",
                                                                            "value": "pay"
                                                                        },
                                                                        "id": 10430,
                                                                        "name": "Identifier",
                                                                        "src": "13701:3:19"
                                                                    }
                                                                ],
                                                                "id": 10431,
                                                                "name": "FunctionCall",
                                                                "src": "13610:95:19"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "tuple()",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                    "typeString": "bytes32"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                    "typeString": "bytes32"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "orderFilled",
                                                                                            "referencedDeclaration": 11967,
                                                                                            "type": "function (bytes32,bytes32,uint256) external"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "orderPool",
                                                                                                    "referencedDeclaration": 12148,
                                                                                                    "type": "contract IOrder"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "struct ISettlor.settlement storage ref"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 9327,
                                                                                                                    "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                                    "value": "settlements"
                                                                                                                },
                                                                                                                "id": 10432,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "13786:11:19"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 10295,
                                                                                                                    "type": "bytes32",
                                                                                                                    "value": "ref"
                                                                                                                },
                                                                                                                "id": 10433,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "13798:3:19"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 10434,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "13786:16:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10435,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "13786:26:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10436,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "13786:38:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "partyRef",
                                                                                            "referencedDeclaration": 12170,
                                                                                            "type": "bytes32"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 9327,
                                                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                            "value": "settlements"
                                                                                                        },
                                                                                                        "id": 10437,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "13825:11:19"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 10295,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "ref"
                                                                                                        },
                                                                                                        "id": 10438,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "13837:3:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10439,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "13825:16:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10440,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "13825:25:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "counterpartyRef",
                                                                                            "referencedDeclaration": 12172,
                                                                                            "type": "bytes32"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 9327,
                                                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                            "value": "settlements"
                                                                                                        },
                                                                                                        "id": 10441,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "13852:11:19"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 10295,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "ref"
                                                                                                        },
                                                                                                        "id": 10442,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "13864:3:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10443,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "13852:16:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10444,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "13852:32:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "executionDate",
                                                                                            "referencedDeclaration": 12168,
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 9327,
                                                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                            "value": "settlements"
                                                                                                        },
                                                                                                        "id": 10445,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "13886:11:19"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 10295,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "ref"
                                                                                                        },
                                                                                                        "id": 10446,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "13898:3:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10447,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "13886:16:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10448,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "13886:30:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10449,
                                                                                "name": "FunctionCall",
                                                                                "src": "13786:131:19"
                                                                            }
                                                                        ],
                                                                        "id": 10450,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "13786:131:19"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "assignments": [
                                                                                        10452
                                                                                    ]
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "constant": false,
                                                                                            "mutability": "mutable",
                                                                                            "name": "i",
                                                                                            "scope": 10504,
                                                                                            "stateVariable": false,
                                                                                            "storageLocation": "default",
                                                                                            "type": "uint256",
                                                                                            "visibility": "internal"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "name": "uint",
                                                                                                    "type": "uint256"
                                                                                                },
                                                                                                "id": 10451,
                                                                                                "name": "ElementaryTypeName",
                                                                                                "src": "13939:4:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10452,
                                                                                        "name": "VariableDeclaration",
                                                                                        "src": "13939:6:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "hexvalue": "30",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "token": "number",
                                                                                            "type": "int_const 0",
                                                                                            "value": "0"
                                                                                        },
                                                                                        "id": 10453,
                                                                                        "name": "Literal",
                                                                                        "src": "13946:1:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10454,
                                                                                "name": "VariableDeclarationStatement",
                                                                                "src": "13939:8:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "commonType": {
                                                                                        "typeIdentifier": "t_uint256",
                                                                                        "typeString": "uint256"
                                                                                    },
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "<",
                                                                                    "type": "bool"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 10452,
                                                                                            "type": "uint256",
                                                                                            "value": "i"
                                                                                        },
                                                                                        "id": 10455,
                                                                                        "name": "Identifier",
                                                                                        "src": "13949:1:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "length",
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "bytes32[] storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 9332,
                                                                                                            "type": "mapping(bytes32 => bytes32[] storage ref)",
                                                                                                            "value": "trades"
                                                                                                        },
                                                                                                        "id": 10456,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "13951:6:19"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 10301,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "DPID"
                                                                                                        },
                                                                                                        "id": 10457,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "13958:4:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10458,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "13951:12:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10459,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "13951:19:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10460,
                                                                                "name": "BinaryOperation",
                                                                                "src": "13949:21:19"
                                                                            },
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "operator": "++",
                                                                                            "prefix": false,
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 10452,
                                                                                                    "type": "uint256",
                                                                                                    "value": "i"
                                                                                                },
                                                                                                "id": 10461,
                                                                                                "name": "Identifier",
                                                                                                "src": "13972:1:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10462,
                                                                                        "name": "UnaryOperation",
                                                                                        "src": "13972:3:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10463,
                                                                                "name": "ExpressionStatement",
                                                                                "src": "13972:3:19"
                                                                            },
                                                                            {
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {},
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "commonType": {
                                                                                                        "typeIdentifier": "t_bytes32",
                                                                                                        "typeString": "bytes32"
                                                                                                    },
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "operator": "==",
                                                                                                    "type": "bool"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "bytes32"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "type": "bytes32[] storage ref"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 9332,
                                                                                                                            "type": "mapping(bytes32 => bytes32[] storage ref)",
                                                                                                                            "value": "trades"
                                                                                                                        },
                                                                                                                        "id": 10464,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "14001:6:19"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 10301,
                                                                                                                            "type": "bytes32",
                                                                                                                            "value": "DPID"
                                                                                                                        },
                                                                                                                        "id": 10465,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "14008:4:19"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 10466,
                                                                                                                "name": "IndexAccess",
                                                                                                                "src": "14001:12:19"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 10452,
                                                                                                                    "type": "uint256",
                                                                                                                    "value": "i"
                                                                                                                },
                                                                                                                "id": 10467,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "14014:1:19"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 10468,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "14001:15:19"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 10295,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "ref"
                                                                                                        },
                                                                                                        "id": 10469,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "14018:3:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10470,
                                                                                                "name": "BinaryOperation",
                                                                                                "src": "14001:20:19"
                                                                                            },
                                                                                            {
                                                                                                "children": [
                                                                                                    {
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "commonType": {
                                                                                                                        "typeIdentifier": "t_uint256",
                                                                                                                        "typeString": "uint256"
                                                                                                                    },
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": false,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "operator": "==",
                                                                                                                    "type": "bool"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 10452,
                                                                                                                            "type": "uint256",
                                                                                                                            "value": "i"
                                                                                                                        },
                                                                                                                        "id": 10471,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "14051:1:19"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "commonType": {
                                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                                "typeString": "uint256"
                                                                                                                            },
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "operator": "-",
                                                                                                                            "type": "uint256"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "member_name": "length",
                                                                                                                                    "type": "uint256"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "bytes32[] storage ref"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 9332,
                                                                                                                                                    "type": "mapping(bytes32 => bytes32[] storage ref)",
                                                                                                                                                    "value": "trades"
                                                                                                                                                },
                                                                                                                                                "id": 10472,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "14054:6:19"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 10301,
                                                                                                                                                    "type": "bytes32",
                                                                                                                                                    "value": "DPID"
                                                                                                                                                },
                                                                                                                                                "id": 10473,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "14061:4:19"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 10474,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "14054:12:19"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 10475,
                                                                                                                                "name": "MemberAccess",
                                                                                                                                "src": "14054:19:19"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "hexvalue": "31",
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": false,
                                                                                                                                    "isPure": true,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "token": "number",
                                                                                                                                    "type": "int_const 1",
                                                                                                                                    "value": "1"
                                                                                                                                },
                                                                                                                                "id": 10476,
                                                                                                                                "name": "Literal",
                                                                                                                                "src": "14074:1:19"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 10477,
                                                                                                                        "name": "BinaryOperation",
                                                                                                                        "src": "14054:21:19"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 10478,
                                                                                                                "name": "BinaryOperation",
                                                                                                                "src": "14051:24:19"
                                                                                                            },
                                                                                                            {
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "operator": "delete",
                                                                                                                            "prefix": true,
                                                                                                                            "type": "tuple()"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": true,
                                                                                                                                    "type": "bytes32"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "bytes32[] storage ref"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 9332,
                                                                                                                                                    "type": "mapping(bytes32 => bytes32[] storage ref)",
                                                                                                                                                    "value": "trades"
                                                                                                                                                },
                                                                                                                                                "id": 10479,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "14112:6:19"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 10301,
                                                                                                                                                    "type": "bytes32",
                                                                                                                                                    "value": "DPID"
                                                                                                                                                },
                                                                                                                                                "id": 10480,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "14119:4:19"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 10481,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "14112:12:19"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 10452,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "i"
                                                                                                                                        },
                                                                                                                                        "id": 10482,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "14125:1:19"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 10483,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "14112:15:19"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 10484,
                                                                                                                        "name": "UnaryOperation",
                                                                                                                        "src": "14105:22:19"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 10485,
                                                                                                                "name": "ExpressionStatement",
                                                                                                                "src": "14105:22:19"
                                                                                                            },
                                                                                                            {
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "isConstant": false,
                                                                                                                            "isLValue": false,
                                                                                                                            "isPure": false,
                                                                                                                            "lValueRequested": false,
                                                                                                                            "operator": "=",
                                                                                                                            "type": "bytes32"
                                                                                                                        },
                                                                                                                        "children": [
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": true,
                                                                                                                                    "type": "bytes32"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "bytes32[] storage ref"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 9332,
                                                                                                                                                    "type": "mapping(bytes32 => bytes32[] storage ref)",
                                                                                                                                                    "value": "trades"
                                                                                                                                                },
                                                                                                                                                "id": 10486,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "14186:6:19"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 10301,
                                                                                                                                                    "type": "bytes32",
                                                                                                                                                    "value": "DPID"
                                                                                                                                                },
                                                                                                                                                "id": 10487,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "14193:4:19"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 10489,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "14186:12:19"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "overloadedDeclarations": [
                                                                                                                                                null
                                                                                                                                            ],
                                                                                                                                            "referencedDeclaration": 10452,
                                                                                                                                            "type": "uint256",
                                                                                                                                            "value": "i"
                                                                                                                                        },
                                                                                                                                        "id": 10488,
                                                                                                                                        "name": "Identifier",
                                                                                                                                        "src": "14199:1:19"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 10490,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "14186:15:19"
                                                                                                                            },
                                                                                                                            {
                                                                                                                                "attributes": {
                                                                                                                                    "isConstant": false,
                                                                                                                                    "isLValue": true,
                                                                                                                                    "isPure": false,
                                                                                                                                    "lValueRequested": false,
                                                                                                                                    "type": "bytes32"
                                                                                                                                },
                                                                                                                                "children": [
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": true,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "type": "bytes32[] storage ref"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 9332,
                                                                                                                                                    "type": "mapping(bytes32 => bytes32[] storage ref)",
                                                                                                                                                    "value": "trades"
                                                                                                                                                },
                                                                                                                                                "id": 10491,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "14204:6:19"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 10301,
                                                                                                                                                    "type": "bytes32",
                                                                                                                                                    "value": "DPID"
                                                                                                                                                },
                                                                                                                                                "id": 10492,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "14211:4:19"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 10493,
                                                                                                                                        "name": "IndexAccess",
                                                                                                                                        "src": "14204:12:19"
                                                                                                                                    },
                                                                                                                                    {
                                                                                                                                        "attributes": {
                                                                                                                                            "commonType": {
                                                                                                                                                "typeIdentifier": "t_uint256",
                                                                                                                                                "typeString": "uint256"
                                                                                                                                            },
                                                                                                                                            "isConstant": false,
                                                                                                                                            "isLValue": false,
                                                                                                                                            "isPure": false,
                                                                                                                                            "lValueRequested": false,
                                                                                                                                            "operator": "+",
                                                                                                                                            "type": "uint256"
                                                                                                                                        },
                                                                                                                                        "children": [
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "overloadedDeclarations": [
                                                                                                                                                        null
                                                                                                                                                    ],
                                                                                                                                                    "referencedDeclaration": 10452,
                                                                                                                                                    "type": "uint256",
                                                                                                                                                    "value": "i"
                                                                                                                                                },
                                                                                                                                                "id": 10494,
                                                                                                                                                "name": "Identifier",
                                                                                                                                                "src": "14217:1:19"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                                "attributes": {
                                                                                                                                                    "hexvalue": "31",
                                                                                                                                                    "isConstant": false,
                                                                                                                                                    "isLValue": false,
                                                                                                                                                    "isPure": true,
                                                                                                                                                    "lValueRequested": false,
                                                                                                                                                    "token": "number",
                                                                                                                                                    "type": "int_const 1",
                                                                                                                                                    "value": "1"
                                                                                                                                                },
                                                                                                                                                "id": 10495,
                                                                                                                                                "name": "Literal",
                                                                                                                                                "src": "14219:1:19"
                                                                                                                                            }
                                                                                                                                        ],
                                                                                                                                        "id": 10496,
                                                                                                                                        "name": "BinaryOperation",
                                                                                                                                        "src": "14217:3:19"
                                                                                                                                    }
                                                                                                                                ],
                                                                                                                                "id": 10497,
                                                                                                                                "name": "IndexAccess",
                                                                                                                                "src": "14204:17:19"
                                                                                                                            }
                                                                                                                        ],
                                                                                                                        "id": 10498,
                                                                                                                        "name": "Assignment",
                                                                                                                        "src": "14186:35:19"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 10499,
                                                                                                                "name": "ExpressionStatement",
                                                                                                                "src": "14186:35:19"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 10500,
                                                                                                        "name": "IfStatement",
                                                                                                        "src": "14048:173:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10501,
                                                                                                "name": "Block",
                                                                                                "src": "14022:222:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10502,
                                                                                        "name": "IfStatement",
                                                                                        "src": "13998:246:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10503,
                                                                                "name": "Block",
                                                                                "src": "13976:286:19"
                                                                            }
                                                                        ],
                                                                        "id": 10504,
                                                                        "name": "ForStatement",
                                                                        "src": "13935:327:19"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "=",
                                                                                    "type": "bytes32"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": true,
                                                                                            "member_name": "status",
                                                                                            "referencedDeclaration": 12158,
                                                                                            "type": "bytes32"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 9327,
                                                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                            "value": "settlements"
                                                                                                        },
                                                                                                        "id": 10505,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "14279:11:19"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 10295,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "ref"
                                                                                                        },
                                                                                                        "id": 10506,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "14291:3:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10507,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "14279:16:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10508,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "14279:23:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "hexvalue": "436f6e6669726d",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "token": "string",
                                                                                            "type": "literal_string \"Confirm\"",
                                                                                            "value": "Confirm"
                                                                                        },
                                                                                        "id": 10509,
                                                                                        "name": "Literal",
                                                                                        "src": "14305:9:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10510,
                                                                                "name": "Assignment",
                                                                                "src": "14279:35:19"
                                                                            }
                                                                        ],
                                                                        "id": 10511,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "14279:35:19"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "=",
                                                                                    "type": "bool"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 10308,
                                                                                            "type": "bool",
                                                                                            "value": "settled"
                                                                                        },
                                                                                        "id": 10512,
                                                                                        "name": "Identifier",
                                                                                        "src": "14336:7:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "hexvalue": "74727565",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "token": "bool",
                                                                                            "type": "bool",
                                                                                            "value": "true"
                                                                                        },
                                                                                        "id": 10513,
                                                                                        "name": "Literal",
                                                                                        "src": "14346:4:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10514,
                                                                                "name": "Assignment",
                                                                                "src": "14336:14:19"
                                                                            }
                                                                        ],
                                                                        "id": 10515,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "14336:14:19"
                                                                    }
                                                                ],
                                                                "id": 10516,
                                                                "name": "Block",
                                                                "src": "13706:671:19"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "assignments": [
                                                                                10518
                                                                            ]
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "constant": false,
                                                                                    "mutability": "mutable",
                                                                                    "name": "consideration",
                                                                                    "scope": 10619,
                                                                                    "stateVariable": false,
                                                                                    "storageLocation": "default",
                                                                                    "type": "uint256",
                                                                                    "visibility": "internal"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "name": "uint256",
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "id": 10517,
                                                                                        "name": "ElementaryTypeName",
                                                                                        "src": "14412:7:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10518,
                                                                                "name": "VariableDeclaration",
                                                                                "src": "14412:21:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "uint256",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 10912,
                                                                                            "type": "function (uint256,uint256) pure returns (uint256)",
                                                                                            "value": "_downscaleDown"
                                                                                        },
                                                                                        "id": 10519,
                                                                                        "name": "Identifier",
                                                                                        "src": "14436:14:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "consideration",
                                                                                            "referencedDeclaration": 12166,
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 9327,
                                                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                            "value": "settlements"
                                                                                                        },
                                                                                                        "id": 10520,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "14451:11:19"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 10295,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "ref"
                                                                                                        },
                                                                                                        "id": 10521,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "14463:3:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10522,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "14451:16:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10523,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "14451:30:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "tryCall": false,
                                                                                            "type": "uint256",
                                                                                            "type_conversion": false
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                                                            "typeString": "contract IERC20"
                                                                                                        }
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 10895,
                                                                                                    "type": "function (contract IERC20) view returns (uint256)",
                                                                                                    "value": "_computeScalingFactor"
                                                                                                },
                                                                                                "id": 10524,
                                                                                                "name": "Identifier",
                                                                                                "src": "14483:21:19"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "tryCall": false,
                                                                                                    "type": "contract IERC20",
                                                                                                    "type_conversion": true
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                }
                                                                                                            ],
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 2938,
                                                                                                            "type": "type(contract IERC20)",
                                                                                                            "value": "IERC20"
                                                                                                        },
                                                                                                        "id": 10525,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "14505:6:19"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "member_name": "currency",
                                                                                                            "referencedDeclaration": 12156,
                                                                                                            "type": "address"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 9327,
                                                                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                                            "value": "settlements"
                                                                                                                        },
                                                                                                                        "id": 10526,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "14512:11:19"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 10295,
                                                                                                                            "type": "bytes32",
                                                                                                                            "value": "ref"
                                                                                                                        },
                                                                                                                        "id": 10527,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "14524:3:19"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 10528,
                                                                                                                "name": "IndexAccess",
                                                                                                                "src": "14512:16:19"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 10529,
                                                                                                        "name": "MemberAccess",
                                                                                                        "src": "14512:25:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10530,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "14505:33:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10531,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "14483:56:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10532,
                                                                                "name": "FunctionCall",
                                                                                "src": "14436:104:19"
                                                                            }
                                                                        ],
                                                                        "id": 10533,
                                                                        "name": "VariableDeclarationStatement",
                                                                        "src": "14412:128:19"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "tuple()",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                    "typeString": "bytes32"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "revertTrade",
                                                                                            "referencedDeclaration": 11976,
                                                                                            "type": "function (bytes32,uint256,uint256) external"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "orderPool",
                                                                                                    "referencedDeclaration": 12148,
                                                                                                    "type": "contract IOrder"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "struct ISettlor.settlement storage ref"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 9327,
                                                                                                                    "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                                    "value": "settlements"
                                                                                                                },
                                                                                                                "id": 10534,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "14558:11:19"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 10295,
                                                                                                                    "type": "bytes32",
                                                                                                                    "value": "ref"
                                                                                                                },
                                                                                                                "id": 10535,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "14570:3:19"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 10536,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "14558:16:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10537,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "14558:26:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10538,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "14558:38:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "partyRef",
                                                                                            "referencedDeclaration": 12170,
                                                                                            "type": "bytes32"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 9327,
                                                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                            "value": "settlements"
                                                                                                        },
                                                                                                        "id": 10539,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "14597:11:19"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 10295,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "ref"
                                                                                                        },
                                                                                                        "id": 10540,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "14609:3:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10541,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "14597:16:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10542,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "14597:25:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "unitsToTransfer",
                                                                                            "referencedDeclaration": 12164,
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 9327,
                                                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                            "value": "settlements"
                                                                                                        },
                                                                                                        "id": 10543,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "14624:11:19"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 10295,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "ref"
                                                                                                        },
                                                                                                        "id": 10544,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "14636:3:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10545,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "14624:16:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10546,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "14624:32:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "price",
                                                                                            "referencedDeclaration": 12162,
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 9327,
                                                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                            "value": "settlements"
                                                                                                        },
                                                                                                        "id": 10547,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "14658:11:19"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 10295,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "ref"
                                                                                                        },
                                                                                                        "id": 10548,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "14670:3:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10549,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "14658:16:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10550,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "14658:22:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10551,
                                                                                "name": "FunctionCall",
                                                                                "src": "14558:123:19"
                                                                            }
                                                                        ],
                                                                        "id": 10552,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "14558:123:19"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "tuple()",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_bytes32",
                                                                                                    "typeString": "bytes32"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "revertTrade",
                                                                                            "referencedDeclaration": 11976,
                                                                                            "type": "function (bytes32,uint256,uint256) external"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "orderPool",
                                                                                                    "referencedDeclaration": 12148,
                                                                                                    "type": "contract IOrder"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "struct ISettlor.settlement storage ref"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 9327,
                                                                                                                    "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                                    "value": "settlements"
                                                                                                                },
                                                                                                                "id": 10553,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "14699:11:19"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 10295,
                                                                                                                    "type": "bytes32",
                                                                                                                    "value": "ref"
                                                                                                                },
                                                                                                                "id": 10554,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "14711:3:19"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 10555,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "14699:16:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10556,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "14699:26:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10557,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "14699:38:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "counterpartyRef",
                                                                                            "referencedDeclaration": 12172,
                                                                                            "type": "bytes32"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 9327,
                                                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                            "value": "settlements"
                                                                                                        },
                                                                                                        "id": 10558,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "14738:11:19"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 10295,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "ref"
                                                                                                        },
                                                                                                        "id": 10559,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "14750:3:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10560,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "14738:16:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10561,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "14738:32:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 10518,
                                                                                            "type": "uint256",
                                                                                            "value": "consideration"
                                                                                        },
                                                                                        "id": 10562,
                                                                                        "name": "Identifier",
                                                                                        "src": "14772:13:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "price",
                                                                                            "referencedDeclaration": 12162,
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 9327,
                                                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                            "value": "settlements"
                                                                                                        },
                                                                                                        "id": 10563,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "14787:11:19"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 10295,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "ref"
                                                                                                        },
                                                                                                        "id": 10564,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "14799:3:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10565,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "14787:16:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10566,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "14787:22:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10567,
                                                                                "name": "FunctionCall",
                                                                                "src": "14699:111:19"
                                                                            }
                                                                        ],
                                                                        "id": 10568,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "14699:111:19"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "bool",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "transferFrom",
                                                                                            "referencedDeclaration": 2919,
                                                                                            "type": "function (address,address,uint256) external returns (bool)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "tryCall": false,
                                                                                                    "type": "contract IERC20",
                                                                                                    "type_conversion": true
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                }
                                                                                                            ],
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 2938,
                                                                                                            "type": "type(contract IERC20)",
                                                                                                            "value": "IERC20"
                                                                                                        },
                                                                                                        "id": 10569,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "14828:6:19"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "member_name": "currency",
                                                                                                            "referencedDeclaration": 12156,
                                                                                                            "type": "address"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 9327,
                                                                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                                            "value": "settlements"
                                                                                                                        },
                                                                                                                        "id": 10570,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "14835:11:19"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 10295,
                                                                                                                            "type": "bytes32",
                                                                                                                            "value": "ref"
                                                                                                                        },
                                                                                                                        "id": 10571,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "14847:3:19"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 10572,
                                                                                                                "name": "IndexAccess",
                                                                                                                "src": "14835:16:19"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 10573,
                                                                                                        "name": "MemberAccess",
                                                                                                        "src": "14835:25:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10574,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "14828:33:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10575,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "14828:46:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "transferor",
                                                                                            "referencedDeclaration": 12150,
                                                                                            "type": "address"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 9327,
                                                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                            "value": "settlements"
                                                                                                        },
                                                                                                        "id": 10576,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "14875:11:19"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 10295,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "ref"
                                                                                                        },
                                                                                                        "id": 10577,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "14887:3:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10578,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "14875:16:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10579,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "14875:27:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "transferee",
                                                                                            "referencedDeclaration": 12152,
                                                                                            "type": "address"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 9327,
                                                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                            "value": "settlements"
                                                                                                        },
                                                                                                        "id": 10580,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "14904:11:19"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 10295,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "ref"
                                                                                                        },
                                                                                                        "id": 10581,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "14916:3:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10582,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "14904:16:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10583,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "14904:27:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 10518,
                                                                                            "type": "uint256",
                                                                                            "value": "consideration"
                                                                                        },
                                                                                        "id": 10584,
                                                                                        "name": "Identifier",
                                                                                        "src": "14933:13:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10585,
                                                                                "name": "FunctionCall",
                                                                                "src": "14828:119:19"
                                                                            }
                                                                        ],
                                                                        "id": 10586,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "14828:119:19"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "bool",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_address",
                                                                                                    "typeString": "address"
                                                                                                },
                                                                                                {
                                                                                                    "typeIdentifier": "t_uint256",
                                                                                                    "typeString": "uint256"
                                                                                                }
                                                                                            ],
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "transferFrom",
                                                                                            "referencedDeclaration": 2919,
                                                                                            "type": "function (address,address,uint256) external returns (bool)"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": false,
                                                                                                    "isPure": false,
                                                                                                    "isStructConstructorCall": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "names": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "tryCall": false,
                                                                                                    "type": "contract IERC20",
                                                                                                    "type_conversion": true
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "argumentTypes": [
                                                                                                                {
                                                                                                                    "typeIdentifier": "t_address",
                                                                                                                    "typeString": "address"
                                                                                                                }
                                                                                                            ],
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 2938,
                                                                                                            "type": "type(contract IERC20)",
                                                                                                            "value": "IERC20"
                                                                                                        },
                                                                                                        "id": 10587,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "14965:6:19"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "member_name": "security",
                                                                                                            "referencedDeclaration": 12154,
                                                                                                            "type": "address"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "isConstant": false,
                                                                                                                    "isLValue": true,
                                                                                                                    "isPure": false,
                                                                                                                    "lValueRequested": false,
                                                                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                                                                },
                                                                                                                "children": [
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 9327,
                                                                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                                            "value": "settlements"
                                                                                                                        },
                                                                                                                        "id": 10588,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "14972:11:19"
                                                                                                                    },
                                                                                                                    {
                                                                                                                        "attributes": {
                                                                                                                            "overloadedDeclarations": [
                                                                                                                                null
                                                                                                                            ],
                                                                                                                            "referencedDeclaration": 10295,
                                                                                                                            "type": "bytes32",
                                                                                                                            "value": "ref"
                                                                                                                        },
                                                                                                                        "id": 10589,
                                                                                                                        "name": "Identifier",
                                                                                                                        "src": "14984:3:19"
                                                                                                                    }
                                                                                                                ],
                                                                                                                "id": 10590,
                                                                                                                "name": "IndexAccess",
                                                                                                                "src": "14972:16:19"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 10591,
                                                                                                        "name": "MemberAccess",
                                                                                                        "src": "14972:25:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10592,
                                                                                                "name": "FunctionCall",
                                                                                                "src": "14965:33:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10593,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "14965:46:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "transferee",
                                                                                            "referencedDeclaration": 12152,
                                                                                            "type": "address"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 9327,
                                                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                            "value": "settlements"
                                                                                                        },
                                                                                                        "id": 10594,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "15012:11:19"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 10295,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "ref"
                                                                                                        },
                                                                                                        "id": 10595,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "15024:3:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10596,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "15012:16:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10597,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "15012:27:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "transferor",
                                                                                            "referencedDeclaration": 12150,
                                                                                            "type": "address"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 9327,
                                                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                            "value": "settlements"
                                                                                                        },
                                                                                                        "id": 10598,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "15041:11:19"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 10295,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "ref"
                                                                                                        },
                                                                                                        "id": 10599,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "15053:3:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10600,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "15041:16:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10601,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "15041:27:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "member_name": "unitsToTransfer",
                                                                                            "referencedDeclaration": 12164,
                                                                                            "type": "uint256"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 9327,
                                                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                            "value": "settlements"
                                                                                                        },
                                                                                                        "id": 10602,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "15070:11:19"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 10295,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "ref"
                                                                                                        },
                                                                                                        "id": 10603,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "15082:3:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10604,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "15070:16:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10605,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "15070:32:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10606,
                                                                                "name": "FunctionCall",
                                                                                "src": "14965:138:19"
                                                                            }
                                                                        ],
                                                                        "id": 10607,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "14965:138:19"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "=",
                                                                                    "type": "bytes32"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": true,
                                                                                            "member_name": "status",
                                                                                            "referencedDeclaration": 12158,
                                                                                            "type": "bytes32"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 9327,
                                                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                            "value": "settlements"
                                                                                                        },
                                                                                                        "id": 10608,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "15121:11:19"
                                                                                                    },
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "overloadedDeclarations": [
                                                                                                                null
                                                                                                            ],
                                                                                                            "referencedDeclaration": 10295,
                                                                                                            "type": "bytes32",
                                                                                                            "value": "ref"
                                                                                                        },
                                                                                                        "id": 10609,
                                                                                                        "name": "Identifier",
                                                                                                        "src": "15133:3:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10610,
                                                                                                "name": "IndexAccess",
                                                                                                "src": "15121:16:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10611,
                                                                                        "name": "MemberAccess",
                                                                                        "src": "15121:23:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "hexvalue": "4661696c",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "token": "string",
                                                                                            "type": "literal_string \"Fail\"",
                                                                                            "value": "Fail"
                                                                                        },
                                                                                        "id": 10612,
                                                                                        "name": "Literal",
                                                                                        "src": "15147:6:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10613,
                                                                                "name": "Assignment",
                                                                                "src": "15121:32:19"
                                                                            }
                                                                        ],
                                                                        "id": 10614,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "15121:32:19"
                                                                    },
                                                                    {
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "operator": "=",
                                                                                    "type": "bool"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 10308,
                                                                                            "type": "bool",
                                                                                            "value": "settled"
                                                                                        },
                                                                                        "id": 10615,
                                                                                        "name": "Identifier",
                                                                                        "src": "15171:7:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "hexvalue": "74727565",
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": true,
                                                                                            "lValueRequested": false,
                                                                                            "token": "bool",
                                                                                            "type": "bool",
                                                                                            "value": "true"
                                                                                        },
                                                                                        "id": 10616,
                                                                                        "name": "Literal",
                                                                                        "src": "15181:4:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10617,
                                                                                "name": "Assignment",
                                                                                "src": "15171:14:19"
                                                                            }
                                                                        ],
                                                                        "id": 10618,
                                                                        "name": "ExpressionStatement",
                                                                        "src": "15171:14:19"
                                                                    }
                                                                ],
                                                                "id": 10619,
                                                                "name": "Block",
                                                                "src": "14394:806:19"
                                                            }
                                                        ],
                                                        "id": 10620,
                                                        "name": "IfStatement",
                                                        "src": "13607:1593:19"
                                                    }
                                                ],
                                                "id": 10621,
                                                "name": "Block",
                                                "src": "13487:1723:19"
                                            },
                                            {
                                                "attributes": {},
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_bool",
                                                                "typeString": "bool"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "&&",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "==",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 10297,
                                                                            "type": "bytes32",
                                                                            "value": "status"
                                                                        },
                                                                        "id": 10622,
                                                                        "name": "Identifier",
                                                                        "src": "15227:6:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "hexvalue": "52656a656374",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "token": "string",
                                                                            "type": "literal_string \"Reject\"",
                                                                            "value": "Reject"
                                                                        },
                                                                        "id": 10623,
                                                                        "name": "Literal",
                                                                        "src": "15235:8:19"
                                                                    }
                                                                ],
                                                                "id": 10624,
                                                                "name": "BinaryOperation",
                                                                "src": "15227:16:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "commonType": {
                                                                        "typeIdentifier": "t_bytes32",
                                                                        "typeString": "bytes32"
                                                                    },
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "operator": "!=",
                                                                    "type": "bool"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "member_name": "status",
                                                                            "referencedDeclaration": 12158,
                                                                            "type": "bytes32"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 9327,
                                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                            "value": "settlements"
                                                                                        },
                                                                                        "id": 10625,
                                                                                        "name": "Identifier",
                                                                                        "src": "15247:11:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 10295,
                                                                                            "type": "bytes32",
                                                                                            "value": "ref"
                                                                                        },
                                                                                        "id": 10626,
                                                                                        "name": "Identifier",
                                                                                        "src": "15259:3:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10627,
                                                                                "name": "IndexAccess",
                                                                                "src": "15247:16:19"
                                                                            }
                                                                        ],
                                                                        "id": 10628,
                                                                        "name": "MemberAccess",
                                                                        "src": "15247:23:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "hexvalue": "52656a656374",
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": true,
                                                                            "lValueRequested": false,
                                                                            "token": "string",
                                                                            "type": "literal_string \"Reject\"",
                                                                            "value": "Reject"
                                                                        },
                                                                        "id": 10629,
                                                                        "name": "Literal",
                                                                        "src": "15272:8:19"
                                                                    }
                                                                ],
                                                                "id": 10630,
                                                                "name": "BinaryOperation",
                                                                "src": "15247:33:19"
                                                            }
                                                        ],
                                                        "id": 10631,
                                                        "name": "BinaryOperation",
                                                        "src": "15227:53:19"
                                                    },
                                                    {
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "assignments": [
                                                                        10633
                                                                    ]
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "constant": false,
                                                                            "mutability": "mutable",
                                                                            "name": "consideration",
                                                                            "scope": 10699,
                                                                            "stateVariable": false,
                                                                            "storageLocation": "default",
                                                                            "type": "uint256",
                                                                            "visibility": "internal"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "name": "uint256",
                                                                                    "type": "uint256"
                                                                                },
                                                                                "id": 10632,
                                                                                "name": "ElementaryTypeName",
                                                                                "src": "15295:7:19"
                                                                            }
                                                                        ],
                                                                        "id": 10633,
                                                                        "name": "VariableDeclaration",
                                                                        "src": "15295:21:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "uint256",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 10912,
                                                                                    "type": "function (uint256,uint256) pure returns (uint256)",
                                                                                    "value": "_downscaleDown"
                                                                                },
                                                                                "id": 10634,
                                                                                "name": "Identifier",
                                                                                "src": "15319:14:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "consideration",
                                                                                    "referencedDeclaration": 12166,
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct ISettlor.settlement storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 9327,
                                                                                                    "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                    "value": "settlements"
                                                                                                },
                                                                                                "id": 10635,
                                                                                                "name": "Identifier",
                                                                                                "src": "15334:11:19"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 10295,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "ref"
                                                                                                },
                                                                                                "id": 10636,
                                                                                                "name": "Identifier",
                                                                                                "src": "15346:3:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10637,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "15334:16:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10638,
                                                                                "name": "MemberAccess",
                                                                                "src": "15334:30:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "isStructConstructorCall": false,
                                                                                    "lValueRequested": false,
                                                                                    "names": [
                                                                                        null
                                                                                    ],
                                                                                    "tryCall": false,
                                                                                    "type": "uint256",
                                                                                    "type_conversion": false
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "argumentTypes": [
                                                                                                {
                                                                                                    "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                                                    "typeString": "contract IERC20"
                                                                                                }
                                                                                            ],
                                                                                            "overloadedDeclarations": [
                                                                                                null
                                                                                            ],
                                                                                            "referencedDeclaration": 10895,
                                                                                            "type": "function (contract IERC20) view returns (uint256)",
                                                                                            "value": "_computeScalingFactor"
                                                                                        },
                                                                                        "id": 10639,
                                                                                        "name": "Identifier",
                                                                                        "src": "15366:21:19"
                                                                                    },
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "tryCall": false,
                                                                                            "type": "contract IERC20",
                                                                                            "type_conversion": true
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 2938,
                                                                                                    "type": "type(contract IERC20)",
                                                                                                    "value": "IERC20"
                                                                                                },
                                                                                                "id": 10640,
                                                                                                "name": "Identifier",
                                                                                                "src": "15388:6:19"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "currency",
                                                                                                    "referencedDeclaration": 12156,
                                                                                                    "type": "address"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "struct ISettlor.settlement storage ref"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 9327,
                                                                                                                    "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                                    "value": "settlements"
                                                                                                                },
                                                                                                                "id": 10641,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "15395:11:19"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 10295,
                                                                                                                    "type": "bytes32",
                                                                                                                    "value": "ref"
                                                                                                                },
                                                                                                                "id": 10642,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "15407:3:19"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 10643,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "15395:16:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10644,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "15395:25:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10645,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "15388:33:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10646,
                                                                                "name": "FunctionCall",
                                                                                "src": "15366:56:19"
                                                                            }
                                                                        ],
                                                                        "id": 10647,
                                                                        "name": "FunctionCall",
                                                                        "src": "15319:104:19"
                                                                    }
                                                                ],
                                                                "id": 10648,
                                                                "name": "VariableDeclarationStatement",
                                                                "src": "15295:128:19"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "bool",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "transferFrom",
                                                                                    "referencedDeclaration": 2919,
                                                                                    "type": "function (address,address,uint256) external returns (bool)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "tryCall": false,
                                                                                            "type": "contract IERC20",
                                                                                            "type_conversion": true
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 2938,
                                                                                                    "type": "type(contract IERC20)",
                                                                                                    "value": "IERC20"
                                                                                                },
                                                                                                "id": 10649,
                                                                                                "name": "Identifier",
                                                                                                "src": "15437:6:19"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "currency",
                                                                                                    "referencedDeclaration": 12156,
                                                                                                    "type": "address"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "struct ISettlor.settlement storage ref"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 9327,
                                                                                                                    "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                                    "value": "settlements"
                                                                                                                },
                                                                                                                "id": 10650,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "15444:11:19"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 10295,
                                                                                                                    "type": "bytes32",
                                                                                                                    "value": "ref"
                                                                                                                },
                                                                                                                "id": 10651,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "15456:3:19"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 10652,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "15444:16:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10653,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "15444:25:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10654,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "15437:33:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10655,
                                                                                "name": "MemberAccess",
                                                                                "src": "15437:46:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "transferor",
                                                                                    "referencedDeclaration": 12150,
                                                                                    "type": "address"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct ISettlor.settlement storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 9327,
                                                                                                    "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                    "value": "settlements"
                                                                                                },
                                                                                                "id": 10656,
                                                                                                "name": "Identifier",
                                                                                                "src": "15484:11:19"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 10295,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "ref"
                                                                                                },
                                                                                                "id": 10657,
                                                                                                "name": "Identifier",
                                                                                                "src": "15496:3:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10658,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "15484:16:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10659,
                                                                                "name": "MemberAccess",
                                                                                "src": "15484:27:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "transferee",
                                                                                    "referencedDeclaration": 12152,
                                                                                    "type": "address"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct ISettlor.settlement storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 9327,
                                                                                                    "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                    "value": "settlements"
                                                                                                },
                                                                                                "id": 10660,
                                                                                                "name": "Identifier",
                                                                                                "src": "15513:11:19"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 10295,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "ref"
                                                                                                },
                                                                                                "id": 10661,
                                                                                                "name": "Identifier",
                                                                                                "src": "15525:3:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10662,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "15513:16:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10663,
                                                                                "name": "MemberAccess",
                                                                                "src": "15513:27:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 10633,
                                                                                    "type": "uint256",
                                                                                    "value": "consideration"
                                                                                },
                                                                                "id": 10664,
                                                                                "name": "Identifier",
                                                                                "src": "15542:13:19"
                                                                            }
                                                                        ],
                                                                        "id": 10665,
                                                                        "name": "FunctionCall",
                                                                        "src": "15437:119:19"
                                                                    }
                                                                ],
                                                                "id": 10666,
                                                                "name": "ExpressionStatement",
                                                                "src": "15437:119:19"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "bool",
                                                                            "type_conversion": false
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_address",
                                                                                            "typeString": "address"
                                                                                        },
                                                                                        {
                                                                                            "typeIdentifier": "t_uint256",
                                                                                            "typeString": "uint256"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "transferFrom",
                                                                                    "referencedDeclaration": 2919,
                                                                                    "type": "function (address,address,uint256) external returns (bool)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": false,
                                                                                            "isPure": false,
                                                                                            "isStructConstructorCall": false,
                                                                                            "lValueRequested": false,
                                                                                            "names": [
                                                                                                null
                                                                                            ],
                                                                                            "tryCall": false,
                                                                                            "type": "contract IERC20",
                                                                                            "type_conversion": true
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "argumentTypes": [
                                                                                                        {
                                                                                                            "typeIdentifier": "t_address",
                                                                                                            "typeString": "address"
                                                                                                        }
                                                                                                    ],
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 2938,
                                                                                                    "type": "type(contract IERC20)",
                                                                                                    "value": "IERC20"
                                                                                                },
                                                                                                "id": 10667,
                                                                                                "name": "Identifier",
                                                                                                "src": "15570:6:19"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "isConstant": false,
                                                                                                    "isLValue": true,
                                                                                                    "isPure": false,
                                                                                                    "lValueRequested": false,
                                                                                                    "member_name": "security",
                                                                                                    "referencedDeclaration": 12154,
                                                                                                    "type": "address"
                                                                                                },
                                                                                                "children": [
                                                                                                    {
                                                                                                        "attributes": {
                                                                                                            "isConstant": false,
                                                                                                            "isLValue": true,
                                                                                                            "isPure": false,
                                                                                                            "lValueRequested": false,
                                                                                                            "type": "struct ISettlor.settlement storage ref"
                                                                                                        },
                                                                                                        "children": [
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 9327,
                                                                                                                    "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                                    "value": "settlements"
                                                                                                                },
                                                                                                                "id": 10668,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "15577:11:19"
                                                                                                            },
                                                                                                            {
                                                                                                                "attributes": {
                                                                                                                    "overloadedDeclarations": [
                                                                                                                        null
                                                                                                                    ],
                                                                                                                    "referencedDeclaration": 10295,
                                                                                                                    "type": "bytes32",
                                                                                                                    "value": "ref"
                                                                                                                },
                                                                                                                "id": 10669,
                                                                                                                "name": "Identifier",
                                                                                                                "src": "15589:3:19"
                                                                                                            }
                                                                                                        ],
                                                                                                        "id": 10670,
                                                                                                        "name": "IndexAccess",
                                                                                                        "src": "15577:16:19"
                                                                                                    }
                                                                                                ],
                                                                                                "id": 10671,
                                                                                                "name": "MemberAccess",
                                                                                                "src": "15577:25:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10672,
                                                                                        "name": "FunctionCall",
                                                                                        "src": "15570:33:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10673,
                                                                                "name": "MemberAccess",
                                                                                "src": "15570:46:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "transferee",
                                                                                    "referencedDeclaration": 12152,
                                                                                    "type": "address"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct ISettlor.settlement storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 9327,
                                                                                                    "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                    "value": "settlements"
                                                                                                },
                                                                                                "id": 10674,
                                                                                                "name": "Identifier",
                                                                                                "src": "15617:11:19"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 10295,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "ref"
                                                                                                },
                                                                                                "id": 10675,
                                                                                                "name": "Identifier",
                                                                                                "src": "15629:3:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10676,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "15617:16:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10677,
                                                                                "name": "MemberAccess",
                                                                                "src": "15617:27:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "transferor",
                                                                                    "referencedDeclaration": 12150,
                                                                                    "type": "address"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct ISettlor.settlement storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 9327,
                                                                                                    "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                    "value": "settlements"
                                                                                                },
                                                                                                "id": 10678,
                                                                                                "name": "Identifier",
                                                                                                "src": "15646:11:19"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 10295,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "ref"
                                                                                                },
                                                                                                "id": 10679,
                                                                                                "name": "Identifier",
                                                                                                "src": "15658:3:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10680,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "15646:16:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10681,
                                                                                "name": "MemberAccess",
                                                                                "src": "15646:27:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": false,
                                                                                    "member_name": "unitsToTransfer",
                                                                                    "referencedDeclaration": 12164,
                                                                                    "type": "uint256"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct ISettlor.settlement storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 9327,
                                                                                                    "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                    "value": "settlements"
                                                                                                },
                                                                                                "id": 10682,
                                                                                                "name": "Identifier",
                                                                                                "src": "15675:11:19"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 10295,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "ref"
                                                                                                },
                                                                                                "id": 10683,
                                                                                                "name": "Identifier",
                                                                                                "src": "15687:3:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10684,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "15675:16:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10685,
                                                                                "name": "MemberAccess",
                                                                                "src": "15675:32:19"
                                                                            }
                                                                        ],
                                                                        "id": 10686,
                                                                        "name": "FunctionCall",
                                                                        "src": "15570:138:19"
                                                                    }
                                                                ],
                                                                "id": 10687,
                                                                "name": "ExpressionStatement",
                                                                "src": "15570:138:19"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": "=",
                                                                            "type": "bytes32"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "isConstant": false,
                                                                                    "isLValue": true,
                                                                                    "isPure": false,
                                                                                    "lValueRequested": true,
                                                                                    "member_name": "status",
                                                                                    "referencedDeclaration": 12158,
                                                                                    "type": "bytes32"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "isConstant": false,
                                                                                            "isLValue": true,
                                                                                            "isPure": false,
                                                                                            "lValueRequested": false,
                                                                                            "type": "struct ISettlor.settlement storage ref"
                                                                                        },
                                                                                        "children": [
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 9327,
                                                                                                    "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                                    "value": "settlements"
                                                                                                },
                                                                                                "id": 10688,
                                                                                                "name": "Identifier",
                                                                                                "src": "15722:11:19"
                                                                                            },
                                                                                            {
                                                                                                "attributes": {
                                                                                                    "overloadedDeclarations": [
                                                                                                        null
                                                                                                    ],
                                                                                                    "referencedDeclaration": 10295,
                                                                                                    "type": "bytes32",
                                                                                                    "value": "ref"
                                                                                                },
                                                                                                "id": 10689,
                                                                                                "name": "Identifier",
                                                                                                "src": "15734:3:19"
                                                                                            }
                                                                                        ],
                                                                                        "id": 10690,
                                                                                        "name": "IndexAccess",
                                                                                        "src": "15722:16:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10691,
                                                                                "name": "MemberAccess",
                                                                                "src": "15722:23:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "hexvalue": "52656a656374",
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "token": "string",
                                                                                    "type": "literal_string \"Reject\"",
                                                                                    "value": "Reject"
                                                                                },
                                                                                "id": 10692,
                                                                                "name": "Literal",
                                                                                "src": "15748:8:19"
                                                                            }
                                                                        ],
                                                                        "id": 10693,
                                                                        "name": "Assignment",
                                                                        "src": "15722:34:19"
                                                                    }
                                                                ],
                                                                "id": 10694,
                                                                "name": "ExpressionStatement",
                                                                "src": "15722:34:19"
                                                            },
                                                            {
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "commonType": {
                                                                                "typeIdentifier": "t_bool",
                                                                                "typeString": "bool"
                                                                            },
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "operator": "==",
                                                                            "type": "bool"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 10308,
                                                                                    "type": "bool",
                                                                                    "value": "settled"
                                                                                },
                                                                                "id": 10695,
                                                                                "name": "Identifier",
                                                                                "src": "15770:7:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "hexvalue": "74727565",
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "token": "bool",
                                                                                    "type": "bool",
                                                                                    "value": "true"
                                                                                },
                                                                                "id": 10696,
                                                                                "name": "Literal",
                                                                                "src": "15781:4:19"
                                                                            }
                                                                        ],
                                                                        "id": 10697,
                                                                        "name": "BinaryOperation",
                                                                        "src": "15770:15:19"
                                                                    }
                                                                ],
                                                                "id": 10698,
                                                                "name": "ExpressionStatement",
                                                                "src": "15770:15:19"
                                                            }
                                                        ],
                                                        "id": 10699,
                                                        "name": "Block",
                                                        "src": "15281:515:19"
                                                    }
                                                ],
                                                "id": 10700,
                                                "name": "IfStatement",
                                                "src": "15224:572:19"
                                            }
                                        ],
                                        "id": 10701,
                                        "name": "IfStatement",
                                        "src": "13393:2403:19"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                10703
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "poolId",
                                                    "scope": 10747,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "bytes32",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "bytes32",
                                                            "type": "bytes32"
                                                        },
                                                        "id": 10702,
                                                        "name": "ElementaryTypeName",
                                                        "src": "15832:7:19"
                                                    }
                                                ],
                                                "id": 10703,
                                                "name": "VariableDeclaration",
                                                "src": "15832:14:19"
                                            },
                                            {
                                                "attributes": {
                                                    "arguments": [
                                                        null
                                                    ],
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "bytes32",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                null
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "getPoolId",
                                                            "referencedDeclaration": 11920,
                                                            "type": "function () view external returns (bytes32)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "orderPool",
                                                                    "referencedDeclaration": 12148,
                                                                    "type": "contract IOrder"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": true,
                                                                            "isPure": false,
                                                                            "lValueRequested": false,
                                                                            "type": "struct ISettlor.settlement storage ref"
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 9327,
                                                                                    "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                                    "value": "settlements"
                                                                                },
                                                                                "id": 10704,
                                                                                "name": "Identifier",
                                                                                "src": "15849:11:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 10295,
                                                                                    "type": "bytes32",
                                                                                    "value": "ref"
                                                                                },
                                                                                "id": 10705,
                                                                                "name": "Identifier",
                                                                                "src": "15861:3:19"
                                                                            }
                                                                        ],
                                                                        "id": 10706,
                                                                        "name": "IndexAccess",
                                                                        "src": "15849:16:19"
                                                                    }
                                                                ],
                                                                "id": 10707,
                                                                "name": "MemberAccess",
                                                                "src": "15849:26:19"
                                                            }
                                                        ],
                                                        "id": 10708,
                                                        "name": "MemberAccess",
                                                        "src": "15849:36:19"
                                                    }
                                                ],
                                                "id": 10709,
                                                "name": "FunctionCall",
                                                "src": "15849:38:19"
                                            }
                                        ],
                                        "id": 10710,
                                        "name": "VariableDeclarationStatement",
                                        "src": "15832:55:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_bytes32",
                                                                    "typeString": "bytes32"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9398,
                                                            "type": "function (bytes32,address,address,uint256,address,uint256,address,bytes32,bytes32,uint256,uint256)",
                                                            "value": "tradeSettled"
                                                        },
                                                        "id": 10711,
                                                        "name": "Identifier",
                                                        "src": "15906:12:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10703,
                                                            "type": "bytes32",
                                                            "value": "poolId"
                                                        },
                                                        "id": 10712,
                                                        "name": "Identifier",
                                                        "src": "15948:6:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "transferor",
                                                            "referencedDeclaration": 12150,
                                                            "type": "address"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9327,
                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                            "value": "settlements"
                                                                        },
                                                                        "id": 10713,
                                                                        "name": "Identifier",
                                                                        "src": "15984:11:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 10295,
                                                                            "type": "bytes32",
                                                                            "value": "ref"
                                                                        },
                                                                        "id": 10714,
                                                                        "name": "Identifier",
                                                                        "src": "15996:3:19"
                                                                    }
                                                                ],
                                                                "id": 10715,
                                                                "name": "IndexAccess",
                                                                "src": "15984:16:19"
                                                            }
                                                        ],
                                                        "id": 10716,
                                                        "name": "MemberAccess",
                                                        "src": "15984:27:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "transferee",
                                                            "referencedDeclaration": 12152,
                                                            "type": "address"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9327,
                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                            "value": "settlements"
                                                                        },
                                                                        "id": 10717,
                                                                        "name": "Identifier",
                                                                        "src": "16042:11:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 10295,
                                                                            "type": "bytes32",
                                                                            "value": "ref"
                                                                        },
                                                                        "id": 10718,
                                                                        "name": "Identifier",
                                                                        "src": "16054:3:19"
                                                                    }
                                                                ],
                                                                "id": 10719,
                                                                "name": "IndexAccess",
                                                                "src": "16042:16:19"
                                                            }
                                                        ],
                                                        "id": 10720,
                                                        "name": "MemberAccess",
                                                        "src": "16042:27:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "unitsToTransfer",
                                                            "referencedDeclaration": 12164,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9327,
                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                            "value": "settlements"
                                                                        },
                                                                        "id": 10721,
                                                                        "name": "Identifier",
                                                                        "src": "16100:11:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 10295,
                                                                            "type": "bytes32",
                                                                            "value": "ref"
                                                                        },
                                                                        "id": 10722,
                                                                        "name": "Identifier",
                                                                        "src": "16112:3:19"
                                                                    }
                                                                ],
                                                                "id": 10723,
                                                                "name": "IndexAccess",
                                                                "src": "16100:16:19"
                                                            }
                                                        ],
                                                        "id": 10724,
                                                        "name": "MemberAccess",
                                                        "src": "16100:32:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "security",
                                                            "referencedDeclaration": 12154,
                                                            "type": "address"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9327,
                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                            "value": "settlements"
                                                                        },
                                                                        "id": 10725,
                                                                        "name": "Identifier",
                                                                        "src": "16162:11:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 10295,
                                                                            "type": "bytes32",
                                                                            "value": "ref"
                                                                        },
                                                                        "id": 10726,
                                                                        "name": "Identifier",
                                                                        "src": "16174:3:19"
                                                                    }
                                                                ],
                                                                "id": 10727,
                                                                "name": "IndexAccess",
                                                                "src": "16162:16:19"
                                                            }
                                                        ],
                                                        "id": 10728,
                                                        "name": "MemberAccess",
                                                        "src": "16162:25:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "price",
                                                            "referencedDeclaration": 12162,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9327,
                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                            "value": "settlements"
                                                                        },
                                                                        "id": 10729,
                                                                        "name": "Identifier",
                                                                        "src": "16217:11:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 10295,
                                                                            "type": "bytes32",
                                                                            "value": "ref"
                                                                        },
                                                                        "id": 10730,
                                                                        "name": "Identifier",
                                                                        "src": "16229:3:19"
                                                                    }
                                                                ],
                                                                "id": 10731,
                                                                "name": "IndexAccess",
                                                                "src": "16217:16:19"
                                                            }
                                                        ],
                                                        "id": 10732,
                                                        "name": "MemberAccess",
                                                        "src": "16217:22:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "currency",
                                                            "referencedDeclaration": 12156,
                                                            "type": "address"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9327,
                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                            "value": "settlements"
                                                                        },
                                                                        "id": 10733,
                                                                        "name": "Identifier",
                                                                        "src": "16269:11:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 10295,
                                                                            "type": "bytes32",
                                                                            "value": "ref"
                                                                        },
                                                                        "id": 10734,
                                                                        "name": "Identifier",
                                                                        "src": "16281:3:19"
                                                                    }
                                                                ],
                                                                "id": 10735,
                                                                "name": "IndexAccess",
                                                                "src": "16269:16:19"
                                                            }
                                                        ],
                                                        "id": 10736,
                                                        "name": "MemberAccess",
                                                        "src": "16269:25:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "status",
                                                            "referencedDeclaration": 12158,
                                                            "type": "bytes32"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "struct ISettlor.settlement storage ref"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9327,
                                                                            "type": "mapping(bytes32 => struct ISettlor.settlement storage ref)",
                                                                            "value": "settlements"
                                                                        },
                                                                        "id": 10737,
                                                                        "name": "Identifier",
                                                                        "src": "16324:11:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 10295,
                                                                            "type": "bytes32",
                                                                            "value": "ref"
                                                                        },
                                                                        "id": 10738,
                                                                        "name": "Identifier",
                                                                        "src": "16336:3:19"
                                                                    }
                                                                ],
                                                                "id": 10739,
                                                                "name": "IndexAccess",
                                                                "src": "16324:16:19"
                                                            }
                                                        ],
                                                        "id": 10740,
                                                        "name": "MemberAccess",
                                                        "src": "16324:23:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10295,
                                                            "type": "bytes32",
                                                            "value": "ref"
                                                        },
                                                        "id": 10741,
                                                        "name": "Identifier",
                                                        "src": "16377:3:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10366,
                                                            "type": "uint256",
                                                            "value": "pay"
                                                        },
                                                        "id": 10742,
                                                        "name": "Identifier",
                                                        "src": "16410:3:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "timestamp",
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": -4,
                                                                    "type": "block",
                                                                    "value": "block"
                                                                },
                                                                "id": 10743,
                                                                "name": "Identifier",
                                                                "src": "16443:5:19"
                                                            }
                                                        ],
                                                        "id": 10744,
                                                        "name": "MemberAccess",
                                                        "src": "16443:15:19"
                                                    }
                                                ],
                                                "id": 10745,
                                                "name": "FunctionCall",
                                                "src": "15906:578:19"
                                            }
                                        ],
                                        "id": 10746,
                                        "name": "EmitStatement",
                                        "src": "15901:583:19"
                                    }
                                ],
                                "id": 10747,
                                "name": "Block",
                                "src": "12819:3696:19"
                            }
                        ],
                        "id": 10748,
                        "name": "FunctionDefinition",
                        "src": "12759:3756:19"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                12234
                            ],
                            "functionSelector": "bfa0caa7",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "name": "getSubscribers",
                            "scope": 10930,
                            "stateMutability": "view",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "text": "Retrieve investors in secondary pools\n@param  poolId  pool identity"
                                },
                                "id": 10749,
                                "name": "StructuredDocumentation",
                                "src": "16521:95:19"
                            },
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 10753,
                                "name": "OverrideSpecifier",
                                "src": "16661:8:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "poolId",
                                            "scope": 10770,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 10750,
                                                "name": "ElementaryTypeName",
                                                "src": "16645:7:19"
                                            }
                                        ],
                                        "id": 10751,
                                        "name": "VariableDeclaration",
                                        "src": "16645:14:19"
                                    }
                                ],
                                "id": 10752,
                                "name": "ParameterList",
                                "src": "16644:16:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "",
                                            "scope": 10770,
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "type": "struct ISettlor.subscriptions[]",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "type": "struct ISettlor.subscriptions[]"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "ISettlor.subscriptions",
                                                            "referencedDeclaration": 12146,
                                                            "type": "struct ISettlor.subscriptions"
                                                        },
                                                        "id": 10761,
                                                        "name": "UserDefinedTypeName",
                                                        "src": "16743:22:19"
                                                    }
                                                ],
                                                "id": 10762,
                                                "name": "ArrayTypeName",
                                                "src": "16743:24:19"
                                            }
                                        ],
                                        "id": 10763,
                                        "name": "VariableDeclaration",
                                        "src": "16743:31:19"
                                    }
                                ],
                                "id": 10764,
                                "name": "ParameterList",
                                "src": "16742:33:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "overloadedDeclarations": [
                                                null
                                            ],
                                            "referencedDeclaration": 9458,
                                            "type": "modifier (address,address)",
                                            "value": "onlyIssueManager"
                                        },
                                        "id": 10754,
                                        "name": "Identifier",
                                        "src": "16684:16:19"
                                    },
                                    {
                                        "attributes": {
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "member_name": "sender",
                                            "type": "address payable"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": -15,
                                                    "type": "msg",
                                                    "value": "msg"
                                                },
                                                "id": 10755,
                                                "name": "Identifier",
                                                "src": "16701:3:19"
                                            }
                                        ],
                                        "id": 10756,
                                        "name": "MemberAccess",
                                        "src": "16701:10:19"
                                    },
                                    {
                                        "attributes": {
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "type": "address"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 9344,
                                                    "type": "mapping(bytes32 => address)",
                                                    "value": "poolSecurity"
                                                },
                                                "id": 10757,
                                                "name": "Identifier",
                                                "src": "16713:12:19"
                                            },
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 10751,
                                                    "type": "bytes32",
                                                    "value": "poolId"
                                                },
                                                "id": 10758,
                                                "name": "Identifier",
                                                "src": "16726:6:19"
                                            }
                                        ],
                                        "id": 10759,
                                        "name": "IndexAccess",
                                        "src": "16713:20:19"
                                    }
                                ],
                                "id": 10760,
                                "name": "ModifierInvocation",
                                "src": "16684:50:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 10764
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "struct ISettlor.subscriptions storage ref[] storage ref"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9353,
                                                            "type": "mapping(bytes32 => struct ISettlor.subscriptions storage ref[] storage ref)",
                                                            "value": "investors"
                                                        },
                                                        "id": 10765,
                                                        "name": "Identifier",
                                                        "src": "16792:9:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10751,
                                                            "type": "bytes32",
                                                            "value": "poolId"
                                                        },
                                                        "id": 10766,
                                                        "name": "Identifier",
                                                        "src": "16802:6:19"
                                                    }
                                                ],
                                                "id": 10767,
                                                "name": "IndexAccess",
                                                "src": "16792:17:19"
                                            }
                                        ],
                                        "id": 10768,
                                        "name": "Return",
                                        "src": "16785:24:19"
                                    }
                                ],
                                "id": 10769,
                                "name": "Block",
                                "src": "16775:41:19"
                            }
                        ],
                        "id": 10770,
                        "name": "FunctionDefinition",
                        "src": "16621:195:19"
                    },
                    {
                        "attributes": {
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getTransferAgent",
                            "scope": 10930,
                            "stateMutability": "view",
                            "virtual": false,
                            "visibility": "private"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "text": "Gets transfer agent for the security in the trade\n@param  security  address of security traded"
                                },
                                "id": 10771,
                                "name": "StructuredDocumentation",
                                "src": "16822:122:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "security",
                                            "scope": 10792,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 10772,
                                                "name": "ElementaryTypeName",
                                                "src": "16975:7:19"
                                            }
                                        ],
                                        "id": 10773,
                                        "name": "VariableDeclaration",
                                        "src": "16975:16:19"
                                    }
                                ],
                                "id": 10774,
                                "name": "ParameterList",
                                "src": "16974:18:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "",
                                            "scope": 10792,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "bytes32",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "bytes32",
                                                    "type": "bytes32"
                                                },
                                                "id": 10775,
                                                "name": "ElementaryTypeName",
                                                "src": "17014:7:19"
                                            }
                                        ],
                                        "id": 10776,
                                        "name": "VariableDeclaration",
                                        "src": "17014:7:19"
                                    }
                                ],
                                "id": 10777,
                                "name": "ParameterList",
                                "src": "17013:9:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                10779
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "dp",
                                                    "scope": 10791,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "address",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "address",
                                                            "stateMutability": "nonpayable",
                                                            "type": "address"
                                                        },
                                                        "id": 10778,
                                                        "name": "ElementaryTypeName",
                                                        "src": "17032:7:19"
                                                    }
                                                ],
                                                "id": 10779,
                                                "name": "VariableDeclaration",
                                                "src": "17032:10:19"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "address",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "getDP",
                                                            "referencedDeclaration": 11116,
                                                            "type": "function (address) view external returns (address)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9361,
                                                                    "type": "contract IFactory",
                                                                    "value": "products"
                                                                },
                                                                "id": 10780,
                                                                "name": "Identifier",
                                                                "src": "17045:8:19"
                                                            }
                                                        ],
                                                        "id": 10781,
                                                        "name": "MemberAccess",
                                                        "src": "17045:14:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10773,
                                                            "type": "address",
                                                            "value": "security"
                                                        },
                                                        "id": 10782,
                                                        "name": "Identifier",
                                                        "src": "17060:8:19"
                                                    }
                                                ],
                                                "id": 10783,
                                                "name": "FunctionCall",
                                                "src": "17045:24:19"
                                            }
                                        ],
                                        "id": 10784,
                                        "name": "VariableDeclarationStatement",
                                        "src": "17032:37:19"
                                    },
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 10777
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isInlineArray": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "bytes32"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "bytes32",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "getTransferAgent",
                                                                    "referencedDeclaration": 12381,
                                                                    "type": "function (address) view external returns (bytes32)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9359,
                                                                            "type": "contract VerifiedClient",
                                                                            "value": "client"
                                                                        },
                                                                        "id": 10785,
                                                                        "name": "Identifier",
                                                                        "src": "17086:6:19"
                                                                    }
                                                                ],
                                                                "id": 10786,
                                                                "name": "MemberAccess",
                                                                "src": "17086:23:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 10779,
                                                                    "type": "address",
                                                                    "value": "dp"
                                                                },
                                                                "id": 10787,
                                                                "name": "Identifier",
                                                                "src": "17110:2:19"
                                                            }
                                                        ],
                                                        "id": 10788,
                                                        "name": "FunctionCall",
                                                        "src": "17086:27:19"
                                                    }
                                                ],
                                                "id": 10789,
                                                "name": "TupleExpression",
                                                "src": "17085:29:19"
                                            }
                                        ],
                                        "id": 10790,
                                        "name": "Return",
                                        "src": "17079:35:19"
                                    }
                                ],
                                "id": 10791,
                                "name": "Block",
                                "src": "17022:99:19"
                            }
                        ],
                        "id": 10792,
                        "name": "FunctionDefinition",
                        "src": "16949:172:19"
                    },
                    {
                        "attributes": {
                            "baseFunctions": [
                                12226
                            ],
                            "functionSelector": "2d916746",
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "getTradingFeeCollected",
                            "scope": 10930,
                            "stateMutability": "nonpayable",
                            "virtual": false,
                            "visibility": "external"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "text": "Fetch trading fee collected in Balancer vault\n@param  _token  address of token in which fee is collected"
                                },
                                "id": 10793,
                                "name": "StructuredDocumentation",
                                "src": "17128:132:19"
                            },
                            {
                                "attributes": {
                                    "overrides": [
                                        null
                                    ]
                                },
                                "id": 10797,
                                "name": "OverrideSpecifier",
                                "src": "17313:8:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "_token",
                                            "scope": 10848,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "address",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "address",
                                                    "stateMutability": "nonpayable",
                                                    "type": "address"
                                                },
                                                "id": 10794,
                                                "name": "ElementaryTypeName",
                                                "src": "17297:7:19"
                                            }
                                        ],
                                        "id": 10795,
                                        "name": "VariableDeclaration",
                                        "src": "17297:14:19"
                                    }
                                ],
                                "id": 10796,
                                "name": "ParameterList",
                                "src": "17296:16:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "",
                                            "scope": 10848,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 10798,
                                                "name": "ElementaryTypeName",
                                                "src": "17339:7:19"
                                            }
                                        ],
                                        "id": 10799,
                                        "name": "VariableDeclaration",
                                        "src": "17339:7:19"
                                    }
                                ],
                                "id": 10800,
                                "name": "ParameterList",
                                "src": "17338:9:19"
                            },
                            {
                                "children": [
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_bool",
                                                                    "typeString": "bool"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_stringliteral_b96be16b05b75bc8355a55580cdf55506a64fe0095ac0411c167b4ced0d6ed7d",
                                                                    "typeString": "literal_string \"Unauthorized collection request\""
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                -18,
                                                                -18
                                                            ],
                                                            "referencedDeclaration": -18,
                                                            "type": "function (bool,string memory) pure",
                                                            "value": "require"
                                                        },
                                                        "id": 10801,
                                                        "name": "Identifier",
                                                        "src": "17357:7:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_address",
                                                                "typeString": "address"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "==",
                                                            "type": "bool"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "sender",
                                                                    "type": "address payable"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": -15,
                                                                            "type": "msg",
                                                                            "value": "msg"
                                                                        },
                                                                        "id": 10802,
                                                                        "name": "Identifier",
                                                                        "src": "17365:3:19"
                                                                    }
                                                                ],
                                                                "id": 10803,
                                                                "name": "MemberAccess",
                                                                "src": "17365:10:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9363,
                                                                    "type": "address",
                                                                    "value": "distribution"
                                                                },
                                                                "id": 10804,
                                                                "name": "Identifier",
                                                                "src": "17377:12:19"
                                                            }
                                                        ],
                                                        "id": 10805,
                                                        "name": "BinaryOperation",
                                                        "src": "17365:24:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "556e617574686f72697a656420636f6c6c656374696f6e2072657175657374",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "string",
                                                            "type": "literal_string \"Unauthorized collection request\"",
                                                            "value": "Unauthorized collection request"
                                                        },
                                                        "id": 10806,
                                                        "name": "Literal",
                                                        "src": "17391:33:19"
                                                    }
                                                ],
                                                "id": 10807,
                                                "name": "FunctionCall",
                                                "src": "17357:68:19"
                                            }
                                        ],
                                        "id": 10808,
                                        "name": "ExpressionStatement",
                                        "src": "17357:68:19"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                10810
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "feeCollected",
                                                    "scope": 10847,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 10809,
                                                        "name": "ElementaryTypeName",
                                                        "src": "17435:7:19"
                                                    }
                                                ],
                                                "id": 10810,
                                                "name": "VariableDeclaration",
                                                "src": "17435:20:19"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": true,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9357,
                                                            "type": "mapping(address => uint256)",
                                                            "value": "fees"
                                                        },
                                                        "id": 10811,
                                                        "name": "Identifier",
                                                        "src": "17458:4:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10795,
                                                            "type": "address",
                                                            "value": "_token"
                                                        },
                                                        "id": 10812,
                                                        "name": "Identifier",
                                                        "src": "17463:6:19"
                                                    }
                                                ],
                                                "id": 10813,
                                                "name": "IndexAccess",
                                                "src": "17458:12:19"
                                            }
                                        ],
                                        "id": 10814,
                                        "name": "VariableDeclarationStatement",
                                        "src": "17435:35:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "=",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": true,
                                                            "isPure": false,
                                                            "lValueRequested": true,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 9357,
                                                                    "type": "mapping(address => uint256)",
                                                                    "value": "fees"
                                                                },
                                                                "id": 10815,
                                                                "name": "Identifier",
                                                                "src": "17480:4:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 10795,
                                                                    "type": "address",
                                                                    "value": "_token"
                                                                },
                                                                "id": 10816,
                                                                "name": "Identifier",
                                                                "src": "17485:6:19"
                                                            }
                                                        ],
                                                        "id": 10817,
                                                        "name": "IndexAccess",
                                                        "src": "17480:12:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "uint256",
                                                            "type_conversion": false
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        },
                                                                        {
                                                                            "typeIdentifier": "t_uint256",
                                                                            "typeString": "uint256"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "member_name": "sub",
                                                                    "referencedDeclaration": 2177,
                                                                    "type": "function (uint256,uint256) pure returns (uint256)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2367,
                                                                            "type": "type(library Math)",
                                                                            "value": "Math"
                                                                        },
                                                                        "id": 10818,
                                                                        "name": "Identifier",
                                                                        "src": "17495:4:19"
                                                                    }
                                                                ],
                                                                "id": 10819,
                                                                "name": "MemberAccess",
                                                                "src": "17495:8:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": true,
                                                                    "isPure": false,
                                                                    "lValueRequested": false,
                                                                    "type": "uint256"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 9357,
                                                                            "type": "mapping(address => uint256)",
                                                                            "value": "fees"
                                                                        },
                                                                        "id": 10820,
                                                                        "name": "Identifier",
                                                                        "src": "17504:4:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 10795,
                                                                            "type": "address",
                                                                            "value": "_token"
                                                                        },
                                                                        "id": 10821,
                                                                        "name": "Identifier",
                                                                        "src": "17509:6:19"
                                                                    }
                                                                ],
                                                                "id": 10822,
                                                                "name": "IndexAccess",
                                                                "src": "17504:12:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 10810,
                                                                    "type": "uint256",
                                                                    "value": "feeCollected"
                                                                },
                                                                "id": 10823,
                                                                "name": "Identifier",
                                                                "src": "17518:12:19"
                                                            }
                                                        ],
                                                        "id": 10824,
                                                        "name": "FunctionCall",
                                                        "src": "17495:36:19"
                                                    }
                                                ],
                                                "id": 10825,
                                                "name": "Assignment",
                                                "src": "17480:51:19"
                                            }
                                        ],
                                        "id": 10826,
                                        "name": "ExpressionStatement",
                                        "src": "17480:51:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "bool",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "transfer",
                                                            "referencedDeclaration": 2887,
                                                            "type": "function (address,uint256) external returns (bool)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract IERC20",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2938,
                                                                            "type": "type(contract IERC20)",
                                                                            "value": "IERC20"
                                                                        },
                                                                        "id": 10827,
                                                                        "name": "Identifier",
                                                                        "src": "17541:6:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 10795,
                                                                            "type": "address",
                                                                            "value": "_token"
                                                                        },
                                                                        "id": 10828,
                                                                        "name": "Identifier",
                                                                        "src": "17548:6:19"
                                                                    }
                                                                ],
                                                                "id": 10829,
                                                                "name": "FunctionCall",
                                                                "src": "17541:14:19"
                                                            }
                                                        ],
                                                        "id": 10830,
                                                        "name": "MemberAccess",
                                                        "src": "17541:23:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9363,
                                                            "type": "address",
                                                            "value": "distribution"
                                                        },
                                                        "id": 10831,
                                                        "name": "Identifier",
                                                        "src": "17565:12:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10810,
                                                            "type": "uint256",
                                                            "value": "feeCollected"
                                                        },
                                                        "id": 10832,
                                                        "name": "Identifier",
                                                        "src": "17579:12:19"
                                                    }
                                                ],
                                                "id": 10833,
                                                "name": "FunctionCall",
                                                "src": "17541:51:19"
                                            }
                                        ],
                                        "id": 10834,
                                        "name": "ExpressionStatement",
                                        "src": "17541:51:19"
                                    },
                                    {
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "tuple()",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_address",
                                                                    "typeString": "address"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 9436,
                                                            "type": "function (address,uint256,uint256)",
                                                            "value": "feecollection"
                                                        },
                                                        "id": 10835,
                                                        "name": "Identifier",
                                                        "src": "17607:13:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "isStructConstructorCall": false,
                                                            "lValueRequested": false,
                                                            "names": [
                                                                null
                                                            ],
                                                            "tryCall": false,
                                                            "type": "address",
                                                            "type_conversion": true
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_contract$_SecondaryIssueManager_$10930",
                                                                            "typeString": "contract SecondaryIssueManager"
                                                                        }
                                                                    ],
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "type": "type(address)"
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "name": "address"
                                                                        },
                                                                        "id": 10836,
                                                                        "name": "ElementaryTypeName",
                                                                        "src": "17621:7:19"
                                                                    }
                                                                ],
                                                                "id": 10837,
                                                                "name": "ElementaryTypeNameExpression",
                                                                "src": "17621:7:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": -28,
                                                                    "type": "contract SecondaryIssueManager",
                                                                    "value": "this"
                                                                },
                                                                "id": 10838,
                                                                "name": "Identifier",
                                                                "src": "17629:4:19"
                                                            }
                                                        ],
                                                        "id": 10839,
                                                        "name": "FunctionCall",
                                                        "src": "17621:13:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10810,
                                                            "type": "uint256",
                                                            "value": "feeCollected"
                                                        },
                                                        "id": 10840,
                                                        "name": "Identifier",
                                                        "src": "17636:12:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "timestamp",
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": -4,
                                                                    "type": "block",
                                                                    "value": "block"
                                                                },
                                                                "id": 10841,
                                                                "name": "Identifier",
                                                                "src": "17650:5:19"
                                                            }
                                                        ],
                                                        "id": 10842,
                                                        "name": "MemberAccess",
                                                        "src": "17650:15:19"
                                                    }
                                                ],
                                                "id": 10843,
                                                "name": "FunctionCall",
                                                "src": "17607:59:19"
                                            }
                                        ],
                                        "id": 10844,
                                        "name": "EmitStatement",
                                        "src": "17602:64:19"
                                    },
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 10800
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "overloadedDeclarations": [
                                                        null
                                                    ],
                                                    "referencedDeclaration": 10810,
                                                    "type": "uint256",
                                                    "value": "feeCollected"
                                                },
                                                "id": 10845,
                                                "name": "Identifier",
                                                "src": "17683:12:19"
                                            }
                                        ],
                                        "id": 10846,
                                        "name": "Return",
                                        "src": "17676:19:19"
                                    }
                                ],
                                "id": 10847,
                                "name": "Block",
                                "src": "17347:355:19"
                            }
                        ],
                        "id": 10848,
                        "name": "FunctionDefinition",
                        "src": "17265:437:19"
                    },
                    {
                        "attributes": {
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "_convertERC20sToAssets",
                            "scope": 10930,
                            "stateMutability": "pure",
                            "virtual": false,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "text": " @dev This helper function is a fast and cheap way to convert between IERC20[] and IAsset[] types"
                                },
                                "id": 10849,
                                "name": "StructuredDocumentation",
                                "src": "17711:115:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "tokens",
                                            "scope": 10860,
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "type": "contract IERC20[]",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "type": "contract IERC20[]"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "IERC20",
                                                            "referencedDeclaration": 2938,
                                                            "type": "contract IERC20"
                                                        },
                                                        "id": 10850,
                                                        "name": "UserDefinedTypeName",
                                                        "src": "17863:6:19"
                                                    }
                                                ],
                                                "id": 10851,
                                                "name": "ArrayTypeName",
                                                "src": "17863:8:19"
                                            }
                                        ],
                                        "id": 10852,
                                        "name": "VariableDeclaration",
                                        "src": "17863:22:19"
                                    }
                                ],
                                "id": 10853,
                                "name": "ParameterList",
                                "src": "17862:24:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "assets",
                                            "scope": 10860,
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "type": "contract IAsset[]",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "type": "contract IAsset[]"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "IAsset",
                                                            "referencedDeclaration": 3127,
                                                            "type": "contract IAsset"
                                                        },
                                                        "id": 10854,
                                                        "name": "UserDefinedTypeName",
                                                        "src": "17910:6:19"
                                                    }
                                                ],
                                                "id": 10855,
                                                "name": "ArrayTypeName",
                                                "src": "17910:8:19"
                                            }
                                        ],
                                        "id": 10856,
                                        "name": "VariableDeclaration",
                                        "src": "17910:22:19"
                                    }
                                ],
                                "id": 10857,
                                "name": "ParameterList",
                                "src": "17909:24:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "evmVersion": "istanbul",
                                            "externalReferences": [
                                                {
                                                    "declaration": 10856,
                                                    "isOffset": false,
                                                    "isSlot": false,
                                                    "src": "18023:6:19",
                                                    "valueSize": 1
                                                },
                                                {
                                                    "declaration": 10852,
                                                    "isOffset": false,
                                                    "isSlot": false,
                                                    "src": "18033:6:19",
                                                    "valueSize": 1
                                                }
                                            ],
                                            "operations": "{ assets := tokens }"
                                        },
                                        "children": [],
                                        "id": 10858,
                                        "name": "InlineAssembly",
                                        "src": "18000:49:19"
                                    }
                                ],
                                "id": 10859,
                                "name": "Block",
                                "src": "17934:121:19"
                            }
                        ],
                        "id": 10860,
                        "name": "FunctionDefinition",
                        "src": "17831:224:19"
                    },
                    {
                        "attributes": {
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "_computeScalingFactor",
                            "scope": 10930,
                            "stateMutability": "view",
                            "virtual": false,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "text": " @dev Returns a scaling factor that, when multiplied to a token amount for `token`, normalizes its balance as if\n it had 18 decimals."
                                },
                                "id": 10861,
                                "name": "StructuredDocumentation",
                                "src": "18061:157:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "token",
                                            "scope": 10895,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "contract IERC20",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "IERC20",
                                                    "referencedDeclaration": 2938,
                                                    "type": "contract IERC20"
                                                },
                                                "id": 10862,
                                                "name": "UserDefinedTypeName",
                                                "src": "18254:6:19"
                                            }
                                        ],
                                        "id": 10863,
                                        "name": "VariableDeclaration",
                                        "src": "18254:12:19"
                                    }
                                ],
                                "id": 10864,
                                "name": "ParameterList",
                                "src": "18253:14:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "",
                                            "scope": 10895,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 10865,
                                                "name": "ElementaryTypeName",
                                                "src": "18291:7:19"
                                            }
                                        ],
                                        "id": 10866,
                                        "name": "VariableDeclaration",
                                        "src": "18291:7:19"
                                    }
                                ],
                                "id": 10867,
                                "name": "ParameterList",
                                "src": "18290:9:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "assignments": [
                                                10869
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "tokenDecimals",
                                                    "scope": 10894,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 10868,
                                                        "name": "ElementaryTypeName",
                                                        "src": "18390:7:19"
                                                    }
                                                ],
                                                "id": 10869,
                                                "name": "VariableDeclaration",
                                                "src": "18390:21:19"
                                            },
                                            {
                                                "attributes": {
                                                    "arguments": [
                                                        null
                                                    ],
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "uint8",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                null
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "decimals",
                                                            "referencedDeclaration": 2459,
                                                            "type": "function () view external returns (uint8)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": false,
                                                                    "isStructConstructorCall": false,
                                                                    "lValueRequested": false,
                                                                    "names": [
                                                                        null
                                                                    ],
                                                                    "tryCall": false,
                                                                    "type": "contract ERC20",
                                                                    "type_conversion": true
                                                                },
                                                                "children": [
                                                                    {
                                                                        "attributes": {
                                                                            "argumentTypes": [
                                                                                {
                                                                                    "typeIdentifier": "t_address",
                                                                                    "typeString": "address"
                                                                                }
                                                                            ],
                                                                            "overloadedDeclarations": [
                                                                                null
                                                                            ],
                                                                            "referencedDeclaration": 2860,
                                                                            "type": "type(contract ERC20)",
                                                                            "value": "ERC20"
                                                                        },
                                                                        "id": 10870,
                                                                        "name": "Identifier",
                                                                        "src": "18414:5:19"
                                                                    },
                                                                    {
                                                                        "attributes": {
                                                                            "isConstant": false,
                                                                            "isLValue": false,
                                                                            "isPure": false,
                                                                            "isStructConstructorCall": false,
                                                                            "lValueRequested": false,
                                                                            "names": [
                                                                                null
                                                                            ],
                                                                            "tryCall": false,
                                                                            "type": "address",
                                                                            "type_conversion": true
                                                                        },
                                                                        "children": [
                                                                            {
                                                                                "attributes": {
                                                                                    "argumentTypes": [
                                                                                        {
                                                                                            "typeIdentifier": "t_contract$_IERC20_$2938",
                                                                                            "typeString": "contract IERC20"
                                                                                        }
                                                                                    ],
                                                                                    "isConstant": false,
                                                                                    "isLValue": false,
                                                                                    "isPure": true,
                                                                                    "lValueRequested": false,
                                                                                    "type": "type(address)"
                                                                                },
                                                                                "children": [
                                                                                    {
                                                                                        "attributes": {
                                                                                            "name": "address"
                                                                                        },
                                                                                        "id": 10871,
                                                                                        "name": "ElementaryTypeName",
                                                                                        "src": "18420:7:19"
                                                                                    }
                                                                                ],
                                                                                "id": 10872,
                                                                                "name": "ElementaryTypeNameExpression",
                                                                                "src": "18420:7:19"
                                                                            },
                                                                            {
                                                                                "attributes": {
                                                                                    "overloadedDeclarations": [
                                                                                        null
                                                                                    ],
                                                                                    "referencedDeclaration": 10863,
                                                                                    "type": "contract IERC20",
                                                                                    "value": "token"
                                                                                },
                                                                                "id": 10873,
                                                                                "name": "Identifier",
                                                                                "src": "18428:5:19"
                                                                            }
                                                                        ],
                                                                        "id": 10874,
                                                                        "name": "FunctionCall",
                                                                        "src": "18420:14:19"
                                                                    }
                                                                ],
                                                                "id": 10875,
                                                                "name": "FunctionCall",
                                                                "src": "18414:21:19"
                                                            }
                                                        ],
                                                        "id": 10876,
                                                        "name": "MemberAccess",
                                                        "src": "18414:30:19"
                                                    }
                                                ],
                                                "id": 10877,
                                                "name": "FunctionCall",
                                                "src": "18414:32:19"
                                            }
                                        ],
                                        "id": 10878,
                                        "name": "VariableDeclarationStatement",
                                        "src": "18390:56:19"
                                    },
                                    {
                                        "attributes": {
                                            "assignments": [
                                                10880
                                            ]
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "constant": false,
                                                    "mutability": "mutable",
                                                    "name": "decimalsDifference",
                                                    "scope": 10894,
                                                    "stateVariable": false,
                                                    "storageLocation": "default",
                                                    "type": "uint256",
                                                    "visibility": "internal"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "name": "uint256",
                                                            "type": "uint256"
                                                        },
                                                        "id": 10879,
                                                        "name": "ElementaryTypeName",
                                                        "src": "18521:7:19"
                                                    }
                                                ],
                                                "id": 10880,
                                                "name": "VariableDeclaration",
                                                "src": "18521:26:19"
                                            },
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "uint256",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_rational_18_by_1",
                                                                    "typeString": "int_const 18"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "sub",
                                                            "referencedDeclaration": 2177,
                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 2367,
                                                                    "type": "type(library Math)",
                                                                    "value": "Math"
                                                                },
                                                                "id": 10881,
                                                                "name": "Identifier",
                                                                "src": "18550:4:19"
                                                            }
                                                        ],
                                                        "id": 10882,
                                                        "name": "MemberAccess",
                                                        "src": "18550:8:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "hexvalue": "3138",
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "lValueRequested": false,
                                                            "token": "number",
                                                            "type": "int_const 18",
                                                            "value": "18"
                                                        },
                                                        "id": 10883,
                                                        "name": "Literal",
                                                        "src": "18559:2:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10869,
                                                            "type": "uint256",
                                                            "value": "tokenDecimals"
                                                        },
                                                        "id": 10884,
                                                        "name": "Identifier",
                                                        "src": "18563:13:19"
                                                    }
                                                ],
                                                "id": 10885,
                                                "name": "FunctionCall",
                                                "src": "18550:27:19"
                                            }
                                        ],
                                        "id": 10886,
                                        "name": "VariableDeclarationStatement",
                                        "src": "18521:56:19"
                                    },
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 10867
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    },
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "operator": "*",
                                                    "type": "uint256"
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "ONE",
                                                            "referencedDeclaration": 445,
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 780,
                                                                    "type": "type(library FixedPoint)",
                                                                    "value": "FixedPoint"
                                                                },
                                                                "id": 10887,
                                                                "name": "Identifier",
                                                                "src": "18594:10:19"
                                                            }
                                                        ],
                                                        "id": 10888,
                                                        "name": "MemberAccess",
                                                        "src": "18594:14:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "commonType": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            },
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "operator": "**",
                                                            "type": "uint256"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "hexvalue": "3130",
                                                                    "isConstant": false,
                                                                    "isLValue": false,
                                                                    "isPure": true,
                                                                    "lValueRequested": false,
                                                                    "token": "number",
                                                                    "type": "int_const 10",
                                                                    "value": "10"
                                                                },
                                                                "id": 10889,
                                                                "name": "Literal",
                                                                "src": "18611:2:19"
                                                            },
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 10880,
                                                                    "type": "uint256",
                                                                    "value": "decimalsDifference"
                                                                },
                                                                "id": 10890,
                                                                "name": "Identifier",
                                                                "src": "18615:18:19"
                                                            }
                                                        ],
                                                        "id": 10891,
                                                        "name": "BinaryOperation",
                                                        "src": "18611:22:19"
                                                    }
                                                ],
                                                "id": 10892,
                                                "name": "BinaryOperation",
                                                "src": "18594:39:19"
                                            }
                                        ],
                                        "id": 10893,
                                        "name": "Return",
                                        "src": "18587:46:19"
                                    }
                                ],
                                "id": 10894,
                                "name": "Block",
                                "src": "18300:340:19"
                            }
                        ],
                        "id": 10895,
                        "name": "FunctionDefinition",
                        "src": "18223:417:19"
                    },
                    {
                        "attributes": {
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "_downscaleDown",
                            "scope": 10930,
                            "stateMutability": "pure",
                            "virtual": false,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "text": " @dev Reverses the `scalingFactor` applied to `amount`, resulting in a smaller or equal value depending on\n whether it needed scaling or not. The result is rounded down."
                                },
                                "id": 10896,
                                "name": "StructuredDocumentation",
                                "src": "18646:193:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "amount",
                                            "scope": 10912,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 10897,
                                                "name": "ElementaryTypeName",
                                                "src": "18868:7:19"
                                            }
                                        ],
                                        "id": 10898,
                                        "name": "VariableDeclaration",
                                        "src": "18868:14:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "scalingFactor",
                                            "scope": 10912,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 10899,
                                                "name": "ElementaryTypeName",
                                                "src": "18884:7:19"
                                            }
                                        ],
                                        "id": 10900,
                                        "name": "VariableDeclaration",
                                        "src": "18884:21:19"
                                    }
                                ],
                                "id": 10901,
                                "name": "ParameterList",
                                "src": "18867:39:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "",
                                            "scope": 10912,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 10902,
                                                "name": "ElementaryTypeName",
                                                "src": "18930:7:19"
                                            }
                                        ],
                                        "id": 10903,
                                        "name": "VariableDeclaration",
                                        "src": "18930:7:19"
                                    }
                                ],
                                "id": 10904,
                                "name": "ParameterList",
                                "src": "18929:9:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 10904
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "uint256",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "divDown",
                                                            "referencedDeclaration": 631,
                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 780,
                                                                    "type": "type(library FixedPoint)",
                                                                    "value": "FixedPoint"
                                                                },
                                                                "id": 10905,
                                                                "name": "Identifier",
                                                                "src": "18956:10:19"
                                                            }
                                                        ],
                                                        "id": 10906,
                                                        "name": "MemberAccess",
                                                        "src": "18956:18:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10898,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 10907,
                                                        "name": "Identifier",
                                                        "src": "18975:6:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10900,
                                                            "type": "uint256",
                                                            "value": "scalingFactor"
                                                        },
                                                        "id": 10908,
                                                        "name": "Identifier",
                                                        "src": "18983:13:19"
                                                    }
                                                ],
                                                "id": 10909,
                                                "name": "FunctionCall",
                                                "src": "18956:41:19"
                                            }
                                        ],
                                        "id": 10910,
                                        "name": "Return",
                                        "src": "18949:48:19"
                                    }
                                ],
                                "id": 10911,
                                "name": "Block",
                                "src": "18939:65:19"
                            }
                        ],
                        "id": 10912,
                        "name": "FunctionDefinition",
                        "src": "18844:160:19"
                    },
                    {
                        "attributes": {
                            "implemented": true,
                            "isConstructor": false,
                            "kind": "function",
                            "modifiers": [
                                null
                            ],
                            "name": "_upscale",
                            "scope": 10930,
                            "stateMutability": "pure",
                            "virtual": false,
                            "visibility": "internal"
                        },
                        "children": [
                            {
                                "attributes": {
                                    "text": " @dev Applies `scalingFactor` to `amount`, resulting in a larger or equal value depending on whether it needed\n scaling or not."
                                },
                                "id": 10913,
                                "name": "StructuredDocumentation",
                                "src": "19010:151:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "amount",
                                            "scope": 10929,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 10914,
                                                "name": "ElementaryTypeName",
                                                "src": "19184:7:19"
                                            }
                                        ],
                                        "id": 10915,
                                        "name": "VariableDeclaration",
                                        "src": "19184:14:19"
                                    },
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "scalingFactor",
                                            "scope": 10929,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 10916,
                                                "name": "ElementaryTypeName",
                                                "src": "19200:7:19"
                                            }
                                        ],
                                        "id": 10917,
                                        "name": "VariableDeclaration",
                                        "src": "19200:21:19"
                                    }
                                ],
                                "id": 10918,
                                "name": "ParameterList",
                                "src": "19183:39:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "constant": false,
                                            "mutability": "mutable",
                                            "name": "",
                                            "scope": 10929,
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "type": "uint256",
                                            "visibility": "internal"
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "name": "uint256",
                                                    "type": "uint256"
                                                },
                                                "id": 10919,
                                                "name": "ElementaryTypeName",
                                                "src": "19246:7:19"
                                            }
                                        ],
                                        "id": 10920,
                                        "name": "VariableDeclaration",
                                        "src": "19246:7:19"
                                    }
                                ],
                                "id": 10921,
                                "name": "ParameterList",
                                "src": "19245:9:19"
                            },
                            {
                                "children": [
                                    {
                                        "attributes": {
                                            "functionReturnParameters": 10921
                                        },
                                        "children": [
                                            {
                                                "attributes": {
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "isStructConstructorCall": false,
                                                    "lValueRequested": false,
                                                    "names": [
                                                        null
                                                    ],
                                                    "tryCall": false,
                                                    "type": "uint256",
                                                    "type_conversion": false
                                                },
                                                "children": [
                                                    {
                                                        "attributes": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "member_name": "mulDown",
                                                            "referencedDeclaration": 537,
                                                            "type": "function (uint256,uint256) pure returns (uint256)"
                                                        },
                                                        "children": [
                                                            {
                                                                "attributes": {
                                                                    "overloadedDeclarations": [
                                                                        null
                                                                    ],
                                                                    "referencedDeclaration": 780,
                                                                    "type": "type(library FixedPoint)",
                                                                    "value": "FixedPoint"
                                                                },
                                                                "id": 10922,
                                                                "name": "Identifier",
                                                                "src": "19697:10:19"
                                                            }
                                                        ],
                                                        "id": 10923,
                                                        "name": "MemberAccess",
                                                        "src": "19697:18:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10915,
                                                            "type": "uint256",
                                                            "value": "amount"
                                                        },
                                                        "id": 10924,
                                                        "name": "Identifier",
                                                        "src": "19716:6:19"
                                                    },
                                                    {
                                                        "attributes": {
                                                            "overloadedDeclarations": [
                                                                null
                                                            ],
                                                            "referencedDeclaration": 10917,
                                                            "type": "uint256",
                                                            "value": "scalingFactor"
                                                        },
                                                        "id": 10925,
                                                        "name": "Identifier",
                                                        "src": "19724:13:19"
                                                    }
                                                ],
                                                "id": 10926,
                                                "name": "FunctionCall",
                                                "src": "19697:41:19"
                                            }
                                        ],
                                        "id": 10927,
                                        "name": "Return",
                                        "src": "19690:48:19"
                                    }
                                ],
                                "id": 10928,
                                "name": "Block",
                                "src": "19255:490:19"
                            }
                        ],
                        "id": 10929,
                        "name": "FunctionDefinition",
                        "src": "19166:579:19"
                    }
                ],
                "id": 10930,
                "name": "ContractDefinition",
                "src": "864:18884:19"
            }
        ],
        "id": 10931,
        "name": "SourceUnit",
        "src": "112:19636:19"
    },
    "compiler": {
        "name": "solc",
        "version": "0.7.1+commit.f4a555be.Emscripten.clang"
    },
    "networks": {
        "11155111": {
            "events": {
                "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "internalType": "address",
                            "name": "previousOwner",
                            "type": "address"
                        },
                        {
                            "indexed": true,
                            "internalType": "address",
                            "name": "newOwner",
                            "type": "address"
                        }
                    ],
                    "name": "OwnershipTransferred",
                    "type": "event"
                },
                "0x56eadf552f1d54f8f73fbbf801097c1c4d7bb3d77d5ac2bebfd0a8151642d55a": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "internalType": "bytes32",
                            "name": "poolId",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "internalType": "address",
                            "name": "security",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "timestamp",
                            "type": "uint256"
                        }
                    ],
                    "name": "closures",
                    "type": "event"
                },
                "0xeaad90c8664cdf61d60bd7ba6745a881fd1c38d9f4ff0b373b4365cdeeb0f9e8": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "internalType": "address",
                            "name": "platform",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "collection",
                            "type": "uint256"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "timestamp",
                            "type": "uint256"
                        }
                    ],
                    "name": "feecollection",
                    "type": "event"
                },
                "0x0dd4a121adafd4537e046c792647be3f3978f362ad83b50586e249ae8641de2f": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": false,
                            "internalType": "bytes32",
                            "name": "poolId",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "internalType": "address",
                            "name": "seller",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "internalType": "address",
                            "name": "investor",
                            "type": "address"
                        },
                        {
                            "indexed": true,
                            "internalType": "address",
                            "name": "securityTraded",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "internalType": "address",
                            "name": "currencySettled",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "amount",
                            "type": "uint256"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "price",
                            "type": "uint256"
                        },
                        {
                            "indexed": false,
                            "internalType": "bytes32",
                            "name": "tradeRef",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "internalType": "bytes32",
                            "name": "DPID",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "timestamp",
                            "type": "uint256"
                        }
                    ],
                    "name": "subscribers",
                    "type": "event"
                },
                "0x85da739f35224c9e70f00cc38f01a704522dd70184a2105bf841163edb96ba50": {
                    "anonymous": false,
                    "inputs": [
                        {
                            "indexed": true,
                            "internalType": "bytes32",
                            "name": "poolid",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "internalType": "address",
                            "name": "transferor",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "internalType": "address",
                            "name": "transferee",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "unitsToTransfer",
                            "type": "uint256"
                        },
                        {
                            "indexed": false,
                            "internalType": "address",
                            "name": "security",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "price",
                            "type": "uint256"
                        },
                        {
                            "indexed": false,
                            "internalType": "address",
                            "name": "currency",
                            "type": "address"
                        },
                        {
                            "indexed": false,
                            "internalType": "bytes32",
                            "name": "settlementStatus",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "internalType": "bytes32",
                            "name": "tradeRef",
                            "type": "bytes32"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "fee",
                            "type": "uint256"
                        },
                        {
                            "indexed": false,
                            "internalType": "uint256",
                            "name": "timestamp",
                            "type": "uint256"
                        }
                    ],
                    "name": "tradeSettled",
                    "type": "event"
                }
            },
            "links": {},
            "address": "0xE3e3e9b8c0c292eD3756C7A1037322738de6B7FC",
            "transactionHash": "0xa18238bd0bc5612048004adac7142b4cd4a062a8d5217e93f9c8fa8efd036f88"
        }
    },
    "schemaVersion": "3.4.3",
    "updatedAt": "2025-03-03T15:25:37.864Z",
    "networkType": "ethereum",
    "devdoc": {
        "kind": "dev",
        "methods": {
            "getSettlementRequest(bytes32)": {
                "params": {
                    "ref": "reference to the trade"
                }
            },
            "getSettlementRequests(bytes32,bytes32)": {
                "params": {
                    "dpid": "identifier of depository participant (eg, transfer agent) that is authorized to settle the asset "
                }
            },
            "getSubscribers(bytes32)": {
                "params": {
                    "poolId": "pool identity"
                }
            },
            "getTradingFeeCollected(address)": {
                "params": {
                    "_token": "address of token in which fee is collected"
                }
            },
            "initialize(address,uint256,address,address,address,address)": {
                "params": {
                    "_client": "address of Verified client contract",
                    "_factory": "reference to the secondary issue pool factory contract",
                    "_issueFeePercentage": "percentage of trading fee to be charged by the asset manager",
                    "_vault": "address of balancer vault"
                }
            },
            "issueSecondary(address,address,uint256,uint256,uint256,uint256)": {
                "params": {
                    "cashAmount": "amount of currency issued in pool",
                    "currency": "reference to cash (settlement) token",
                    "minSecurityOrder": "minimum order size of securities issued in pool",
                    "security": "reference to asset issued",
                    "securityOffered": "amount of security to issue",
                    "securityOutstanding": "total number of securities outstanding"
                }
            },
            "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."
            },
            "requestSettlement((address,bytes32,bytes32,uint256,uint256,uint256),address)": {
                "params": {
                    "tradeToReport": "data structure holding order matching data"
                }
            },
            "setSettlementStatus(bytes32,bytes32)": {
                "params": {
                    "ref": "reference to the trade executed",
                    "status": "settlement status"
                }
            },
            "transferOwnership(address)": {
                "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
            }
        },
        "version": 1
    },
    "userdoc": {
        "kind": "user",
        "methods": {
            "getSettlementRequest(bytes32)": {
                "notice": "Fetches a specific trade settlement request        "
            },
            "getSettlementRequests(bytes32,bytes32)": {
                "notice": "Fetches trade settlement requests for depository participant"
            },
            "getSubscribers(bytes32)": {
                "notice": "Retrieve investors in secondary pools"
            },
            "getTradingFeeCollected(address)": {
                "notice": "Fetch trading fee collected in Balancer vault"
            },
            "initialize(address,uint256,address,address,address,address)": {
                "notice": "Initializes this asset management contract"
            },
            "issueSecondary(address,address,uint256,uint256,uint256,uint256)": {
                "notice": "Joins existing (secondary) tokenized assets into pool by primary issue token holders"
            },
            "requestSettlement((address,bytes32,bytes32,uint256,uint256,uint256),address)": {
                "notice": "Used by Secondary pools to request settlement for trades"
            },
            "setSettlementStatus(bytes32,bytes32)": {
                "notice": "Sets settlement status for trades executed"
            }
        },
        "version": 1
    }
}
