{
  "id": "d51d6d02834a2663bc05f6b2dca5741f",
  "_format": "hh-sol-build-info-1",
  "solcVersion": "0.8.3",
  "solcLongVersion": "0.8.3+commit.8d00100c",
  "input": {
    "language": "Solidity",
    "sources": {
      "contracts/misc/interfaces/IUniswapV2Router01.sol": {
        "content": "// SPDX-License-Identifier: agpl-3.0\npragma solidity >=0.6.2;\n\ninterface IUniswapV2Router01 {\n  function factory() external pure returns (address);\n\n  function WETH() external pure returns (address);\n\n  function addLiquidity(\n    address tokenA,\n    address tokenB,\n    uint256 amountADesired,\n    uint256 amountBDesired,\n    uint256 amountAMin,\n    uint256 amountBMin,\n    address to,\n    uint256 deadline\n  )\n    external\n    returns (\n      uint256 amountA,\n      uint256 amountB,\n      uint256 liquidity\n    );\n\n  function addLiquidityETH(\n    address token,\n    uint256 amountTokenDesired,\n    uint256 amountTokenMin,\n    uint256 amountETHMin,\n    address to,\n    uint256 deadline\n  )\n    external\n    payable\n    returns (\n      uint256 amountToken,\n      uint256 amountETH,\n      uint256 liquidity\n    );\n\n  function removeLiquidity(\n    address tokenA,\n    address tokenB,\n    uint256 liquidity,\n    uint256 amountAMin,\n    uint256 amountBMin,\n    address to,\n    uint256 deadline\n  ) external returns (uint256 amountA, uint256 amountB);\n\n  function removeLiquidityETH(\n    address token,\n    uint256 liquidity,\n    uint256 amountTokenMin,\n    uint256 amountETHMin,\n    address to,\n    uint256 deadline\n  ) external returns (uint256 amountToken, uint256 amountETH);\n\n  function removeLiquidityWithPermit(\n    address tokenA,\n    address tokenB,\n    uint256 liquidity,\n    uint256 amountAMin,\n    uint256 amountBMin,\n    address to,\n    uint256 deadline,\n    bool approveMax,\n    uint8 v,\n    bytes32 r,\n    bytes32 s\n  ) external returns (uint256 amountA, uint256 amountB);\n\n  function removeLiquidityETHWithPermit(\n    address token,\n    uint256 liquidity,\n    uint256 amountTokenMin,\n    uint256 amountETHMin,\n    address to,\n    uint256 deadline,\n    bool approveMax,\n    uint8 v,\n    bytes32 r,\n    bytes32 s\n  ) external returns (uint256 amountToken, uint256 amountETH);\n\n  function swapExactTokensForTokens(\n    uint256 amountIn,\n    uint256 amountOutMin,\n    address[] calldata path,\n    address to,\n    uint256 deadline\n  ) external returns (uint256[] memory amounts);\n\n  function swapTokensForExactTokens(\n    uint256 amountOut,\n    uint256 amountInMax,\n    address[] calldata path,\n    address to,\n    uint256 deadline\n  ) external returns (uint256[] memory amounts);\n\n  function swapExactETHForTokens(\n    uint256 amountOutMin,\n    address[] calldata path,\n    address to,\n    uint256 deadline\n  ) external payable returns (uint256[] memory amounts);\n\n  function swapTokensForExactETH(\n    uint256 amountOut,\n    uint256 amountInMax,\n    address[] calldata path,\n    address to,\n    uint256 deadline\n  ) external returns (uint256[] memory amounts);\n\n  function swapExactTokensForETH(\n    uint256 amountIn,\n    uint256 amountOutMin,\n    address[] calldata path,\n    address to,\n    uint256 deadline\n  ) external returns (uint256[] memory amounts);\n\n  function swapETHForExactTokens(\n    uint256 amountOut,\n    address[] calldata path,\n    address to,\n    uint256 deadline\n  ) external payable returns (uint256[] memory amounts);\n\n  function quote(\n    uint256 amountA,\n    uint256 reserveA,\n    uint256 reserveB\n  ) external pure returns (uint256 amountB);\n\n  function getAmountOut(\n    uint256 amountIn,\n    uint256 reserveIn,\n    uint256 reserveOut\n  ) external pure returns (uint256 amountOut);\n\n  function getAmountIn(\n    uint256 amountOut,\n    uint256 reserveIn,\n    uint256 reserveOut\n  ) external pure returns (uint256 amountIn);\n\n  function getAmountsOut(uint256 amountIn, address[] calldata path)\n    external\n    view\n    returns (uint256[] memory amounts);\n\n  function getAmountsIn(uint256 amountOut, address[] calldata path)\n    external\n    view\n    returns (uint256[] memory amounts);\n}\n"
      },
      "contracts/misc/interfaces/IUniswapV2Router02.sol": {
        "content": "// SPDX-License-Identifier: agpl-3.0\npragma solidity >=0.6.2;\n\nimport './IUniswapV2Router01.sol';\n\ninterface IUniswapV2Router02 is IUniswapV2Router01 {\n  function removeLiquidityETHSupportingFeeOnTransferTokens(\n    address token,\n    uint256 liquidity,\n    uint256 amountTokenMin,\n    uint256 amountETHMin,\n    address to,\n    uint256 deadline\n  ) external returns (uint256 amountETH);\n\n  function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(\n    address token,\n    uint256 liquidity,\n    uint256 amountTokenMin,\n    uint256 amountETHMin,\n    address to,\n    uint256 deadline,\n    bool approveMax,\n    uint8 v,\n    bytes32 r,\n    bytes32 s\n  ) external returns (uint256 amountETH);\n\n  function swapExactTokensForTokensSupportingFeeOnTransferTokens(\n    uint256 amountIn,\n    uint256 amountOutMin,\n    address[] calldata path,\n    address to,\n    uint256 deadline\n  ) external;\n\n  function swapExactETHForTokensSupportingFeeOnTransferTokens(\n    uint256 amountOutMin,\n    address[] calldata path,\n    address to,\n    uint256 deadline\n  ) external payable;\n\n  function swapExactTokensForETHSupportingFeeOnTransferTokens(\n    uint256 amountIn,\n    uint256 amountOutMin,\n    address[] calldata path,\n    address to,\n    uint256 deadline\n  ) external;\n}\n"
      }
    },
    "settings": {
      "optimizer": {
        "enabled": true,
        "runs": 200
      },
      "evmVersion": "istanbul",
      "outputSelection": {
        "*": {
          "*": [
            "abi",
            "evm.bytecode",
            "evm.deployedBytecode",
            "evm.methodIdentifiers"
          ],
          "": [
            "ast"
          ]
        }
      }
    }
  },
  "output": {
    "contracts": {
      "contracts/misc/interfaces/IUniswapV2Router01.sol": {
        "IUniswapV2Router01": {
          "abi": [
            {
              "inputs": [],
              "name": "WETH",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "pure",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "tokenA",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "tokenB",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "amountADesired",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountBDesired",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountAMin",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountBMin",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                }
              ],
              "name": "addLiquidity",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "amountA",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountB",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "liquidity",
                  "type": "uint256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "amountTokenDesired",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountTokenMin",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountETHMin",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                }
              ],
              "name": "addLiquidityETH",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "amountToken",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountETH",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "liquidity",
                  "type": "uint256"
                }
              ],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "factory",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "pure",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "amountOut",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "reserveIn",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "reserveOut",
                  "type": "uint256"
                }
              ],
              "name": "getAmountIn",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "amountIn",
                  "type": "uint256"
                }
              ],
              "stateMutability": "pure",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "amountIn",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "reserveIn",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "reserveOut",
                  "type": "uint256"
                }
              ],
              "name": "getAmountOut",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "amountOut",
                  "type": "uint256"
                }
              ],
              "stateMutability": "pure",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "amountOut",
                  "type": "uint256"
                },
                {
                  "internalType": "address[]",
                  "name": "path",
                  "type": "address[]"
                }
              ],
              "name": "getAmountsIn",
              "outputs": [
                {
                  "internalType": "uint256[]",
                  "name": "amounts",
                  "type": "uint256[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "amountIn",
                  "type": "uint256"
                },
                {
                  "internalType": "address[]",
                  "name": "path",
                  "type": "address[]"
                }
              ],
              "name": "getAmountsOut",
              "outputs": [
                {
                  "internalType": "uint256[]",
                  "name": "amounts",
                  "type": "uint256[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "amountA",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "reserveA",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "reserveB",
                  "type": "uint256"
                }
              ],
              "name": "quote",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "amountB",
                  "type": "uint256"
                }
              ],
              "stateMutability": "pure",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "tokenA",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "tokenB",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "liquidity",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountAMin",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountBMin",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                }
              ],
              "name": "removeLiquidity",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "amountA",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountB",
                  "type": "uint256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "liquidity",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountTokenMin",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountETHMin",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                }
              ],
              "name": "removeLiquidityETH",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "amountToken",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountETH",
                  "type": "uint256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "liquidity",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountTokenMin",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountETHMin",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                },
                {
                  "internalType": "bool",
                  "name": "approveMax",
                  "type": "bool"
                },
                {
                  "internalType": "uint8",
                  "name": "v",
                  "type": "uint8"
                },
                {
                  "internalType": "bytes32",
                  "name": "r",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes32",
                  "name": "s",
                  "type": "bytes32"
                }
              ],
              "name": "removeLiquidityETHWithPermit",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "amountToken",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountETH",
                  "type": "uint256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "tokenA",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "tokenB",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "liquidity",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountAMin",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountBMin",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                },
                {
                  "internalType": "bool",
                  "name": "approveMax",
                  "type": "bool"
                },
                {
                  "internalType": "uint8",
                  "name": "v",
                  "type": "uint8"
                },
                {
                  "internalType": "bytes32",
                  "name": "r",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes32",
                  "name": "s",
                  "type": "bytes32"
                }
              ],
              "name": "removeLiquidityWithPermit",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "amountA",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountB",
                  "type": "uint256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "amountOut",
                  "type": "uint256"
                },
                {
                  "internalType": "address[]",
                  "name": "path",
                  "type": "address[]"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                }
              ],
              "name": "swapETHForExactTokens",
              "outputs": [
                {
                  "internalType": "uint256[]",
                  "name": "amounts",
                  "type": "uint256[]"
                }
              ],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "amountOutMin",
                  "type": "uint256"
                },
                {
                  "internalType": "address[]",
                  "name": "path",
                  "type": "address[]"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                }
              ],
              "name": "swapExactETHForTokens",
              "outputs": [
                {
                  "internalType": "uint256[]",
                  "name": "amounts",
                  "type": "uint256[]"
                }
              ],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "amountIn",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountOutMin",
                  "type": "uint256"
                },
                {
                  "internalType": "address[]",
                  "name": "path",
                  "type": "address[]"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                }
              ],
              "name": "swapExactTokensForETH",
              "outputs": [
                {
                  "internalType": "uint256[]",
                  "name": "amounts",
                  "type": "uint256[]"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "amountIn",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountOutMin",
                  "type": "uint256"
                },
                {
                  "internalType": "address[]",
                  "name": "path",
                  "type": "address[]"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                }
              ],
              "name": "swapExactTokensForTokens",
              "outputs": [
                {
                  "internalType": "uint256[]",
                  "name": "amounts",
                  "type": "uint256[]"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "amountOut",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountInMax",
                  "type": "uint256"
                },
                {
                  "internalType": "address[]",
                  "name": "path",
                  "type": "address[]"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                }
              ],
              "name": "swapTokensForExactETH",
              "outputs": [
                {
                  "internalType": "uint256[]",
                  "name": "amounts",
                  "type": "uint256[]"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "amountOut",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountInMax",
                  "type": "uint256"
                },
                {
                  "internalType": "address[]",
                  "name": "path",
                  "type": "address[]"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                }
              ],
              "name": "swapTokensForExactTokens",
              "outputs": [
                {
                  "internalType": "uint256[]",
                  "name": "amounts",
                  "type": "uint256[]"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            }
          ],
          "evm": {
            "bytecode": {
              "generatedSources": [],
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "deployedBytecode": {
              "generatedSources": [],
              "immutableReferences": {},
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "methodIdentifiers": {
              "WETH()": "ad5c4648",
              "addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)": "e8e33700",
              "addLiquidityETH(address,uint256,uint256,uint256,address,uint256)": "f305d719",
              "factory()": "c45a0155",
              "getAmountIn(uint256,uint256,uint256)": "85f8c259",
              "getAmountOut(uint256,uint256,uint256)": "054d50d4",
              "getAmountsIn(uint256,address[])": "1f00ca74",
              "getAmountsOut(uint256,address[])": "d06ca61f",
              "quote(uint256,uint256,uint256)": "ad615dec",
              "removeLiquidity(address,address,uint256,uint256,uint256,address,uint256)": "baa2abde",
              "removeLiquidityETH(address,uint256,uint256,uint256,address,uint256)": "02751cec",
              "removeLiquidityETHWithPermit(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": "ded9382a",
              "removeLiquidityWithPermit(address,address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": "2195995c",
              "swapETHForExactTokens(uint256,address[],address,uint256)": "fb3bdb41",
              "swapExactETHForTokens(uint256,address[],address,uint256)": "7ff36ab5",
              "swapExactTokensForETH(uint256,uint256,address[],address,uint256)": "18cbafe5",
              "swapExactTokensForTokens(uint256,uint256,address[],address,uint256)": "38ed1739",
              "swapTokensForExactETH(uint256,uint256,address[],address,uint256)": "4a25d94a",
              "swapTokensForExactTokens(uint256,uint256,address[],address,uint256)": "8803dbee"
            }
          }
        }
      },
      "contracts/misc/interfaces/IUniswapV2Router02.sol": {
        "IUniswapV2Router02": {
          "abi": [
            {
              "inputs": [],
              "name": "WETH",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "pure",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "tokenA",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "tokenB",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "amountADesired",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountBDesired",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountAMin",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountBMin",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                }
              ],
              "name": "addLiquidity",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "amountA",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountB",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "liquidity",
                  "type": "uint256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "amountTokenDesired",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountTokenMin",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountETHMin",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                }
              ],
              "name": "addLiquidityETH",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "amountToken",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountETH",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "liquidity",
                  "type": "uint256"
                }
              ],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "factory",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "pure",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "amountOut",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "reserveIn",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "reserveOut",
                  "type": "uint256"
                }
              ],
              "name": "getAmountIn",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "amountIn",
                  "type": "uint256"
                }
              ],
              "stateMutability": "pure",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "amountIn",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "reserveIn",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "reserveOut",
                  "type": "uint256"
                }
              ],
              "name": "getAmountOut",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "amountOut",
                  "type": "uint256"
                }
              ],
              "stateMutability": "pure",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "amountOut",
                  "type": "uint256"
                },
                {
                  "internalType": "address[]",
                  "name": "path",
                  "type": "address[]"
                }
              ],
              "name": "getAmountsIn",
              "outputs": [
                {
                  "internalType": "uint256[]",
                  "name": "amounts",
                  "type": "uint256[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "amountIn",
                  "type": "uint256"
                },
                {
                  "internalType": "address[]",
                  "name": "path",
                  "type": "address[]"
                }
              ],
              "name": "getAmountsOut",
              "outputs": [
                {
                  "internalType": "uint256[]",
                  "name": "amounts",
                  "type": "uint256[]"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "amountA",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "reserveA",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "reserveB",
                  "type": "uint256"
                }
              ],
              "name": "quote",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "amountB",
                  "type": "uint256"
                }
              ],
              "stateMutability": "pure",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "tokenA",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "tokenB",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "liquidity",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountAMin",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountBMin",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                }
              ],
              "name": "removeLiquidity",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "amountA",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountB",
                  "type": "uint256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "liquidity",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountTokenMin",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountETHMin",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                }
              ],
              "name": "removeLiquidityETH",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "amountToken",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountETH",
                  "type": "uint256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "liquidity",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountTokenMin",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountETHMin",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                }
              ],
              "name": "removeLiquidityETHSupportingFeeOnTransferTokens",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "amountETH",
                  "type": "uint256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "liquidity",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountTokenMin",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountETHMin",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                },
                {
                  "internalType": "bool",
                  "name": "approveMax",
                  "type": "bool"
                },
                {
                  "internalType": "uint8",
                  "name": "v",
                  "type": "uint8"
                },
                {
                  "internalType": "bytes32",
                  "name": "r",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes32",
                  "name": "s",
                  "type": "bytes32"
                }
              ],
              "name": "removeLiquidityETHWithPermit",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "amountToken",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountETH",
                  "type": "uint256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "liquidity",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountTokenMin",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountETHMin",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                },
                {
                  "internalType": "bool",
                  "name": "approveMax",
                  "type": "bool"
                },
                {
                  "internalType": "uint8",
                  "name": "v",
                  "type": "uint8"
                },
                {
                  "internalType": "bytes32",
                  "name": "r",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes32",
                  "name": "s",
                  "type": "bytes32"
                }
              ],
              "name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "amountETH",
                  "type": "uint256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "tokenA",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "tokenB",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "liquidity",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountAMin",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountBMin",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                },
                {
                  "internalType": "bool",
                  "name": "approveMax",
                  "type": "bool"
                },
                {
                  "internalType": "uint8",
                  "name": "v",
                  "type": "uint8"
                },
                {
                  "internalType": "bytes32",
                  "name": "r",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes32",
                  "name": "s",
                  "type": "bytes32"
                }
              ],
              "name": "removeLiquidityWithPermit",
              "outputs": [
                {
                  "internalType": "uint256",
                  "name": "amountA",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountB",
                  "type": "uint256"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "amountOut",
                  "type": "uint256"
                },
                {
                  "internalType": "address[]",
                  "name": "path",
                  "type": "address[]"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                }
              ],
              "name": "swapETHForExactTokens",
              "outputs": [
                {
                  "internalType": "uint256[]",
                  "name": "amounts",
                  "type": "uint256[]"
                }
              ],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "amountOutMin",
                  "type": "uint256"
                },
                {
                  "internalType": "address[]",
                  "name": "path",
                  "type": "address[]"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                }
              ],
              "name": "swapExactETHForTokens",
              "outputs": [
                {
                  "internalType": "uint256[]",
                  "name": "amounts",
                  "type": "uint256[]"
                }
              ],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "amountOutMin",
                  "type": "uint256"
                },
                {
                  "internalType": "address[]",
                  "name": "path",
                  "type": "address[]"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                }
              ],
              "name": "swapExactETHForTokensSupportingFeeOnTransferTokens",
              "outputs": [],
              "stateMutability": "payable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "amountIn",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountOutMin",
                  "type": "uint256"
                },
                {
                  "internalType": "address[]",
                  "name": "path",
                  "type": "address[]"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                }
              ],
              "name": "swapExactTokensForETH",
              "outputs": [
                {
                  "internalType": "uint256[]",
                  "name": "amounts",
                  "type": "uint256[]"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "amountIn",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountOutMin",
                  "type": "uint256"
                },
                {
                  "internalType": "address[]",
                  "name": "path",
                  "type": "address[]"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                }
              ],
              "name": "swapExactTokensForETHSupportingFeeOnTransferTokens",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "amountIn",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountOutMin",
                  "type": "uint256"
                },
                {
                  "internalType": "address[]",
                  "name": "path",
                  "type": "address[]"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                }
              ],
              "name": "swapExactTokensForTokens",
              "outputs": [
                {
                  "internalType": "uint256[]",
                  "name": "amounts",
                  "type": "uint256[]"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "amountIn",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountOutMin",
                  "type": "uint256"
                },
                {
                  "internalType": "address[]",
                  "name": "path",
                  "type": "address[]"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                }
              ],
              "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens",
              "outputs": [],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "amountOut",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountInMax",
                  "type": "uint256"
                },
                {
                  "internalType": "address[]",
                  "name": "path",
                  "type": "address[]"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                }
              ],
              "name": "swapTokensForExactETH",
              "outputs": [
                {
                  "internalType": "uint256[]",
                  "name": "amounts",
                  "type": "uint256[]"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "uint256",
                  "name": "amountOut",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountInMax",
                  "type": "uint256"
                },
                {
                  "internalType": "address[]",
                  "name": "path",
                  "type": "address[]"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                }
              ],
              "name": "swapTokensForExactTokens",
              "outputs": [
                {
                  "internalType": "uint256[]",
                  "name": "amounts",
                  "type": "uint256[]"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "function"
            }
          ],
          "evm": {
            "bytecode": {
              "generatedSources": [],
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "deployedBytecode": {
              "generatedSources": [],
              "immutableReferences": {},
              "linkReferences": {},
              "object": "",
              "opcodes": "",
              "sourceMap": ""
            },
            "methodIdentifiers": {
              "WETH()": "ad5c4648",
              "addLiquidity(address,address,uint256,uint256,uint256,uint256,address,uint256)": "e8e33700",
              "addLiquidityETH(address,uint256,uint256,uint256,address,uint256)": "f305d719",
              "factory()": "c45a0155",
              "getAmountIn(uint256,uint256,uint256)": "85f8c259",
              "getAmountOut(uint256,uint256,uint256)": "054d50d4",
              "getAmountsIn(uint256,address[])": "1f00ca74",
              "getAmountsOut(uint256,address[])": "d06ca61f",
              "quote(uint256,uint256,uint256)": "ad615dec",
              "removeLiquidity(address,address,uint256,uint256,uint256,address,uint256)": "baa2abde",
              "removeLiquidityETH(address,uint256,uint256,uint256,address,uint256)": "02751cec",
              "removeLiquidityETHSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256)": "af2979eb",
              "removeLiquidityETHWithPermit(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": "ded9382a",
              "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": "5b0d5984",
              "removeLiquidityWithPermit(address,address,uint256,uint256,uint256,address,uint256,bool,uint8,bytes32,bytes32)": "2195995c",
              "swapETHForExactTokens(uint256,address[],address,uint256)": "fb3bdb41",
              "swapExactETHForTokens(uint256,address[],address,uint256)": "7ff36ab5",
              "swapExactETHForTokensSupportingFeeOnTransferTokens(uint256,address[],address,uint256)": "b6f9de95",
              "swapExactTokensForETH(uint256,uint256,address[],address,uint256)": "18cbafe5",
              "swapExactTokensForETHSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)": "791ac947",
              "swapExactTokensForTokens(uint256,uint256,address[],address,uint256)": "38ed1739",
              "swapExactTokensForTokensSupportingFeeOnTransferTokens(uint256,uint256,address[],address,uint256)": "5c11d795",
              "swapTokensForExactETH(uint256,uint256,address[],address,uint256)": "4a25d94a",
              "swapTokensForExactTokens(uint256,uint256,address[],address,uint256)": "8803dbee"
            }
          }
        }
      }
    },
    "sources": {
      "contracts/misc/interfaces/IUniswapV2Router01.sol": {
        "ast": {
          "absolutePath": "contracts/misc/interfaces/IUniswapV2Router01.sol",
          "exportedSymbols": {
            "IUniswapV2Router01": [
              307
            ]
          },
          "id": 308,
          "license": "agpl-3.0",
          "nodeType": "SourceUnit",
          "nodes": [
            {
              "id": 1,
              "literals": [
                "solidity",
                ">=",
                "0.6",
                ".2"
              ],
              "nodeType": "PragmaDirective",
              "src": "37:24:0"
            },
            {
              "abstract": false,
              "baseContracts": [],
              "contractDependencies": [],
              "contractKind": "interface",
              "fullyImplemented": false,
              "id": 307,
              "linearizedBaseContracts": [
                307
              ],
              "name": "IUniswapV2Router01",
              "nameLocation": "73:18:0",
              "nodeType": "ContractDefinition",
              "nodes": [
                {
                  "functionSelector": "c45a0155",
                  "id": 6,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "factory",
                  "nameLocation": "105:7:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 2,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "112:2:0"
                  },
                  "returnParameters": {
                    "id": 5,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 4,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 6,
                        "src": "138:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 3,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "138:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "137:9:0"
                  },
                  "scope": 307,
                  "src": "96:51:0",
                  "stateMutability": "pure",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "ad5c4648",
                  "id": 11,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "WETH",
                  "nameLocation": "160:4:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 7,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "164:2:0"
                  },
                  "returnParameters": {
                    "id": 10,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 9,
                        "mutability": "mutable",
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "nodeType": "VariableDeclaration",
                        "scope": 11,
                        "src": "190:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 8,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "190:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "189:9:0"
                  },
                  "scope": 307,
                  "src": "151:48:0",
                  "stateMutability": "pure",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "e8e33700",
                  "id": 36,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "addLiquidity",
                  "nameLocation": "212:12:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 28,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 13,
                        "mutability": "mutable",
                        "name": "tokenA",
                        "nameLocation": "238:6:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 36,
                        "src": "230:14:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 12,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "230:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 15,
                        "mutability": "mutable",
                        "name": "tokenB",
                        "nameLocation": "258:6:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 36,
                        "src": "250:14:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 14,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "250:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 17,
                        "mutability": "mutable",
                        "name": "amountADesired",
                        "nameLocation": "278:14:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 36,
                        "src": "270:22:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 16,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "270:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 19,
                        "mutability": "mutable",
                        "name": "amountBDesired",
                        "nameLocation": "306:14:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 36,
                        "src": "298:22:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 18,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "298:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 21,
                        "mutability": "mutable",
                        "name": "amountAMin",
                        "nameLocation": "334:10:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 36,
                        "src": "326:18:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 20,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "326:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 23,
                        "mutability": "mutable",
                        "name": "amountBMin",
                        "nameLocation": "358:10:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 36,
                        "src": "350:18:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 22,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "350:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 25,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "382:2:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 36,
                        "src": "374:10:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 24,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "374:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 27,
                        "mutability": "mutable",
                        "name": "deadline",
                        "nameLocation": "398:8:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 36,
                        "src": "390:16:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 26,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "390:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "224:186:0"
                  },
                  "returnParameters": {
                    "id": 35,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 30,
                        "mutability": "mutable",
                        "name": "amountA",
                        "nameLocation": "452:7:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 36,
                        "src": "444:15:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 29,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "444:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 32,
                        "mutability": "mutable",
                        "name": "amountB",
                        "nameLocation": "475:7:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 36,
                        "src": "467:15:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 31,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "467:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 34,
                        "mutability": "mutable",
                        "name": "liquidity",
                        "nameLocation": "498:9:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 36,
                        "src": "490:17:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 33,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "490:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "436:77:0"
                  },
                  "scope": 307,
                  "src": "203:311:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "f305d719",
                  "id": 57,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "addLiquidityETH",
                  "nameLocation": "527:15:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 49,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 38,
                        "mutability": "mutable",
                        "name": "token",
                        "nameLocation": "556:5:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 57,
                        "src": "548:13:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 37,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "548:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 40,
                        "mutability": "mutable",
                        "name": "amountTokenDesired",
                        "nameLocation": "575:18:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 57,
                        "src": "567:26:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 39,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "567:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 42,
                        "mutability": "mutable",
                        "name": "amountTokenMin",
                        "nameLocation": "607:14:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 57,
                        "src": "599:22:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 41,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "599:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 44,
                        "mutability": "mutable",
                        "name": "amountETHMin",
                        "nameLocation": "635:12:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 57,
                        "src": "627:20:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 43,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "627:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 46,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "661:2:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 57,
                        "src": "653:10:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 45,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "653:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 48,
                        "mutability": "mutable",
                        "name": "deadline",
                        "nameLocation": "677:8:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 57,
                        "src": "669:16:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 47,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "669:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "542:147:0"
                  },
                  "returnParameters": {
                    "id": 56,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 51,
                        "mutability": "mutable",
                        "name": "amountToken",
                        "nameLocation": "743:11:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 57,
                        "src": "735:19:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 50,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "735:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 53,
                        "mutability": "mutable",
                        "name": "amountETH",
                        "nameLocation": "770:9:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 57,
                        "src": "762:17:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 52,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "762:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 55,
                        "mutability": "mutable",
                        "name": "liquidity",
                        "nameLocation": "795:9:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 57,
                        "src": "787:17:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 54,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "787:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "727:83:0"
                  },
                  "scope": 307,
                  "src": "518:293:0",
                  "stateMutability": "payable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "baa2abde",
                  "id": 78,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "removeLiquidity",
                  "nameLocation": "824:15:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 72,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 59,
                        "mutability": "mutable",
                        "name": "tokenA",
                        "nameLocation": "853:6:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 78,
                        "src": "845:14:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 58,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "845:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 61,
                        "mutability": "mutable",
                        "name": "tokenB",
                        "nameLocation": "873:6:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 78,
                        "src": "865:14:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 60,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "865:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 63,
                        "mutability": "mutable",
                        "name": "liquidity",
                        "nameLocation": "893:9:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 78,
                        "src": "885:17:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 62,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "885:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 65,
                        "mutability": "mutable",
                        "name": "amountAMin",
                        "nameLocation": "916:10:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 78,
                        "src": "908:18:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 64,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "908:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 67,
                        "mutability": "mutable",
                        "name": "amountBMin",
                        "nameLocation": "940:10:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 78,
                        "src": "932:18:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 66,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "932:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 69,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "964:2:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 78,
                        "src": "956:10:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 68,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "956:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 71,
                        "mutability": "mutable",
                        "name": "deadline",
                        "nameLocation": "980:8:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 78,
                        "src": "972:16:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 70,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "972:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "839:153:0"
                  },
                  "returnParameters": {
                    "id": 77,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 74,
                        "mutability": "mutable",
                        "name": "amountA",
                        "nameLocation": "1019:7:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 78,
                        "src": "1011:15:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 73,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1011:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 76,
                        "mutability": "mutable",
                        "name": "amountB",
                        "nameLocation": "1036:7:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 78,
                        "src": "1028:15:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 75,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1028:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1010:34:0"
                  },
                  "scope": 307,
                  "src": "815:230:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "02751cec",
                  "id": 97,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "removeLiquidityETH",
                  "nameLocation": "1058:18:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 91,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 80,
                        "mutability": "mutable",
                        "name": "token",
                        "nameLocation": "1090:5:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 97,
                        "src": "1082:13:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 79,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1082:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 82,
                        "mutability": "mutable",
                        "name": "liquidity",
                        "nameLocation": "1109:9:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 97,
                        "src": "1101:17:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 81,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1101:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 84,
                        "mutability": "mutable",
                        "name": "amountTokenMin",
                        "nameLocation": "1132:14:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 97,
                        "src": "1124:22:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 83,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1124:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 86,
                        "mutability": "mutable",
                        "name": "amountETHMin",
                        "nameLocation": "1160:12:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 97,
                        "src": "1152:20:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 85,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1152:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 88,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "1186:2:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 97,
                        "src": "1178:10:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 87,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1178:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 90,
                        "mutability": "mutable",
                        "name": "deadline",
                        "nameLocation": "1202:8:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 97,
                        "src": "1194:16:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 89,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1194:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1076:138:0"
                  },
                  "returnParameters": {
                    "id": 96,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 93,
                        "mutability": "mutable",
                        "name": "amountToken",
                        "nameLocation": "1241:11:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 97,
                        "src": "1233:19:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 92,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1233:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 95,
                        "mutability": "mutable",
                        "name": "amountETH",
                        "nameLocation": "1262:9:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 97,
                        "src": "1254:17:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 94,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1254:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1232:40:0"
                  },
                  "scope": 307,
                  "src": "1049:224:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "2195995c",
                  "id": 126,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "removeLiquidityWithPermit",
                  "nameLocation": "1286:25:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 120,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 99,
                        "mutability": "mutable",
                        "name": "tokenA",
                        "nameLocation": "1325:6:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 126,
                        "src": "1317:14:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 98,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1317:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 101,
                        "mutability": "mutable",
                        "name": "tokenB",
                        "nameLocation": "1345:6:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 126,
                        "src": "1337:14:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 100,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1337:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 103,
                        "mutability": "mutable",
                        "name": "liquidity",
                        "nameLocation": "1365:9:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 126,
                        "src": "1357:17:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 102,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1357:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 105,
                        "mutability": "mutable",
                        "name": "amountAMin",
                        "nameLocation": "1388:10:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 126,
                        "src": "1380:18:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 104,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1380:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 107,
                        "mutability": "mutable",
                        "name": "amountBMin",
                        "nameLocation": "1412:10:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 126,
                        "src": "1404:18:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 106,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1404:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 109,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "1436:2:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 126,
                        "src": "1428:10:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 108,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1428:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 111,
                        "mutability": "mutable",
                        "name": "deadline",
                        "nameLocation": "1452:8:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 126,
                        "src": "1444:16:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 110,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1444:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 113,
                        "mutability": "mutable",
                        "name": "approveMax",
                        "nameLocation": "1471:10:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 126,
                        "src": "1466:15:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 112,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "1466:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 115,
                        "mutability": "mutable",
                        "name": "v",
                        "nameLocation": "1493:1:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 126,
                        "src": "1487:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 114,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "1487:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 117,
                        "mutability": "mutable",
                        "name": "r",
                        "nameLocation": "1508:1:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 126,
                        "src": "1500:9:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "typeName": {
                          "id": 116,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "1500:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 119,
                        "mutability": "mutable",
                        "name": "s",
                        "nameLocation": "1523:1:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 126,
                        "src": "1515:9:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "typeName": {
                          "id": 118,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "1515:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1311:217:0"
                  },
                  "returnParameters": {
                    "id": 125,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 122,
                        "mutability": "mutable",
                        "name": "amountA",
                        "nameLocation": "1555:7:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 126,
                        "src": "1547:15:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 121,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1547:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 124,
                        "mutability": "mutable",
                        "name": "amountB",
                        "nameLocation": "1572:7:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 126,
                        "src": "1564:15:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 123,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1564:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1546:34:0"
                  },
                  "scope": 307,
                  "src": "1277:304:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "ded9382a",
                  "id": 153,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "removeLiquidityETHWithPermit",
                  "nameLocation": "1594:28:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 147,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 128,
                        "mutability": "mutable",
                        "name": "token",
                        "nameLocation": "1636:5:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 153,
                        "src": "1628:13:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 127,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1628:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 130,
                        "mutability": "mutable",
                        "name": "liquidity",
                        "nameLocation": "1655:9:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 153,
                        "src": "1647:17:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 129,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1647:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 132,
                        "mutability": "mutable",
                        "name": "amountTokenMin",
                        "nameLocation": "1678:14:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 153,
                        "src": "1670:22:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 131,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1670:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 134,
                        "mutability": "mutable",
                        "name": "amountETHMin",
                        "nameLocation": "1706:12:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 153,
                        "src": "1698:20:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 133,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1698:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 136,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "1732:2:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 153,
                        "src": "1724:10:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 135,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1724:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 138,
                        "mutability": "mutable",
                        "name": "deadline",
                        "nameLocation": "1748:8:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 153,
                        "src": "1740:16:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 137,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1740:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 140,
                        "mutability": "mutable",
                        "name": "approveMax",
                        "nameLocation": "1767:10:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 153,
                        "src": "1762:15:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 139,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "1762:4:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 142,
                        "mutability": "mutable",
                        "name": "v",
                        "nameLocation": "1789:1:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 153,
                        "src": "1783:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 141,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "1783:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 144,
                        "mutability": "mutable",
                        "name": "r",
                        "nameLocation": "1804:1:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 153,
                        "src": "1796:9:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "typeName": {
                          "id": 143,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "1796:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 146,
                        "mutability": "mutable",
                        "name": "s",
                        "nameLocation": "1819:1:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 153,
                        "src": "1811:9:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "typeName": {
                          "id": 145,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "1811:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1622:202:0"
                  },
                  "returnParameters": {
                    "id": 152,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 149,
                        "mutability": "mutable",
                        "name": "amountToken",
                        "nameLocation": "1851:11:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 153,
                        "src": "1843:19:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 148,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1843:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 151,
                        "mutability": "mutable",
                        "name": "amountETH",
                        "nameLocation": "1872:9:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 153,
                        "src": "1864:17:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 150,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1864:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1842:40:0"
                  },
                  "scope": 307,
                  "src": "1585:298:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "38ed1739",
                  "id": 170,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "swapExactTokensForTokens",
                  "nameLocation": "1896:24:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 165,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 155,
                        "mutability": "mutable",
                        "name": "amountIn",
                        "nameLocation": "1934:8:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 170,
                        "src": "1926:16:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 154,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1926:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 157,
                        "mutability": "mutable",
                        "name": "amountOutMin",
                        "nameLocation": "1956:12:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 170,
                        "src": "1948:20:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 156,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1948:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 160,
                        "mutability": "mutable",
                        "name": "path",
                        "nameLocation": "1993:4:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 170,
                        "src": "1974:23:0",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 158,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "1974:7:0",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 159,
                          "nodeType": "ArrayTypeName",
                          "src": "1974:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                            "typeString": "address[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 162,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "2011:2:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 170,
                        "src": "2003:10:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 161,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2003:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 164,
                        "mutability": "mutable",
                        "name": "deadline",
                        "nameLocation": "2027:8:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 170,
                        "src": "2019:16:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 163,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2019:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1920:119:0"
                  },
                  "returnParameters": {
                    "id": 169,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 168,
                        "mutability": "mutable",
                        "name": "amounts",
                        "nameLocation": "2075:7:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 170,
                        "src": "2058:24:0",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 166,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "2058:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 167,
                          "nodeType": "ArrayTypeName",
                          "src": "2058:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2057:26:0"
                  },
                  "scope": 307,
                  "src": "1887:197:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "8803dbee",
                  "id": 187,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "swapTokensForExactTokens",
                  "nameLocation": "2097:24:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 182,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 172,
                        "mutability": "mutable",
                        "name": "amountOut",
                        "nameLocation": "2135:9:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 187,
                        "src": "2127:17:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 171,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2127:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 174,
                        "mutability": "mutable",
                        "name": "amountInMax",
                        "nameLocation": "2158:11:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 187,
                        "src": "2150:19:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 173,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2150:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 177,
                        "mutability": "mutable",
                        "name": "path",
                        "nameLocation": "2194:4:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 187,
                        "src": "2175:23:0",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 175,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "2175:7:0",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 176,
                          "nodeType": "ArrayTypeName",
                          "src": "2175:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                            "typeString": "address[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 179,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "2212:2:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 187,
                        "src": "2204:10:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 178,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2204:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 181,
                        "mutability": "mutable",
                        "name": "deadline",
                        "nameLocation": "2228:8:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 187,
                        "src": "2220:16:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 180,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2220:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2121:119:0"
                  },
                  "returnParameters": {
                    "id": 186,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 185,
                        "mutability": "mutable",
                        "name": "amounts",
                        "nameLocation": "2276:7:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 187,
                        "src": "2259:24:0",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 183,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "2259:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 184,
                          "nodeType": "ArrayTypeName",
                          "src": "2259:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2258:26:0"
                  },
                  "scope": 307,
                  "src": "2088:197:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "7ff36ab5",
                  "id": 202,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "swapExactETHForTokens",
                  "nameLocation": "2298:21:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 197,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 189,
                        "mutability": "mutable",
                        "name": "amountOutMin",
                        "nameLocation": "2333:12:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 202,
                        "src": "2325:20:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 188,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2325:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 192,
                        "mutability": "mutable",
                        "name": "path",
                        "nameLocation": "2370:4:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 202,
                        "src": "2351:23:0",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 190,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "2351:7:0",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 191,
                          "nodeType": "ArrayTypeName",
                          "src": "2351:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                            "typeString": "address[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 194,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "2388:2:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 202,
                        "src": "2380:10:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 193,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2380:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 196,
                        "mutability": "mutable",
                        "name": "deadline",
                        "nameLocation": "2404:8:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 202,
                        "src": "2396:16:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 195,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2396:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2319:97:0"
                  },
                  "returnParameters": {
                    "id": 201,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 200,
                        "mutability": "mutable",
                        "name": "amounts",
                        "nameLocation": "2460:7:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 202,
                        "src": "2443:24:0",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 198,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "2443:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 199,
                          "nodeType": "ArrayTypeName",
                          "src": "2443:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2442:26:0"
                  },
                  "scope": 307,
                  "src": "2289:180:0",
                  "stateMutability": "payable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "4a25d94a",
                  "id": 219,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "swapTokensForExactETH",
                  "nameLocation": "2482:21:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 214,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 204,
                        "mutability": "mutable",
                        "name": "amountOut",
                        "nameLocation": "2517:9:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 219,
                        "src": "2509:17:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 203,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2509:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 206,
                        "mutability": "mutable",
                        "name": "amountInMax",
                        "nameLocation": "2540:11:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 219,
                        "src": "2532:19:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 205,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2532:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 209,
                        "mutability": "mutable",
                        "name": "path",
                        "nameLocation": "2576:4:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 219,
                        "src": "2557:23:0",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 207,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "2557:7:0",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 208,
                          "nodeType": "ArrayTypeName",
                          "src": "2557:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                            "typeString": "address[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 211,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "2594:2:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 219,
                        "src": "2586:10:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 210,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2586:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 213,
                        "mutability": "mutable",
                        "name": "deadline",
                        "nameLocation": "2610:8:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 219,
                        "src": "2602:16:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 212,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2602:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2503:119:0"
                  },
                  "returnParameters": {
                    "id": 218,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 217,
                        "mutability": "mutable",
                        "name": "amounts",
                        "nameLocation": "2658:7:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 219,
                        "src": "2641:24:0",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 215,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "2641:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 216,
                          "nodeType": "ArrayTypeName",
                          "src": "2641:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2640:26:0"
                  },
                  "scope": 307,
                  "src": "2473:194:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "18cbafe5",
                  "id": 236,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "swapExactTokensForETH",
                  "nameLocation": "2680:21:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 231,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 221,
                        "mutability": "mutable",
                        "name": "amountIn",
                        "nameLocation": "2715:8:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 236,
                        "src": "2707:16:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 220,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2707:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 223,
                        "mutability": "mutable",
                        "name": "amountOutMin",
                        "nameLocation": "2737:12:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 236,
                        "src": "2729:20:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 222,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2729:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 226,
                        "mutability": "mutable",
                        "name": "path",
                        "nameLocation": "2774:4:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 236,
                        "src": "2755:23:0",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 224,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "2755:7:0",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 225,
                          "nodeType": "ArrayTypeName",
                          "src": "2755:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                            "typeString": "address[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 228,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "2792:2:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 236,
                        "src": "2784:10:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 227,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2784:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 230,
                        "mutability": "mutable",
                        "name": "deadline",
                        "nameLocation": "2808:8:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 236,
                        "src": "2800:16:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 229,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2800:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2701:119:0"
                  },
                  "returnParameters": {
                    "id": 235,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 234,
                        "mutability": "mutable",
                        "name": "amounts",
                        "nameLocation": "2856:7:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 236,
                        "src": "2839:24:0",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 232,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "2839:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 233,
                          "nodeType": "ArrayTypeName",
                          "src": "2839:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2838:26:0"
                  },
                  "scope": 307,
                  "src": "2671:194:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "fb3bdb41",
                  "id": 251,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "swapETHForExactTokens",
                  "nameLocation": "2878:21:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 246,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 238,
                        "mutability": "mutable",
                        "name": "amountOut",
                        "nameLocation": "2913:9:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 251,
                        "src": "2905:17:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 237,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2905:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 241,
                        "mutability": "mutable",
                        "name": "path",
                        "nameLocation": "2947:4:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 251,
                        "src": "2928:23:0",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 239,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "2928:7:0",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 240,
                          "nodeType": "ArrayTypeName",
                          "src": "2928:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                            "typeString": "address[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 243,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "2965:2:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 251,
                        "src": "2957:10:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 242,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2957:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 245,
                        "mutability": "mutable",
                        "name": "deadline",
                        "nameLocation": "2981:8:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 251,
                        "src": "2973:16:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 244,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2973:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "2899:94:0"
                  },
                  "returnParameters": {
                    "id": 250,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 249,
                        "mutability": "mutable",
                        "name": "amounts",
                        "nameLocation": "3037:7:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 251,
                        "src": "3020:24:0",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 247,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "3020:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 248,
                          "nodeType": "ArrayTypeName",
                          "src": "3020:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3019:26:0"
                  },
                  "scope": 307,
                  "src": "2869:177:0",
                  "stateMutability": "payable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "ad615dec",
                  "id": 262,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "quote",
                  "nameLocation": "3059:5:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 258,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 253,
                        "mutability": "mutable",
                        "name": "amountA",
                        "nameLocation": "3078:7:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 262,
                        "src": "3070:15:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 252,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3070:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 255,
                        "mutability": "mutable",
                        "name": "reserveA",
                        "nameLocation": "3099:8:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 262,
                        "src": "3091:16:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 254,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3091:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 257,
                        "mutability": "mutable",
                        "name": "reserveB",
                        "nameLocation": "3121:8:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 262,
                        "src": "3113:16:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 256,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3113:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3064:69:0"
                  },
                  "returnParameters": {
                    "id": 261,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 260,
                        "mutability": "mutable",
                        "name": "amountB",
                        "nameLocation": "3165:7:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 262,
                        "src": "3157:15:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 259,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3157:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3156:17:0"
                  },
                  "scope": 307,
                  "src": "3050:124:0",
                  "stateMutability": "pure",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "054d50d4",
                  "id": 273,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getAmountOut",
                  "nameLocation": "3187:12:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 269,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 264,
                        "mutability": "mutable",
                        "name": "amountIn",
                        "nameLocation": "3213:8:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 273,
                        "src": "3205:16:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 263,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3205:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 266,
                        "mutability": "mutable",
                        "name": "reserveIn",
                        "nameLocation": "3235:9:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 273,
                        "src": "3227:17:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 265,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3227:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 268,
                        "mutability": "mutable",
                        "name": "reserveOut",
                        "nameLocation": "3258:10:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 273,
                        "src": "3250:18:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 267,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3250:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3199:73:0"
                  },
                  "returnParameters": {
                    "id": 272,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 271,
                        "mutability": "mutable",
                        "name": "amountOut",
                        "nameLocation": "3304:9:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 273,
                        "src": "3296:17:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 270,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3296:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3295:19:0"
                  },
                  "scope": 307,
                  "src": "3178:137:0",
                  "stateMutability": "pure",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "85f8c259",
                  "id": 284,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getAmountIn",
                  "nameLocation": "3328:11:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 280,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 275,
                        "mutability": "mutable",
                        "name": "amountOut",
                        "nameLocation": "3353:9:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 284,
                        "src": "3345:17:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 274,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3345:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 277,
                        "mutability": "mutable",
                        "name": "reserveIn",
                        "nameLocation": "3376:9:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 284,
                        "src": "3368:17:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 276,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3368:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 279,
                        "mutability": "mutable",
                        "name": "reserveOut",
                        "nameLocation": "3399:10:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 284,
                        "src": "3391:18:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 278,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3391:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3339:74:0"
                  },
                  "returnParameters": {
                    "id": 283,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 282,
                        "mutability": "mutable",
                        "name": "amountIn",
                        "nameLocation": "3445:8:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 284,
                        "src": "3437:16:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 281,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3437:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3436:18:0"
                  },
                  "scope": 307,
                  "src": "3319:136:0",
                  "stateMutability": "pure",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "d06ca61f",
                  "id": 295,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getAmountsOut",
                  "nameLocation": "3468:13:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 290,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 286,
                        "mutability": "mutable",
                        "name": "amountIn",
                        "nameLocation": "3490:8:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 295,
                        "src": "3482:16:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 285,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3482:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 289,
                        "mutability": "mutable",
                        "name": "path",
                        "nameLocation": "3519:4:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 295,
                        "src": "3500:23:0",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 287,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "3500:7:0",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 288,
                          "nodeType": "ArrayTypeName",
                          "src": "3500:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                            "typeString": "address[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3481:43:0"
                  },
                  "returnParameters": {
                    "id": 294,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 293,
                        "mutability": "mutable",
                        "name": "amounts",
                        "nameLocation": "3577:7:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 295,
                        "src": "3560:24:0",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 291,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "3560:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 292,
                          "nodeType": "ArrayTypeName",
                          "src": "3560:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3559:26:0"
                  },
                  "scope": 307,
                  "src": "3459:127:0",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "1f00ca74",
                  "id": 306,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getAmountsIn",
                  "nameLocation": "3599:12:0",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 301,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 297,
                        "mutability": "mutable",
                        "name": "amountOut",
                        "nameLocation": "3620:9:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 306,
                        "src": "3612:17:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 296,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3612:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 300,
                        "mutability": "mutable",
                        "name": "path",
                        "nameLocation": "3650:4:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 306,
                        "src": "3631:23:0",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 298,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "3631:7:0",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 299,
                          "nodeType": "ArrayTypeName",
                          "src": "3631:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                            "typeString": "address[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3611:44:0"
                  },
                  "returnParameters": {
                    "id": 305,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 304,
                        "mutability": "mutable",
                        "name": "amounts",
                        "nameLocation": "3708:7:0",
                        "nodeType": "VariableDeclaration",
                        "scope": 306,
                        "src": "3691:24:0",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 302,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "3691:7:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 303,
                          "nodeType": "ArrayTypeName",
                          "src": "3691:9:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                            "typeString": "uint256[]"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "3690:26:0"
                  },
                  "scope": 307,
                  "src": "3590:127:0",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                }
              ],
              "scope": 308,
              "src": "63:3656:0"
            }
          ],
          "src": "37:3683:0"
        },
        "id": 0
      },
      "contracts/misc/interfaces/IUniswapV2Router02.sol": {
        "ast": {
          "absolutePath": "contracts/misc/interfaces/IUniswapV2Router02.sol",
          "exportedSymbols": {
            "IUniswapV2Router01": [
              307
            ],
            "IUniswapV2Router02": [
              395
            ]
          },
          "id": 396,
          "license": "agpl-3.0",
          "nodeType": "SourceUnit",
          "nodes": [
            {
              "id": 309,
              "literals": [
                "solidity",
                ">=",
                "0.6",
                ".2"
              ],
              "nodeType": "PragmaDirective",
              "src": "37:24:1"
            },
            {
              "absolutePath": "contracts/misc/interfaces/IUniswapV2Router01.sol",
              "file": "./IUniswapV2Router01.sol",
              "id": 310,
              "nameLocation": "-1:-1:-1",
              "nodeType": "ImportDirective",
              "scope": 396,
              "sourceUnit": 308,
              "src": "63:34:1",
              "symbolAliases": [],
              "unitAlias": ""
            },
            {
              "abstract": false,
              "baseContracts": [
                {
                  "baseName": {
                    "id": 311,
                    "name": "IUniswapV2Router01",
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 307,
                    "src": "131:18:1"
                  },
                  "id": 312,
                  "nodeType": "InheritanceSpecifier",
                  "src": "131:18:1"
                }
              ],
              "contractDependencies": [
                307
              ],
              "contractKind": "interface",
              "fullyImplemented": false,
              "id": 395,
              "linearizedBaseContracts": [
                395,
                307
              ],
              "name": "IUniswapV2Router02",
              "nameLocation": "109:18:1",
              "nodeType": "ContractDefinition",
              "nodes": [
                {
                  "functionSelector": "af2979eb",
                  "id": 329,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "removeLiquidityETHSupportingFeeOnTransferTokens",
                  "nameLocation": "163:47:1",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 325,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 314,
                        "mutability": "mutable",
                        "name": "token",
                        "nameLocation": "224:5:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 329,
                        "src": "216:13:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 313,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "216:7:1",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 316,
                        "mutability": "mutable",
                        "name": "liquidity",
                        "nameLocation": "243:9:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 329,
                        "src": "235:17:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 315,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "235:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 318,
                        "mutability": "mutable",
                        "name": "amountTokenMin",
                        "nameLocation": "266:14:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 329,
                        "src": "258:22:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 317,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "258:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 320,
                        "mutability": "mutable",
                        "name": "amountETHMin",
                        "nameLocation": "294:12:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 329,
                        "src": "286:20:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 319,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "286:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 322,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "320:2:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 329,
                        "src": "312:10:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 321,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "312:7:1",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 324,
                        "mutability": "mutable",
                        "name": "deadline",
                        "nameLocation": "336:8:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 329,
                        "src": "328:16:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 323,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "328:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "210:138:1"
                  },
                  "returnParameters": {
                    "id": 328,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 327,
                        "mutability": "mutable",
                        "name": "amountETH",
                        "nameLocation": "375:9:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 329,
                        "src": "367:17:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 326,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "367:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "366:19:1"
                  },
                  "scope": 395,
                  "src": "154:232:1",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "5b0d5984",
                  "id": 354,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens",
                  "nameLocation": "399:57:1",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 350,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 331,
                        "mutability": "mutable",
                        "name": "token",
                        "nameLocation": "470:5:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 354,
                        "src": "462:13:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 330,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "462:7:1",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 333,
                        "mutability": "mutable",
                        "name": "liquidity",
                        "nameLocation": "489:9:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 354,
                        "src": "481:17:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 332,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "481:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 335,
                        "mutability": "mutable",
                        "name": "amountTokenMin",
                        "nameLocation": "512:14:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 354,
                        "src": "504:22:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 334,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "504:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 337,
                        "mutability": "mutable",
                        "name": "amountETHMin",
                        "nameLocation": "540:12:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 354,
                        "src": "532:20:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 336,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "532:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 339,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "566:2:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 354,
                        "src": "558:10:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 338,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "558:7:1",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 341,
                        "mutability": "mutable",
                        "name": "deadline",
                        "nameLocation": "582:8:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 354,
                        "src": "574:16:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 340,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "574:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 343,
                        "mutability": "mutable",
                        "name": "approveMax",
                        "nameLocation": "601:10:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 354,
                        "src": "596:15:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "typeName": {
                          "id": 342,
                          "name": "bool",
                          "nodeType": "ElementaryTypeName",
                          "src": "596:4:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 345,
                        "mutability": "mutable",
                        "name": "v",
                        "nameLocation": "623:1:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 354,
                        "src": "617:7:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        "typeName": {
                          "id": 344,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "617:5:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 347,
                        "mutability": "mutable",
                        "name": "r",
                        "nameLocation": "638:1:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 354,
                        "src": "630:9:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "typeName": {
                          "id": 346,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "630:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 349,
                        "mutability": "mutable",
                        "name": "s",
                        "nameLocation": "653:1:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 354,
                        "src": "645:9:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "typeName": {
                          "id": 348,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "645:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "456:202:1"
                  },
                  "returnParameters": {
                    "id": 353,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 352,
                        "mutability": "mutable",
                        "name": "amountETH",
                        "nameLocation": "685:9:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 354,
                        "src": "677:17:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 351,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "677:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "676:19:1"
                  },
                  "scope": 395,
                  "src": "390:306:1",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "5c11d795",
                  "id": 368,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens",
                  "nameLocation": "709:53:1",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 366,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 356,
                        "mutability": "mutable",
                        "name": "amountIn",
                        "nameLocation": "776:8:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 368,
                        "src": "768:16:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 355,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "768:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 358,
                        "mutability": "mutable",
                        "name": "amountOutMin",
                        "nameLocation": "798:12:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 368,
                        "src": "790:20:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 357,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "790:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 361,
                        "mutability": "mutable",
                        "name": "path",
                        "nameLocation": "835:4:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 368,
                        "src": "816:23:1",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 359,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "816:7:1",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 360,
                          "nodeType": "ArrayTypeName",
                          "src": "816:9:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                            "typeString": "address[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 363,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "853:2:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 368,
                        "src": "845:10:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 362,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "845:7:1",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 365,
                        "mutability": "mutable",
                        "name": "deadline",
                        "nameLocation": "869:8:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 368,
                        "src": "861:16:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 364,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "861:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "762:119:1"
                  },
                  "returnParameters": {
                    "id": 367,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "890:0:1"
                  },
                  "scope": 395,
                  "src": "700:191:1",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "b6f9de95",
                  "id": 380,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "swapExactETHForTokensSupportingFeeOnTransferTokens",
                  "nameLocation": "904:50:1",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 378,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 370,
                        "mutability": "mutable",
                        "name": "amountOutMin",
                        "nameLocation": "968:12:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 380,
                        "src": "960:20:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 369,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "960:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 373,
                        "mutability": "mutable",
                        "name": "path",
                        "nameLocation": "1005:4:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 380,
                        "src": "986:23:1",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 371,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "986:7:1",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 372,
                          "nodeType": "ArrayTypeName",
                          "src": "986:9:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                            "typeString": "address[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 375,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "1023:2:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 380,
                        "src": "1015:10:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 374,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1015:7:1",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 377,
                        "mutability": "mutable",
                        "name": "deadline",
                        "nameLocation": "1039:8:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 380,
                        "src": "1031:16:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 376,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1031:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "954:97:1"
                  },
                  "returnParameters": {
                    "id": 379,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "1068:0:1"
                  },
                  "scope": 395,
                  "src": "895:174:1",
                  "stateMutability": "payable",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "functionSelector": "791ac947",
                  "id": 394,
                  "implemented": false,
                  "kind": "function",
                  "modifiers": [],
                  "name": "swapExactTokensForETHSupportingFeeOnTransferTokens",
                  "nameLocation": "1082:50:1",
                  "nodeType": "FunctionDefinition",
                  "parameters": {
                    "id": 392,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 382,
                        "mutability": "mutable",
                        "name": "amountIn",
                        "nameLocation": "1146:8:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 394,
                        "src": "1138:16:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 381,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1138:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 384,
                        "mutability": "mutable",
                        "name": "amountOutMin",
                        "nameLocation": "1168:12:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 394,
                        "src": "1160:20:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 383,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1160:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 387,
                        "mutability": "mutable",
                        "name": "path",
                        "nameLocation": "1205:4:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 394,
                        "src": "1186:23:1",
                        "stateVariable": false,
                        "storageLocation": "calldata",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[]"
                        },
                        "typeName": {
                          "baseType": {
                            "id": 385,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "1186:7:1",
                            "stateMutability": "nonpayable",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "id": 386,
                          "nodeType": "ArrayTypeName",
                          "src": "1186:9:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                            "typeString": "address[]"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 389,
                        "mutability": "mutable",
                        "name": "to",
                        "nameLocation": "1223:2:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 394,
                        "src": "1215:10:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 388,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1215:7:1",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 391,
                        "mutability": "mutable",
                        "name": "deadline",
                        "nameLocation": "1239:8:1",
                        "nodeType": "VariableDeclaration",
                        "scope": 394,
                        "src": "1231:16:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 390,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1231:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "src": "1132:119:1"
                  },
                  "returnParameters": {
                    "id": 393,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "1260:0:1"
                  },
                  "scope": 395,
                  "src": "1073:188:1",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "external"
                }
              ],
              "scope": 396,
              "src": "99:1164:1"
            }
          ],
          "src": "37:1227:1"
        },
        "id": 1
      }
    }
  }
}
