{
  "contractName": "ISoxswapRouter",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "factory",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "WSOX",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "tokenA",
          "type": "address"
        },
        {
          "name": "tokenB",
          "type": "address"
        },
        {
          "name": "amountADesired",
          "type": "uint256"
        },
        {
          "name": "amountBDesired",
          "type": "uint256"
        },
        {
          "name": "amountAMin",
          "type": "uint256"
        },
        {
          "name": "amountBMin",
          "type": "uint256"
        },
        {
          "name": "to",
          "type": "address"
        },
        {
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "addLiquidity",
      "outputs": [
        {
          "name": "amountA",
          "type": "uint256"
        },
        {
          "name": "amountB",
          "type": "uint256"
        },
        {
          "name": "liquidity",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "token",
          "type": "address"
        },
        {
          "name": "amountTokenDesired",
          "type": "uint256"
        },
        {
          "name": "amountTokenMin",
          "type": "uint256"
        },
        {
          "name": "amountSOXMin",
          "type": "uint256"
        },
        {
          "name": "to",
          "type": "address"
        },
        {
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "addLiquiditySOX",
      "outputs": [
        {
          "name": "amountToken",
          "type": "uint256"
        },
        {
          "name": "amountSOX",
          "type": "uint256"
        },
        {
          "name": "liquidity",
          "type": "uint256"
        }
      ],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "tokenA",
          "type": "address"
        },
        {
          "name": "tokenB",
          "type": "address"
        },
        {
          "name": "liquidity",
          "type": "uint256"
        },
        {
          "name": "amountAMin",
          "type": "uint256"
        },
        {
          "name": "amountBMin",
          "type": "uint256"
        },
        {
          "name": "to",
          "type": "address"
        },
        {
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "removeLiquidity",
      "outputs": [
        {
          "name": "amountA",
          "type": "uint256"
        },
        {
          "name": "amountB",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "token",
          "type": "address"
        },
        {
          "name": "liquidity",
          "type": "uint256"
        },
        {
          "name": "amountTokenMin",
          "type": "uint256"
        },
        {
          "name": "amountSOXMin",
          "type": "uint256"
        },
        {
          "name": "to",
          "type": "address"
        },
        {
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "removeLiquiditySOX",
      "outputs": [
        {
          "name": "amountToken",
          "type": "uint256"
        },
        {
          "name": "amountSOX",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "tokenA",
          "type": "address"
        },
        {
          "name": "tokenB",
          "type": "address"
        },
        {
          "name": "liquidity",
          "type": "uint256"
        },
        {
          "name": "amountAMin",
          "type": "uint256"
        },
        {
          "name": "amountBMin",
          "type": "uint256"
        },
        {
          "name": "to",
          "type": "address"
        },
        {
          "name": "deadline",
          "type": "uint256"
        },
        {
          "name": "approveMax",
          "type": "bool"
        },
        {
          "name": "v",
          "type": "uint8"
        },
        {
          "name": "r",
          "type": "bytes32"
        },
        {
          "name": "s",
          "type": "bytes32"
        }
      ],
      "name": "removeLiquidityWithPermit",
      "outputs": [
        {
          "name": "amountA",
          "type": "uint256"
        },
        {
          "name": "amountB",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "token",
          "type": "address"
        },
        {
          "name": "liquidity",
          "type": "uint256"
        },
        {
          "name": "amountTokenMin",
          "type": "uint256"
        },
        {
          "name": "amountSOXMin",
          "type": "uint256"
        },
        {
          "name": "to",
          "type": "address"
        },
        {
          "name": "deadline",
          "type": "uint256"
        },
        {
          "name": "approveMax",
          "type": "bool"
        },
        {
          "name": "v",
          "type": "uint8"
        },
        {
          "name": "r",
          "type": "bytes32"
        },
        {
          "name": "s",
          "type": "bytes32"
        }
      ],
      "name": "removeLiquiditySOXWithPermit",
      "outputs": [
        {
          "name": "amountToken",
          "type": "uint256"
        },
        {
          "name": "amountSOX",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "amountIn",
          "type": "uint256"
        },
        {
          "name": "amountOutMin",
          "type": "uint256"
        },
        {
          "name": "path",
          "type": "address[]"
        },
        {
          "name": "to",
          "type": "address"
        },
        {
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "swapExactTokensForTokens",
      "outputs": [
        {
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "amountOut",
          "type": "uint256"
        },
        {
          "name": "amountInMax",
          "type": "uint256"
        },
        {
          "name": "path",
          "type": "address[]"
        },
        {
          "name": "to",
          "type": "address"
        },
        {
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "swapTokensForExactTokens",
      "outputs": [
        {
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "amountOutMin",
          "type": "uint256"
        },
        {
          "name": "path",
          "type": "address[]"
        },
        {
          "name": "to",
          "type": "address"
        },
        {
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "swapExactSOXForTokens",
      "outputs": [
        {
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "amountOut",
          "type": "uint256"
        },
        {
          "name": "amountInMax",
          "type": "uint256"
        },
        {
          "name": "path",
          "type": "address[]"
        },
        {
          "name": "to",
          "type": "address"
        },
        {
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "swapTokensForExactSOX",
      "outputs": [
        {
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "amountIn",
          "type": "uint256"
        },
        {
          "name": "amountOutMin",
          "type": "uint256"
        },
        {
          "name": "path",
          "type": "address[]"
        },
        {
          "name": "to",
          "type": "address"
        },
        {
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "swapExactTokensForSOX",
      "outputs": [
        {
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "amountOut",
          "type": "uint256"
        },
        {
          "name": "path",
          "type": "address[]"
        },
        {
          "name": "to",
          "type": "address"
        },
        {
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "swapSOXForExactTokens",
      "outputs": [
        {
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "amountA",
          "type": "uint256"
        },
        {
          "name": "reserveA",
          "type": "uint256"
        },
        {
          "name": "reserveB",
          "type": "uint256"
        }
      ],
      "name": "quote",
      "outputs": [
        {
          "name": "amountB",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "amountIn",
          "type": "uint256"
        },
        {
          "name": "reserveIn",
          "type": "uint256"
        },
        {
          "name": "reserveOut",
          "type": "uint256"
        }
      ],
      "name": "getAmountOut",
      "outputs": [
        {
          "name": "amountOut",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "amountOut",
          "type": "uint256"
        },
        {
          "name": "reserveIn",
          "type": "uint256"
        },
        {
          "name": "reserveOut",
          "type": "uint256"
        }
      ],
      "name": "getAmountIn",
      "outputs": [
        {
          "name": "amountIn",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "amountIn",
          "type": "uint256"
        },
        {
          "name": "path",
          "type": "address[]"
        }
      ],
      "name": "getAmountsOut",
      "outputs": [
        {
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "amountOut",
          "type": "uint256"
        },
        {
          "name": "path",
          "type": "address[]"
        }
      ],
      "name": "getAmountsIn",
      "outputs": [
        {
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "token",
          "type": "address"
        },
        {
          "name": "liquidity",
          "type": "uint256"
        },
        {
          "name": "amountTokenMin",
          "type": "uint256"
        },
        {
          "name": "amountSOXMin",
          "type": "uint256"
        },
        {
          "name": "to",
          "type": "address"
        },
        {
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "removeLiquiditySOXSupportingFeeOnTransferTokens",
      "outputs": [
        {
          "name": "amountSOX",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "token",
          "type": "address"
        },
        {
          "name": "liquidity",
          "type": "uint256"
        },
        {
          "name": "amountTokenMin",
          "type": "uint256"
        },
        {
          "name": "amountSOXMin",
          "type": "uint256"
        },
        {
          "name": "to",
          "type": "address"
        },
        {
          "name": "deadline",
          "type": "uint256"
        },
        {
          "name": "approveMax",
          "type": "bool"
        },
        {
          "name": "v",
          "type": "uint8"
        },
        {
          "name": "r",
          "type": "bytes32"
        },
        {
          "name": "s",
          "type": "bytes32"
        }
      ],
      "name": "removeLiquiditySOXWithPermitSupportingFeeOnTransferTokens",
      "outputs": [
        {
          "name": "amountSOX",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "amountIn",
          "type": "uint256"
        },
        {
          "name": "amountOutMin",
          "type": "uint256"
        },
        {
          "name": "path",
          "type": "address[]"
        },
        {
          "name": "to",
          "type": "address"
        },
        {
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "amountOutMin",
          "type": "uint256"
        },
        {
          "name": "path",
          "type": "address[]"
        },
        {
          "name": "to",
          "type": "address"
        },
        {
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "swapExactSOXForTokensSupportingFeeOnTransferTokens",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "amountIn",
          "type": "uint256"
        },
        {
          "name": "amountOutMin",
          "type": "uint256"
        },
        {
          "name": "path",
          "type": "address[]"
        },
        {
          "name": "to",
          "type": "address"
        },
        {
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "swapExactTokensForSOXSupportingFeeOnTransferTokens",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "pragma solidity >=0.4.23 <0.6.0;\r\n\r\ninterface ISoxswapRouter {\r\n    function factory() external pure returns (address);\r\n    function WSOX() external pure returns (address);\r\n\r\n    function addLiquidity(\r\n        address tokenA,\r\n        address tokenB,\r\n        uint amountADesired,\r\n        uint amountBDesired,\r\n        uint amountAMin,\r\n        uint amountBMin,\r\n        address to,\r\n        uint deadline\r\n    ) external returns (uint amountA, uint amountB, uint liquidity);\r\n    function addLiquiditySOX(\r\n        address token,\r\n        uint amountTokenDesired,\r\n        uint amountTokenMin,\r\n        uint amountSOXMin,\r\n        address to,\r\n        uint deadline\r\n    ) external payable returns (uint amountToken, uint amountSOX, uint liquidity);\r\n    function removeLiquidity(\r\n        address tokenA,\r\n        address tokenB,\r\n        uint liquidity,\r\n        uint amountAMin,\r\n        uint amountBMin,\r\n        address payable to,\r\n        uint deadline\r\n    ) external returns (uint amountA, uint amountB);\r\n    function removeLiquiditySOX(\r\n        address token,\r\n        uint liquidity,\r\n        uint amountTokenMin,\r\n        uint amountSOXMin,\r\n        address payable to,\r\n        uint deadline\r\n    ) external returns (uint amountToken, uint amountSOX);\r\n    function removeLiquidityWithPermit(\r\n        address tokenA,\r\n        address tokenB,\r\n        uint liquidity,\r\n        uint amountAMin,\r\n        uint amountBMin,\r\n        address payable to,\r\n        uint deadline,\r\n        bool approveMax, uint8 v, bytes32 r, bytes32 s\r\n    ) external returns (uint amountA, uint amountB);\r\n    function removeLiquiditySOXWithPermit(\r\n        address token,\r\n        uint liquidity,\r\n        uint amountTokenMin,\r\n        uint amountSOXMin,\r\n        address payable to,\r\n        uint deadline,\r\n        bool approveMax, uint8 v, bytes32 r, bytes32 s\r\n    ) external returns (uint amountToken, uint amountSOX);\r\n    function swapExactTokensForTokens(\r\n        uint amountIn,\r\n        uint amountOutMin,\r\n        address[] calldata path,\r\n        address payable to,\r\n        uint deadline\r\n    ) external returns (uint[] memory amounts);\r\n    function swapTokensForExactTokens(\r\n        uint amountOut,\r\n        uint amountInMax,\r\n        address[] calldata path,\r\n        address payable to,\r\n        uint deadline\r\n    ) external returns (uint[] memory amounts);\r\n    function swapExactSOXForTokens(uint amountOutMin, address[] calldata path, address payable to, uint deadline)\r\n        external\r\n        payable\r\n        returns (uint[] memory amounts);\r\n    function swapTokensForExactSOX(uint amountOut, uint amountInMax, address[] calldata path, address payable to, uint deadline)\r\n        external\r\n        returns (uint[] memory amounts);\r\n    function swapExactTokensForSOX(uint amountIn, uint amountOutMin, address[] calldata path, address payable to, uint deadline)\r\n        external\r\n        returns (uint[] memory amounts);\r\n    function swapSOXForExactTokens(uint amountOut, address[] calldata path, address payable to, uint deadline)\r\n        external\r\n        payable\r\n        returns (uint[] memory amounts);\r\n\r\n    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);\r\n    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);\r\n    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);\r\n    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);\r\n    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);\r\n\r\n    function removeLiquiditySOXSupportingFeeOnTransferTokens(\r\n        address token,\r\n        uint liquidity,\r\n        uint amountTokenMin,\r\n        uint amountSOXMin,\r\n        address payable to,\r\n        uint deadline\r\n    ) external returns (uint amountSOX);\r\n    function removeLiquiditySOXWithPermitSupportingFeeOnTransferTokens(\r\n        address token,\r\n        uint liquidity,\r\n        uint amountTokenMin,\r\n        uint amountSOXMin,\r\n        address payable to,\r\n        uint deadline,\r\n        bool approveMax, uint8 v, bytes32 r, bytes32 s\r\n    ) external returns (uint amountSOX);\r\n\r\n    function swapExactTokensForTokensSupportingFeeOnTransferTokens(\r\n        uint amountIn,\r\n        uint amountOutMin,\r\n        address[] calldata path,\r\n        address payable to,\r\n        uint deadline\r\n    ) external;\r\n    function swapExactSOXForTokensSupportingFeeOnTransferTokens(\r\n        uint amountOutMin,\r\n        address[] calldata path,\r\n        address payable to,\r\n        uint deadline\r\n    ) external payable;\r\n    function swapExactTokensForSOXSupportingFeeOnTransferTokens(\r\n        uint amountIn,\r\n        uint amountOutMin,\r\n        address[] calldata path,\r\n        address payable to,\r\n        uint deadline\r\n    ) external;\r\n}\r\n",
  "sourcePath": "D:\\40_SonicX_DEX\\soxswap-periphery\\contracts\\interfaces\\ISoxswapRouter.sol",
  "ast": {
    "absolutePath": "/D/40_SonicX_DEX/soxswap-periphery/contracts/interfaces/ISoxswapRouter.sol",
    "exportedSymbols": {
      "ISoxswapRouter": [
        2504
      ]
    },
    "id": 2505,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 2116,
        "literals": [
          "solidity",
          ">=",
          "0.4",
          ".23",
          "<",
          "0.6",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:32:3"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": null,
        "fullyImplemented": false,
        "id": 2504,
        "linearizedBaseContracts": [
          2504
        ],
        "name": "ISoxswapRouter",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": null,
            "documentation": null,
            "id": 2121,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "factory",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2117,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "84:2:3"
            },
            "returnParameters": {
              "id": 2120,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2119,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2121,
                  "src": "110:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2118,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "110:7:3",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "109:9:3"
            },
            "scope": 2504,
            "src": "68:51:3",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2126,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "WSOX",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2122,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "138:2:3"
            },
            "returnParameters": {
              "id": 2125,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2124,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2126,
                  "src": "164:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2123,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "164:7:3",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "163:9:3"
            },
            "scope": 2504,
            "src": "125:48:3",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2151,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "addLiquidity",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2143,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2128,
                  "name": "tokenA",
                  "nodeType": "VariableDeclaration",
                  "scope": 2151,
                  "src": "213:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2127,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "213:7:3",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2130,
                  "name": "tokenB",
                  "nodeType": "VariableDeclaration",
                  "scope": 2151,
                  "src": "238:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2129,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "238:7:3",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2132,
                  "name": "amountADesired",
                  "nodeType": "VariableDeclaration",
                  "scope": 2151,
                  "src": "263:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2131,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "263:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2134,
                  "name": "amountBDesired",
                  "nodeType": "VariableDeclaration",
                  "scope": 2151,
                  "src": "293:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2133,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "293:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2136,
                  "name": "amountAMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2151,
                  "src": "323:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2135,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "323:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2138,
                  "name": "amountBMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2151,
                  "src": "349:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2137,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "349:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2140,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2151,
                  "src": "375:10:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2139,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "375:7:3",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2142,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2151,
                  "src": "396:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2141,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "396:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "202:214:3"
            },
            "returnParameters": {
              "id": 2150,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2145,
                  "name": "amountA",
                  "nodeType": "VariableDeclaration",
                  "scope": 2151,
                  "src": "435:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2144,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "435:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2147,
                  "name": "amountB",
                  "nodeType": "VariableDeclaration",
                  "scope": 2151,
                  "src": "449:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2146,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "449:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2149,
                  "name": "liquidity",
                  "nodeType": "VariableDeclaration",
                  "scope": 2151,
                  "src": "463:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2148,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "463:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "434:44:3"
            },
            "scope": 2504,
            "src": "181:298:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2172,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "addLiquiditySOX",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2164,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2153,
                  "name": "token",
                  "nodeType": "VariableDeclaration",
                  "scope": 2172,
                  "src": "520:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2152,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "520:7:3",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2155,
                  "name": "amountTokenDesired",
                  "nodeType": "VariableDeclaration",
                  "scope": 2172,
                  "src": "544:23:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2154,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "544:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2157,
                  "name": "amountTokenMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2172,
                  "src": "578:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2156,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "578:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2159,
                  "name": "amountSOXMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2172,
                  "src": "608:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2158,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "608:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2161,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2172,
                  "src": "636:10:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2160,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "636:7:3",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2163,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2172,
                  "src": "657:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2162,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "657:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "509:168:3"
            },
            "returnParameters": {
              "id": 2171,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2166,
                  "name": "amountToken",
                  "nodeType": "VariableDeclaration",
                  "scope": 2172,
                  "src": "704:16:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2165,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "704:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2168,
                  "name": "amountSOX",
                  "nodeType": "VariableDeclaration",
                  "scope": 2172,
                  "src": "722:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2167,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "722:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2170,
                  "name": "liquidity",
                  "nodeType": "VariableDeclaration",
                  "scope": 2172,
                  "src": "738:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2169,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "738:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "703:50:3"
            },
            "scope": 2504,
            "src": "485:269:3",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2193,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "removeLiquidity",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2187,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2174,
                  "name": "tokenA",
                  "nodeType": "VariableDeclaration",
                  "scope": 2193,
                  "src": "795:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2173,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "795:7:3",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2176,
                  "name": "tokenB",
                  "nodeType": "VariableDeclaration",
                  "scope": 2193,
                  "src": "820:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2175,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "820:7:3",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2178,
                  "name": "liquidity",
                  "nodeType": "VariableDeclaration",
                  "scope": 2193,
                  "src": "845:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2177,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "845:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2180,
                  "name": "amountAMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2193,
                  "src": "870:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2179,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "870:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2182,
                  "name": "amountBMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2193,
                  "src": "896:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2181,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "896:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2184,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2193,
                  "src": "922:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 2183,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "922:15:3",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2186,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2193,
                  "src": "951:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2185,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "951:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "784:187:3"
            },
            "returnParameters": {
              "id": 2192,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2189,
                  "name": "amountA",
                  "nodeType": "VariableDeclaration",
                  "scope": 2193,
                  "src": "990:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2188,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "990:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2191,
                  "name": "amountB",
                  "nodeType": "VariableDeclaration",
                  "scope": 2193,
                  "src": "1004:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2190,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1004:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "989:28:3"
            },
            "scope": 2504,
            "src": "760:258:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2212,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "removeLiquiditySOX",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2206,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2195,
                  "name": "token",
                  "nodeType": "VariableDeclaration",
                  "scope": 2212,
                  "src": "1062:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2194,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1062:7:3",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2197,
                  "name": "liquidity",
                  "nodeType": "VariableDeclaration",
                  "scope": 2212,
                  "src": "1086:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2196,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1086:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2199,
                  "name": "amountTokenMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2212,
                  "src": "1111:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2198,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1111:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2201,
                  "name": "amountSOXMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2212,
                  "src": "1141:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2200,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1141:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2203,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2212,
                  "src": "1169:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 2202,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1169:15:3",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2205,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2212,
                  "src": "1198:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2204,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1198:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1051:167:3"
            },
            "returnParameters": {
              "id": 2211,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2208,
                  "name": "amountToken",
                  "nodeType": "VariableDeclaration",
                  "scope": 2212,
                  "src": "1237:16:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2207,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1237:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2210,
                  "name": "amountSOX",
                  "nodeType": "VariableDeclaration",
                  "scope": 2212,
                  "src": "1255:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2209,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1255:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1236:34:3"
            },
            "scope": 2504,
            "src": "1024:247:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2241,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "removeLiquidityWithPermit",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2235,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2214,
                  "name": "tokenA",
                  "nodeType": "VariableDeclaration",
                  "scope": 2241,
                  "src": "1322:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2213,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1322:7:3",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2216,
                  "name": "tokenB",
                  "nodeType": "VariableDeclaration",
                  "scope": 2241,
                  "src": "1347:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2215,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1347:7:3",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2218,
                  "name": "liquidity",
                  "nodeType": "VariableDeclaration",
                  "scope": 2241,
                  "src": "1372:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2217,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1372:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2220,
                  "name": "amountAMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2241,
                  "src": "1397:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2219,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1397:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2222,
                  "name": "amountBMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2241,
                  "src": "1423:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2221,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1423:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2224,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2241,
                  "src": "1449:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 2223,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1449:15:3",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2226,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2241,
                  "src": "1478:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2225,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1478:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2228,
                  "name": "approveMax",
                  "nodeType": "VariableDeclaration",
                  "scope": 2241,
                  "src": "1502:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2227,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1502:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2230,
                  "name": "v",
                  "nodeType": "VariableDeclaration",
                  "scope": 2241,
                  "src": "1519:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 2229,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1519:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2232,
                  "name": "r",
                  "nodeType": "VariableDeclaration",
                  "scope": 2241,
                  "src": "1528:9:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2231,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1528:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2234,
                  "name": "s",
                  "nodeType": "VariableDeclaration",
                  "scope": 2241,
                  "src": "1539:9:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2233,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1539:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1311:244:3"
            },
            "returnParameters": {
              "id": 2240,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2237,
                  "name": "amountA",
                  "nodeType": "VariableDeclaration",
                  "scope": 2241,
                  "src": "1574:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2236,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1574:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2239,
                  "name": "amountB",
                  "nodeType": "VariableDeclaration",
                  "scope": 2241,
                  "src": "1588:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2238,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1588:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1573:28:3"
            },
            "scope": 2504,
            "src": "1277:325:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2268,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "removeLiquiditySOXWithPermit",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2262,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2243,
                  "name": "token",
                  "nodeType": "VariableDeclaration",
                  "scope": 2268,
                  "src": "1656:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2242,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1656:7:3",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2245,
                  "name": "liquidity",
                  "nodeType": "VariableDeclaration",
                  "scope": 2268,
                  "src": "1680:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2244,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1680:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2247,
                  "name": "amountTokenMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2268,
                  "src": "1705:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2246,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1705:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2249,
                  "name": "amountSOXMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2268,
                  "src": "1735:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2248,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1735:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2251,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2268,
                  "src": "1763:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 2250,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1763:15:3",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2253,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2268,
                  "src": "1792:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2252,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1792:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2255,
                  "name": "approveMax",
                  "nodeType": "VariableDeclaration",
                  "scope": 2268,
                  "src": "1816:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2254,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1816:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2257,
                  "name": "v",
                  "nodeType": "VariableDeclaration",
                  "scope": 2268,
                  "src": "1833:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 2256,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1833:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2259,
                  "name": "r",
                  "nodeType": "VariableDeclaration",
                  "scope": 2268,
                  "src": "1842:9:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2258,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1842:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2261,
                  "name": "s",
                  "nodeType": "VariableDeclaration",
                  "scope": 2268,
                  "src": "1853:9:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2260,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1853:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1645:224:3"
            },
            "returnParameters": {
              "id": 2267,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2264,
                  "name": "amountToken",
                  "nodeType": "VariableDeclaration",
                  "scope": 2268,
                  "src": "1888:16:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2263,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1888:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2266,
                  "name": "amountSOX",
                  "nodeType": "VariableDeclaration",
                  "scope": 2268,
                  "src": "1906:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2265,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1906:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1887:34:3"
            },
            "scope": 2504,
            "src": "1608:314:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2285,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "swapExactTokensForTokens",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2280,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2270,
                  "name": "amountIn",
                  "nodeType": "VariableDeclaration",
                  "scope": 2285,
                  "src": "1972:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2269,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1972:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2272,
                  "name": "amountOutMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2285,
                  "src": "1996:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2271,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1996:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2275,
                  "name": "path",
                  "nodeType": "VariableDeclaration",
                  "scope": 2285,
                  "src": "2024:23:3",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2273,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "2024:7:3",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 2274,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2024:9:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2277,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2285,
                  "src": "2058:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 2276,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2058:15:3",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2279,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2285,
                  "src": "2087:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2278,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2087:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1961:146:3"
            },
            "returnParameters": {
              "id": 2284,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2283,
                  "name": "amounts",
                  "nodeType": "VariableDeclaration",
                  "scope": 2285,
                  "src": "2126:21:3",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2281,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "2126:4:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2282,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2126:6:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2125:23:3"
            },
            "scope": 2504,
            "src": "1928:221:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2302,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "swapTokensForExactTokens",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2297,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2287,
                  "name": "amountOut",
                  "nodeType": "VariableDeclaration",
                  "scope": 2302,
                  "src": "2199:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2286,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2199:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2289,
                  "name": "amountInMax",
                  "nodeType": "VariableDeclaration",
                  "scope": 2302,
                  "src": "2224:16:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2288,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2224:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2292,
                  "name": "path",
                  "nodeType": "VariableDeclaration",
                  "scope": 2302,
                  "src": "2251:23:3",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2290,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "2251:7:3",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 2291,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2251:9:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2294,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2302,
                  "src": "2285:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 2293,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2285:15:3",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2296,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2302,
                  "src": "2314:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2295,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2314:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2188:146:3"
            },
            "returnParameters": {
              "id": 2301,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2300,
                  "name": "amounts",
                  "nodeType": "VariableDeclaration",
                  "scope": 2302,
                  "src": "2353:21:3",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2298,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "2353:4:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2299,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2353:6:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2352:23:3"
            },
            "scope": 2504,
            "src": "2155:221:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2317,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "swapExactSOXForTokens",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2312,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2304,
                  "name": "amountOutMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2317,
                  "src": "2413:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2303,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2413:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2307,
                  "name": "path",
                  "nodeType": "VariableDeclaration",
                  "scope": 2317,
                  "src": "2432:23:3",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2305,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "2432:7:3",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 2306,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2432:9:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2309,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2317,
                  "src": "2457:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 2308,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2457:15:3",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2311,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2317,
                  "src": "2477:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2310,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2477:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2412:79:3"
            },
            "returnParameters": {
              "id": 2316,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2315,
                  "name": "amounts",
                  "nodeType": "VariableDeclaration",
                  "scope": 2317,
                  "src": "2545:21:3",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2313,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "2545:4:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2314,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2545:6:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2544:23:3"
            },
            "scope": 2504,
            "src": "2382:186:3",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2334,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "swapTokensForExactSOX",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2329,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2319,
                  "name": "amountOut",
                  "nodeType": "VariableDeclaration",
                  "scope": 2334,
                  "src": "2605:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2318,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2605:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2321,
                  "name": "amountInMax",
                  "nodeType": "VariableDeclaration",
                  "scope": 2334,
                  "src": "2621:16:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2320,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2621:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2324,
                  "name": "path",
                  "nodeType": "VariableDeclaration",
                  "scope": 2334,
                  "src": "2639:23:3",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2322,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "2639:7:3",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 2323,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2639:9:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2326,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2334,
                  "src": "2664:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 2325,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2664:15:3",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2328,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2334,
                  "src": "2684:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2327,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2684:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2604:94:3"
            },
            "returnParameters": {
              "id": 2333,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2332,
                  "name": "amounts",
                  "nodeType": "VariableDeclaration",
                  "scope": 2334,
                  "src": "2735:21:3",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2330,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "2735:4:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2331,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2735:6:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2734:23:3"
            },
            "scope": 2504,
            "src": "2574:184:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2351,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "swapExactTokensForSOX",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2346,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2336,
                  "name": "amountIn",
                  "nodeType": "VariableDeclaration",
                  "scope": 2351,
                  "src": "2795:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2335,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2795:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2338,
                  "name": "amountOutMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2351,
                  "src": "2810:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2337,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2810:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2341,
                  "name": "path",
                  "nodeType": "VariableDeclaration",
                  "scope": 2351,
                  "src": "2829:23:3",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2339,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "2829:7:3",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 2340,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2829:9:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2343,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2351,
                  "src": "2854:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 2342,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2854:15:3",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2345,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2351,
                  "src": "2874:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2344,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2874:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2794:94:3"
            },
            "returnParameters": {
              "id": 2350,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2349,
                  "name": "amounts",
                  "nodeType": "VariableDeclaration",
                  "scope": 2351,
                  "src": "2925:21:3",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2347,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "2925:4:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2348,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2925:6:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2924:23:3"
            },
            "scope": 2504,
            "src": "2764:184:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2366,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "swapSOXForExactTokens",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2361,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2353,
                  "name": "amountOut",
                  "nodeType": "VariableDeclaration",
                  "scope": 2366,
                  "src": "2985:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2352,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2985:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2356,
                  "name": "path",
                  "nodeType": "VariableDeclaration",
                  "scope": 2366,
                  "src": "3001:23:3",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2354,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "3001:7:3",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 2355,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "3001:9:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2358,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2366,
                  "src": "3026:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 2357,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3026:15:3",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2360,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2366,
                  "src": "3046:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2359,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3046:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2984:76:3"
            },
            "returnParameters": {
              "id": 2365,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2364,
                  "name": "amounts",
                  "nodeType": "VariableDeclaration",
                  "scope": 2366,
                  "src": "3114:21:3",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2362,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "3114:4:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2363,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "3114:6:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3113:23:3"
            },
            "scope": 2504,
            "src": "2954:183:3",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2377,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "quote",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2373,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2368,
                  "name": "amountA",
                  "nodeType": "VariableDeclaration",
                  "scope": 2377,
                  "src": "3160:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2367,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3160:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2370,
                  "name": "reserveA",
                  "nodeType": "VariableDeclaration",
                  "scope": 2377,
                  "src": "3174:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2369,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3174:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2372,
                  "name": "reserveB",
                  "nodeType": "VariableDeclaration",
                  "scope": 2377,
                  "src": "3189:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2371,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3189:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3159:44:3"
            },
            "returnParameters": {
              "id": 2376,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2375,
                  "name": "amountB",
                  "nodeType": "VariableDeclaration",
                  "scope": 2377,
                  "src": "3227:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2374,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3227:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3226:14:3"
            },
            "scope": 2504,
            "src": "3145:96:3",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2388,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getAmountOut",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2384,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2379,
                  "name": "amountIn",
                  "nodeType": "VariableDeclaration",
                  "scope": 2388,
                  "src": "3269:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2378,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3269:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2381,
                  "name": "reserveIn",
                  "nodeType": "VariableDeclaration",
                  "scope": 2388,
                  "src": "3284:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2380,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3284:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2383,
                  "name": "reserveOut",
                  "nodeType": "VariableDeclaration",
                  "scope": 2388,
                  "src": "3300:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2382,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3300:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3268:48:3"
            },
            "returnParameters": {
              "id": 2387,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2386,
                  "name": "amountOut",
                  "nodeType": "VariableDeclaration",
                  "scope": 2388,
                  "src": "3340:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2385,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3340:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3339:16:3"
            },
            "scope": 2504,
            "src": "3247:109:3",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2399,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getAmountIn",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2395,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2390,
                  "name": "amountOut",
                  "nodeType": "VariableDeclaration",
                  "scope": 2399,
                  "src": "3383:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2389,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3383:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2392,
                  "name": "reserveIn",
                  "nodeType": "VariableDeclaration",
                  "scope": 2399,
                  "src": "3399:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2391,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3399:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2394,
                  "name": "reserveOut",
                  "nodeType": "VariableDeclaration",
                  "scope": 2399,
                  "src": "3415:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2393,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3415:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3382:49:3"
            },
            "returnParameters": {
              "id": 2398,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2397,
                  "name": "amountIn",
                  "nodeType": "VariableDeclaration",
                  "scope": 2399,
                  "src": "3455:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2396,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3455:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3454:15:3"
            },
            "scope": 2504,
            "src": "3362:108:3",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2410,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getAmountsOut",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2405,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2401,
                  "name": "amountIn",
                  "nodeType": "VariableDeclaration",
                  "scope": 2410,
                  "src": "3499:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2400,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3499:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2404,
                  "name": "path",
                  "nodeType": "VariableDeclaration",
                  "scope": 2410,
                  "src": "3514:23:3",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2402,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "3514:7:3",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 2403,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "3514:9:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3498:40:3"
            },
            "returnParameters": {
              "id": 2409,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2408,
                  "name": "amounts",
                  "nodeType": "VariableDeclaration",
                  "scope": 2410,
                  "src": "3562:21:3",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2406,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "3562:4:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2407,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "3562:6:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3561:23:3"
            },
            "scope": 2504,
            "src": "3476:109:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2421,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getAmountsIn",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2416,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2412,
                  "name": "amountOut",
                  "nodeType": "VariableDeclaration",
                  "scope": 2421,
                  "src": "3613:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2411,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3613:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2415,
                  "name": "path",
                  "nodeType": "VariableDeclaration",
                  "scope": 2421,
                  "src": "3629:23:3",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2413,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "3629:7:3",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 2414,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "3629:9:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3612:41:3"
            },
            "returnParameters": {
              "id": 2420,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2419,
                  "name": "amounts",
                  "nodeType": "VariableDeclaration",
                  "scope": 2421,
                  "src": "3677:21:3",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2417,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "3677:4:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2418,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "3677:6:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3676:23:3"
            },
            "scope": 2504,
            "src": "3591:109:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2438,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "removeLiquiditySOXSupportingFeeOnTransferTokens",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2434,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2423,
                  "name": "token",
                  "nodeType": "VariableDeclaration",
                  "scope": 2438,
                  "src": "3775:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2422,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3775:7:3",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2425,
                  "name": "liquidity",
                  "nodeType": "VariableDeclaration",
                  "scope": 2438,
                  "src": "3799:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2424,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3799:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2427,
                  "name": "amountTokenMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2438,
                  "src": "3824:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2426,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3824:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2429,
                  "name": "amountSOXMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2438,
                  "src": "3854:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2428,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3854:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2431,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2438,
                  "src": "3882:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 2430,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3882:15:3",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2433,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2438,
                  "src": "3911:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2432,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3911:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3764:167:3"
            },
            "returnParameters": {
              "id": 2437,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2436,
                  "name": "amountSOX",
                  "nodeType": "VariableDeclaration",
                  "scope": 2438,
                  "src": "3950:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2435,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3950:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3949:16:3"
            },
            "scope": 2504,
            "src": "3708:258:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2463,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "removeLiquiditySOXWithPermitSupportingFeeOnTransferTokens",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2459,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2440,
                  "name": "token",
                  "nodeType": "VariableDeclaration",
                  "scope": 2463,
                  "src": "4049:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2439,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4049:7:3",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2442,
                  "name": "liquidity",
                  "nodeType": "VariableDeclaration",
                  "scope": 2463,
                  "src": "4073:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2441,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4073:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2444,
                  "name": "amountTokenMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2463,
                  "src": "4098:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2443,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4098:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2446,
                  "name": "amountSOXMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2463,
                  "src": "4128:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2445,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4128:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2448,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2463,
                  "src": "4156:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 2447,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4156:15:3",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2450,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2463,
                  "src": "4185:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2449,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4185:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2452,
                  "name": "approveMax",
                  "nodeType": "VariableDeclaration",
                  "scope": 2463,
                  "src": "4209:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2451,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4209:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2454,
                  "name": "v",
                  "nodeType": "VariableDeclaration",
                  "scope": 2463,
                  "src": "4226:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 2453,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "4226:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2456,
                  "name": "r",
                  "nodeType": "VariableDeclaration",
                  "scope": 2463,
                  "src": "4235:9:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2455,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4235:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2458,
                  "name": "s",
                  "nodeType": "VariableDeclaration",
                  "scope": 2463,
                  "src": "4246:9:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2457,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4246:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4038:224:3"
            },
            "returnParameters": {
              "id": 2462,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2461,
                  "name": "amountSOX",
                  "nodeType": "VariableDeclaration",
                  "scope": 2463,
                  "src": "4281:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2460,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4281:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4280:16:3"
            },
            "scope": 2504,
            "src": "3972:325:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2477,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2475,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2465,
                  "name": "amountIn",
                  "nodeType": "VariableDeclaration",
                  "scope": 2477,
                  "src": "4378:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2464,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4378:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2467,
                  "name": "amountOutMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2477,
                  "src": "4402:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2466,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4402:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2470,
                  "name": "path",
                  "nodeType": "VariableDeclaration",
                  "scope": 2477,
                  "src": "4430:23:3",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2468,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "4430:7:3",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 2469,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "4430:9:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2472,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2477,
                  "src": "4464:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 2471,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4464:15:3",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2474,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2477,
                  "src": "4493:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2473,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4493:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4367:146:3"
            },
            "returnParameters": {
              "id": 2476,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4522:0:3"
            },
            "scope": 2504,
            "src": "4305:218:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2489,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "swapExactSOXForTokensSupportingFeeOnTransferTokens",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2487,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2479,
                  "name": "amountOutMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2489,
                  "src": "4599:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2478,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4599:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2482,
                  "name": "path",
                  "nodeType": "VariableDeclaration",
                  "scope": 2489,
                  "src": "4627:23:3",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2480,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "4627:7:3",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 2481,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "4627:9:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2484,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2489,
                  "src": "4661:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 2483,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4661:15:3",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2486,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2489,
                  "src": "4690:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2485,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4690:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4588:122:3"
            },
            "returnParameters": {
              "id": 2488,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4727:0:3"
            },
            "scope": 2504,
            "src": "4529:199:3",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2503,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "swapExactTokensForSOXSupportingFeeOnTransferTokens",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2501,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2491,
                  "name": "amountIn",
                  "nodeType": "VariableDeclaration",
                  "scope": 2503,
                  "src": "4804:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2490,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4804:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2493,
                  "name": "amountOutMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2503,
                  "src": "4828:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2492,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4828:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2496,
                  "name": "path",
                  "nodeType": "VariableDeclaration",
                  "scope": 2503,
                  "src": "4856:23:3",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2494,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "4856:7:3",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 2495,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "4856:9:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2498,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2503,
                  "src": "4890:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 2497,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4890:15:3",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2500,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2503,
                  "src": "4919:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2499,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4919:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4793:146:3"
            },
            "returnParameters": {
              "id": 2502,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4948:0:3"
            },
            "scope": 2504,
            "src": "4734:215:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 2505,
        "src": "36:4916:3"
      }
    ],
    "src": "0:4954:3"
  },
  "legacyAST": {
    "absolutePath": "/D/40_SonicX_DEX/soxswap-periphery/contracts/interfaces/ISoxswapRouter.sol",
    "exportedSymbols": {
      "ISoxswapRouter": [
        2504
      ]
    },
    "id": 2505,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 2116,
        "literals": [
          "solidity",
          ">=",
          "0.4",
          ".23",
          "<",
          "0.6",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:32:3"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": null,
        "fullyImplemented": false,
        "id": 2504,
        "linearizedBaseContracts": [
          2504
        ],
        "name": "ISoxswapRouter",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": null,
            "documentation": null,
            "id": 2121,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "factory",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2117,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "84:2:3"
            },
            "returnParameters": {
              "id": 2120,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2119,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2121,
                  "src": "110:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2118,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "110:7:3",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "109:9:3"
            },
            "scope": 2504,
            "src": "68:51:3",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2126,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "WSOX",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2122,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "138:2:3"
            },
            "returnParameters": {
              "id": 2125,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2124,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2126,
                  "src": "164:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2123,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "164:7:3",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "163:9:3"
            },
            "scope": 2504,
            "src": "125:48:3",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2151,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "addLiquidity",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2143,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2128,
                  "name": "tokenA",
                  "nodeType": "VariableDeclaration",
                  "scope": 2151,
                  "src": "213:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2127,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "213:7:3",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2130,
                  "name": "tokenB",
                  "nodeType": "VariableDeclaration",
                  "scope": 2151,
                  "src": "238:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2129,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "238:7:3",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2132,
                  "name": "amountADesired",
                  "nodeType": "VariableDeclaration",
                  "scope": 2151,
                  "src": "263:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2131,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "263:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2134,
                  "name": "amountBDesired",
                  "nodeType": "VariableDeclaration",
                  "scope": 2151,
                  "src": "293:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2133,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "293:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2136,
                  "name": "amountAMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2151,
                  "src": "323:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2135,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "323:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2138,
                  "name": "amountBMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2151,
                  "src": "349:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2137,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "349:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2140,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2151,
                  "src": "375:10:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2139,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "375:7:3",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2142,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2151,
                  "src": "396:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2141,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "396:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "202:214:3"
            },
            "returnParameters": {
              "id": 2150,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2145,
                  "name": "amountA",
                  "nodeType": "VariableDeclaration",
                  "scope": 2151,
                  "src": "435:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2144,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "435:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2147,
                  "name": "amountB",
                  "nodeType": "VariableDeclaration",
                  "scope": 2151,
                  "src": "449:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2146,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "449:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2149,
                  "name": "liquidity",
                  "nodeType": "VariableDeclaration",
                  "scope": 2151,
                  "src": "463:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2148,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "463:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "434:44:3"
            },
            "scope": 2504,
            "src": "181:298:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2172,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "addLiquiditySOX",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2164,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2153,
                  "name": "token",
                  "nodeType": "VariableDeclaration",
                  "scope": 2172,
                  "src": "520:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2152,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "520:7:3",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2155,
                  "name": "amountTokenDesired",
                  "nodeType": "VariableDeclaration",
                  "scope": 2172,
                  "src": "544:23:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2154,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "544:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2157,
                  "name": "amountTokenMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2172,
                  "src": "578:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2156,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "578:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2159,
                  "name": "amountSOXMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2172,
                  "src": "608:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2158,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "608:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2161,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2172,
                  "src": "636:10:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2160,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "636:7:3",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2163,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2172,
                  "src": "657:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2162,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "657:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "509:168:3"
            },
            "returnParameters": {
              "id": 2171,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2166,
                  "name": "amountToken",
                  "nodeType": "VariableDeclaration",
                  "scope": 2172,
                  "src": "704:16:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2165,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "704:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2168,
                  "name": "amountSOX",
                  "nodeType": "VariableDeclaration",
                  "scope": 2172,
                  "src": "722:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2167,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "722:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2170,
                  "name": "liquidity",
                  "nodeType": "VariableDeclaration",
                  "scope": 2172,
                  "src": "738:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2169,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "738:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "703:50:3"
            },
            "scope": 2504,
            "src": "485:269:3",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2193,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "removeLiquidity",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2187,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2174,
                  "name": "tokenA",
                  "nodeType": "VariableDeclaration",
                  "scope": 2193,
                  "src": "795:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2173,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "795:7:3",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2176,
                  "name": "tokenB",
                  "nodeType": "VariableDeclaration",
                  "scope": 2193,
                  "src": "820:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2175,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "820:7:3",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2178,
                  "name": "liquidity",
                  "nodeType": "VariableDeclaration",
                  "scope": 2193,
                  "src": "845:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2177,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "845:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2180,
                  "name": "amountAMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2193,
                  "src": "870:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2179,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "870:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2182,
                  "name": "amountBMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2193,
                  "src": "896:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2181,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "896:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2184,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2193,
                  "src": "922:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 2183,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "922:15:3",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2186,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2193,
                  "src": "951:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2185,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "951:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "784:187:3"
            },
            "returnParameters": {
              "id": 2192,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2189,
                  "name": "amountA",
                  "nodeType": "VariableDeclaration",
                  "scope": 2193,
                  "src": "990:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2188,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "990:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2191,
                  "name": "amountB",
                  "nodeType": "VariableDeclaration",
                  "scope": 2193,
                  "src": "1004:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2190,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1004:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "989:28:3"
            },
            "scope": 2504,
            "src": "760:258:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2212,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "removeLiquiditySOX",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2206,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2195,
                  "name": "token",
                  "nodeType": "VariableDeclaration",
                  "scope": 2212,
                  "src": "1062:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2194,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1062:7:3",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2197,
                  "name": "liquidity",
                  "nodeType": "VariableDeclaration",
                  "scope": 2212,
                  "src": "1086:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2196,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1086:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2199,
                  "name": "amountTokenMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2212,
                  "src": "1111:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2198,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1111:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2201,
                  "name": "amountSOXMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2212,
                  "src": "1141:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2200,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1141:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2203,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2212,
                  "src": "1169:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 2202,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1169:15:3",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2205,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2212,
                  "src": "1198:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2204,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1198:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1051:167:3"
            },
            "returnParameters": {
              "id": 2211,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2208,
                  "name": "amountToken",
                  "nodeType": "VariableDeclaration",
                  "scope": 2212,
                  "src": "1237:16:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2207,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1237:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2210,
                  "name": "amountSOX",
                  "nodeType": "VariableDeclaration",
                  "scope": 2212,
                  "src": "1255:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2209,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1255:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1236:34:3"
            },
            "scope": 2504,
            "src": "1024:247:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2241,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "removeLiquidityWithPermit",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2235,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2214,
                  "name": "tokenA",
                  "nodeType": "VariableDeclaration",
                  "scope": 2241,
                  "src": "1322:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2213,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1322:7:3",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2216,
                  "name": "tokenB",
                  "nodeType": "VariableDeclaration",
                  "scope": 2241,
                  "src": "1347:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2215,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1347:7:3",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2218,
                  "name": "liquidity",
                  "nodeType": "VariableDeclaration",
                  "scope": 2241,
                  "src": "1372:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2217,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1372:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2220,
                  "name": "amountAMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2241,
                  "src": "1397:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2219,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1397:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2222,
                  "name": "amountBMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2241,
                  "src": "1423:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2221,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1423:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2224,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2241,
                  "src": "1449:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 2223,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1449:15:3",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2226,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2241,
                  "src": "1478:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2225,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1478:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2228,
                  "name": "approveMax",
                  "nodeType": "VariableDeclaration",
                  "scope": 2241,
                  "src": "1502:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2227,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1502:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2230,
                  "name": "v",
                  "nodeType": "VariableDeclaration",
                  "scope": 2241,
                  "src": "1519:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 2229,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1519:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2232,
                  "name": "r",
                  "nodeType": "VariableDeclaration",
                  "scope": 2241,
                  "src": "1528:9:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2231,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1528:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2234,
                  "name": "s",
                  "nodeType": "VariableDeclaration",
                  "scope": 2241,
                  "src": "1539:9:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2233,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1539:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1311:244:3"
            },
            "returnParameters": {
              "id": 2240,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2237,
                  "name": "amountA",
                  "nodeType": "VariableDeclaration",
                  "scope": 2241,
                  "src": "1574:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2236,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1574:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2239,
                  "name": "amountB",
                  "nodeType": "VariableDeclaration",
                  "scope": 2241,
                  "src": "1588:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2238,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1588:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1573:28:3"
            },
            "scope": 2504,
            "src": "1277:325:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2268,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "removeLiquiditySOXWithPermit",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2262,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2243,
                  "name": "token",
                  "nodeType": "VariableDeclaration",
                  "scope": 2268,
                  "src": "1656:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2242,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1656:7:3",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2245,
                  "name": "liquidity",
                  "nodeType": "VariableDeclaration",
                  "scope": 2268,
                  "src": "1680:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2244,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1680:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2247,
                  "name": "amountTokenMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2268,
                  "src": "1705:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2246,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1705:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2249,
                  "name": "amountSOXMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2268,
                  "src": "1735:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2248,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1735:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2251,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2268,
                  "src": "1763:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 2250,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1763:15:3",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2253,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2268,
                  "src": "1792:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2252,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1792:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2255,
                  "name": "approveMax",
                  "nodeType": "VariableDeclaration",
                  "scope": 2268,
                  "src": "1816:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2254,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1816:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2257,
                  "name": "v",
                  "nodeType": "VariableDeclaration",
                  "scope": 2268,
                  "src": "1833:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 2256,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1833:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2259,
                  "name": "r",
                  "nodeType": "VariableDeclaration",
                  "scope": 2268,
                  "src": "1842:9:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2258,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1842:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2261,
                  "name": "s",
                  "nodeType": "VariableDeclaration",
                  "scope": 2268,
                  "src": "1853:9:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2260,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1853:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1645:224:3"
            },
            "returnParameters": {
              "id": 2267,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2264,
                  "name": "amountToken",
                  "nodeType": "VariableDeclaration",
                  "scope": 2268,
                  "src": "1888:16:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2263,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1888:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2266,
                  "name": "amountSOX",
                  "nodeType": "VariableDeclaration",
                  "scope": 2268,
                  "src": "1906:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2265,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1906:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1887:34:3"
            },
            "scope": 2504,
            "src": "1608:314:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2285,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "swapExactTokensForTokens",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2280,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2270,
                  "name": "amountIn",
                  "nodeType": "VariableDeclaration",
                  "scope": 2285,
                  "src": "1972:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2269,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1972:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2272,
                  "name": "amountOutMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2285,
                  "src": "1996:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2271,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1996:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2275,
                  "name": "path",
                  "nodeType": "VariableDeclaration",
                  "scope": 2285,
                  "src": "2024:23:3",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2273,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "2024:7:3",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 2274,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2024:9:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2277,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2285,
                  "src": "2058:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 2276,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2058:15:3",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2279,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2285,
                  "src": "2087:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2278,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2087:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1961:146:3"
            },
            "returnParameters": {
              "id": 2284,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2283,
                  "name": "amounts",
                  "nodeType": "VariableDeclaration",
                  "scope": 2285,
                  "src": "2126:21:3",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2281,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "2126:4:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2282,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2126:6:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2125:23:3"
            },
            "scope": 2504,
            "src": "1928:221:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2302,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "swapTokensForExactTokens",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2297,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2287,
                  "name": "amountOut",
                  "nodeType": "VariableDeclaration",
                  "scope": 2302,
                  "src": "2199:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2286,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2199:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2289,
                  "name": "amountInMax",
                  "nodeType": "VariableDeclaration",
                  "scope": 2302,
                  "src": "2224:16:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2288,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2224:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2292,
                  "name": "path",
                  "nodeType": "VariableDeclaration",
                  "scope": 2302,
                  "src": "2251:23:3",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2290,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "2251:7:3",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 2291,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2251:9:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2294,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2302,
                  "src": "2285:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 2293,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2285:15:3",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2296,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2302,
                  "src": "2314:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2295,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2314:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2188:146:3"
            },
            "returnParameters": {
              "id": 2301,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2300,
                  "name": "amounts",
                  "nodeType": "VariableDeclaration",
                  "scope": 2302,
                  "src": "2353:21:3",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2298,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "2353:4:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2299,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2353:6:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2352:23:3"
            },
            "scope": 2504,
            "src": "2155:221:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2317,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "swapExactSOXForTokens",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2312,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2304,
                  "name": "amountOutMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2317,
                  "src": "2413:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2303,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2413:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2307,
                  "name": "path",
                  "nodeType": "VariableDeclaration",
                  "scope": 2317,
                  "src": "2432:23:3",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2305,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "2432:7:3",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 2306,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2432:9:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2309,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2317,
                  "src": "2457:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 2308,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2457:15:3",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2311,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2317,
                  "src": "2477:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2310,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2477:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2412:79:3"
            },
            "returnParameters": {
              "id": 2316,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2315,
                  "name": "amounts",
                  "nodeType": "VariableDeclaration",
                  "scope": 2317,
                  "src": "2545:21:3",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2313,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "2545:4:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2314,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2545:6:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2544:23:3"
            },
            "scope": 2504,
            "src": "2382:186:3",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2334,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "swapTokensForExactSOX",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2329,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2319,
                  "name": "amountOut",
                  "nodeType": "VariableDeclaration",
                  "scope": 2334,
                  "src": "2605:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2318,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2605:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2321,
                  "name": "amountInMax",
                  "nodeType": "VariableDeclaration",
                  "scope": 2334,
                  "src": "2621:16:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2320,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2621:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2324,
                  "name": "path",
                  "nodeType": "VariableDeclaration",
                  "scope": 2334,
                  "src": "2639:23:3",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2322,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "2639:7:3",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 2323,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2639:9:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2326,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2334,
                  "src": "2664:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 2325,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2664:15:3",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2328,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2334,
                  "src": "2684:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2327,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2684:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2604:94:3"
            },
            "returnParameters": {
              "id": 2333,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2332,
                  "name": "amounts",
                  "nodeType": "VariableDeclaration",
                  "scope": 2334,
                  "src": "2735:21:3",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2330,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "2735:4:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2331,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2735:6:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2734:23:3"
            },
            "scope": 2504,
            "src": "2574:184:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2351,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "swapExactTokensForSOX",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2346,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2336,
                  "name": "amountIn",
                  "nodeType": "VariableDeclaration",
                  "scope": 2351,
                  "src": "2795:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2335,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2795:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2338,
                  "name": "amountOutMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2351,
                  "src": "2810:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2337,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2810:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2341,
                  "name": "path",
                  "nodeType": "VariableDeclaration",
                  "scope": 2351,
                  "src": "2829:23:3",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2339,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "2829:7:3",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 2340,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2829:9:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2343,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2351,
                  "src": "2854:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 2342,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2854:15:3",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2345,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2351,
                  "src": "2874:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2344,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2874:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2794:94:3"
            },
            "returnParameters": {
              "id": 2350,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2349,
                  "name": "amounts",
                  "nodeType": "VariableDeclaration",
                  "scope": 2351,
                  "src": "2925:21:3",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2347,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "2925:4:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2348,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2925:6:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2924:23:3"
            },
            "scope": 2504,
            "src": "2764:184:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2366,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "swapSOXForExactTokens",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2361,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2353,
                  "name": "amountOut",
                  "nodeType": "VariableDeclaration",
                  "scope": 2366,
                  "src": "2985:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2352,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2985:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2356,
                  "name": "path",
                  "nodeType": "VariableDeclaration",
                  "scope": 2366,
                  "src": "3001:23:3",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2354,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "3001:7:3",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 2355,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "3001:9:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2358,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2366,
                  "src": "3026:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 2357,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3026:15:3",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2360,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2366,
                  "src": "3046:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2359,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3046:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2984:76:3"
            },
            "returnParameters": {
              "id": 2365,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2364,
                  "name": "amounts",
                  "nodeType": "VariableDeclaration",
                  "scope": 2366,
                  "src": "3114:21:3",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2362,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "3114:4:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2363,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "3114:6:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3113:23:3"
            },
            "scope": 2504,
            "src": "2954:183:3",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2377,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "quote",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2373,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2368,
                  "name": "amountA",
                  "nodeType": "VariableDeclaration",
                  "scope": 2377,
                  "src": "3160:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2367,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3160:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2370,
                  "name": "reserveA",
                  "nodeType": "VariableDeclaration",
                  "scope": 2377,
                  "src": "3174:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2369,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3174:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2372,
                  "name": "reserveB",
                  "nodeType": "VariableDeclaration",
                  "scope": 2377,
                  "src": "3189:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2371,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3189:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3159:44:3"
            },
            "returnParameters": {
              "id": 2376,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2375,
                  "name": "amountB",
                  "nodeType": "VariableDeclaration",
                  "scope": 2377,
                  "src": "3227:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2374,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3227:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3226:14:3"
            },
            "scope": 2504,
            "src": "3145:96:3",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2388,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getAmountOut",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2384,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2379,
                  "name": "amountIn",
                  "nodeType": "VariableDeclaration",
                  "scope": 2388,
                  "src": "3269:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2378,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3269:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2381,
                  "name": "reserveIn",
                  "nodeType": "VariableDeclaration",
                  "scope": 2388,
                  "src": "3284:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2380,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3284:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2383,
                  "name": "reserveOut",
                  "nodeType": "VariableDeclaration",
                  "scope": 2388,
                  "src": "3300:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2382,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3300:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3268:48:3"
            },
            "returnParameters": {
              "id": 2387,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2386,
                  "name": "amountOut",
                  "nodeType": "VariableDeclaration",
                  "scope": 2388,
                  "src": "3340:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2385,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3340:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3339:16:3"
            },
            "scope": 2504,
            "src": "3247:109:3",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2399,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getAmountIn",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2395,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2390,
                  "name": "amountOut",
                  "nodeType": "VariableDeclaration",
                  "scope": 2399,
                  "src": "3383:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2389,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3383:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2392,
                  "name": "reserveIn",
                  "nodeType": "VariableDeclaration",
                  "scope": 2399,
                  "src": "3399:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2391,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3399:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2394,
                  "name": "reserveOut",
                  "nodeType": "VariableDeclaration",
                  "scope": 2399,
                  "src": "3415:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2393,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3415:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3382:49:3"
            },
            "returnParameters": {
              "id": 2398,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2397,
                  "name": "amountIn",
                  "nodeType": "VariableDeclaration",
                  "scope": 2399,
                  "src": "3455:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2396,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3455:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3454:15:3"
            },
            "scope": 2504,
            "src": "3362:108:3",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2410,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getAmountsOut",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2405,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2401,
                  "name": "amountIn",
                  "nodeType": "VariableDeclaration",
                  "scope": 2410,
                  "src": "3499:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2400,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3499:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2404,
                  "name": "path",
                  "nodeType": "VariableDeclaration",
                  "scope": 2410,
                  "src": "3514:23:3",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2402,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "3514:7:3",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 2403,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "3514:9:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3498:40:3"
            },
            "returnParameters": {
              "id": 2409,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2408,
                  "name": "amounts",
                  "nodeType": "VariableDeclaration",
                  "scope": 2410,
                  "src": "3562:21:3",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2406,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "3562:4:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2407,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "3562:6:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3561:23:3"
            },
            "scope": 2504,
            "src": "3476:109:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2421,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getAmountsIn",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2416,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2412,
                  "name": "amountOut",
                  "nodeType": "VariableDeclaration",
                  "scope": 2421,
                  "src": "3613:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2411,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3613:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2415,
                  "name": "path",
                  "nodeType": "VariableDeclaration",
                  "scope": 2421,
                  "src": "3629:23:3",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2413,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "3629:7:3",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 2414,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "3629:9:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3612:41:3"
            },
            "returnParameters": {
              "id": 2420,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2419,
                  "name": "amounts",
                  "nodeType": "VariableDeclaration",
                  "scope": 2421,
                  "src": "3677:21:3",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2417,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "3677:4:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 2418,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "3677:6:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3676:23:3"
            },
            "scope": 2504,
            "src": "3591:109:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2438,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "removeLiquiditySOXSupportingFeeOnTransferTokens",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2434,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2423,
                  "name": "token",
                  "nodeType": "VariableDeclaration",
                  "scope": 2438,
                  "src": "3775:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2422,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3775:7:3",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2425,
                  "name": "liquidity",
                  "nodeType": "VariableDeclaration",
                  "scope": 2438,
                  "src": "3799:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2424,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3799:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2427,
                  "name": "amountTokenMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2438,
                  "src": "3824:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2426,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3824:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2429,
                  "name": "amountSOXMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2438,
                  "src": "3854:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2428,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3854:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2431,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2438,
                  "src": "3882:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 2430,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3882:15:3",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2433,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2438,
                  "src": "3911:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2432,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3911:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3764:167:3"
            },
            "returnParameters": {
              "id": 2437,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2436,
                  "name": "amountSOX",
                  "nodeType": "VariableDeclaration",
                  "scope": 2438,
                  "src": "3950:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2435,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3950:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3949:16:3"
            },
            "scope": 2504,
            "src": "3708:258:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2463,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "removeLiquiditySOXWithPermitSupportingFeeOnTransferTokens",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2459,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2440,
                  "name": "token",
                  "nodeType": "VariableDeclaration",
                  "scope": 2463,
                  "src": "4049:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2439,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4049:7:3",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2442,
                  "name": "liquidity",
                  "nodeType": "VariableDeclaration",
                  "scope": 2463,
                  "src": "4073:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2441,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4073:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2444,
                  "name": "amountTokenMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2463,
                  "src": "4098:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2443,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4098:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2446,
                  "name": "amountSOXMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2463,
                  "src": "4128:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2445,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4128:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2448,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2463,
                  "src": "4156:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 2447,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4156:15:3",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2450,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2463,
                  "src": "4185:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2449,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4185:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2452,
                  "name": "approveMax",
                  "nodeType": "VariableDeclaration",
                  "scope": 2463,
                  "src": "4209:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2451,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4209:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2454,
                  "name": "v",
                  "nodeType": "VariableDeclaration",
                  "scope": 2463,
                  "src": "4226:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 2453,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "4226:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2456,
                  "name": "r",
                  "nodeType": "VariableDeclaration",
                  "scope": 2463,
                  "src": "4235:9:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2455,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4235:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2458,
                  "name": "s",
                  "nodeType": "VariableDeclaration",
                  "scope": 2463,
                  "src": "4246:9:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2457,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4246:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4038:224:3"
            },
            "returnParameters": {
              "id": 2462,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2461,
                  "name": "amountSOX",
                  "nodeType": "VariableDeclaration",
                  "scope": 2463,
                  "src": "4281:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2460,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4281:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4280:16:3"
            },
            "scope": 2504,
            "src": "3972:325:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2477,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2475,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2465,
                  "name": "amountIn",
                  "nodeType": "VariableDeclaration",
                  "scope": 2477,
                  "src": "4378:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2464,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4378:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2467,
                  "name": "amountOutMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2477,
                  "src": "4402:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2466,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4402:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2470,
                  "name": "path",
                  "nodeType": "VariableDeclaration",
                  "scope": 2477,
                  "src": "4430:23:3",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2468,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "4430:7:3",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 2469,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "4430:9:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2472,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2477,
                  "src": "4464:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 2471,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4464:15:3",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2474,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2477,
                  "src": "4493:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2473,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4493:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4367:146:3"
            },
            "returnParameters": {
              "id": 2476,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4522:0:3"
            },
            "scope": 2504,
            "src": "4305:218:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2489,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "swapExactSOXForTokensSupportingFeeOnTransferTokens",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2487,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2479,
                  "name": "amountOutMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2489,
                  "src": "4599:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2478,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4599:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2482,
                  "name": "path",
                  "nodeType": "VariableDeclaration",
                  "scope": 2489,
                  "src": "4627:23:3",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2480,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "4627:7:3",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 2481,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "4627:9:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2484,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2489,
                  "src": "4661:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 2483,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4661:15:3",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2486,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2489,
                  "src": "4690:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2485,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4690:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4588:122:3"
            },
            "returnParameters": {
              "id": 2488,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4727:0:3"
            },
            "scope": 2504,
            "src": "4529:199:3",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2503,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "swapExactTokensForSOXSupportingFeeOnTransferTokens",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2501,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2491,
                  "name": "amountIn",
                  "nodeType": "VariableDeclaration",
                  "scope": 2503,
                  "src": "4804:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2490,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4804:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2493,
                  "name": "amountOutMin",
                  "nodeType": "VariableDeclaration",
                  "scope": 2503,
                  "src": "4828:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2492,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4828:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2496,
                  "name": "path",
                  "nodeType": "VariableDeclaration",
                  "scope": 2503,
                  "src": "4856:23:3",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 2494,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "4856:7:3",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 2495,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "4856:9:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2498,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2503,
                  "src": "4890:18:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 2497,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4890:15:3",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2500,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2503,
                  "src": "4919:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2499,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4919:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4793:146:3"
            },
            "returnParameters": {
              "id": 2502,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4948:0:3"
            },
            "scope": 2504,
            "src": "4734:215:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 2505,
        "src": "36:4916:3"
      }
    ],
    "src": "0:4954:3"
  },
  "compiler": {
    "name": "solc",
    "version": "0.5.4+commit.7b0de266.mod.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "2.0.1",
  "updatedAt": "2020-12-15T09:23:58.342Z"
}