{
  "abi": [],
  "allSourcePaths": {
    "53": "node_modules/@aave/protocol-v2/contracts/protocol/libraries/configuration/ReserveConfiguration.sol",
    "55": "node_modules/@aave/protocol-v2/contracts/protocol/libraries/helpers/Errors.sol"
  },
  "ast": {
    "absolutePath": "node_modules/@aave/protocol-v2/contracts/protocol/libraries/configuration/ReserveConfiguration.sol",
    "exportedSymbols": {
      "DataTypes": [
        22839
      ],
      "Errors": [
        27569
      ],
      "ReserveConfiguration": [
        23799
      ]
    },
    "id": 23800,
    "license": "agpl-3.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 23057,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "37:23:53"
      },
      {
        "absolutePath": "node_modules/@aave/protocol-v2/contracts/protocol/libraries/helpers/Errors.sol",
        "file": "../helpers/Errors.sol",
        "id": 23059,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 23800,
        "sourceUnit": 27570,
        "src": "62:45:53",
        "symbolAliases": [
          {
            "foreign": {
              "id": 23058,
              "name": "Errors",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "src": "70:6:53",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "node_modules/@aave/protocol-v2/contracts/protocol/libraries/types/DataTypes.sol",
        "file": "../types/DataTypes.sol",
        "id": 23061,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 23800,
        "sourceUnit": 22840,
        "src": "108:49:53",
        "symbolAliases": [
          {
            "foreign": {
              "id": 23060,
              "name": "DataTypes",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "src": "116:9:53",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "library",
        "documentation": {
          "id": 23062,
          "nodeType": "StructuredDocumentation",
          "src": "159:137:53",
          "text": " @title ReserveConfiguration library\n @author Aave\n @notice Implements the bitmap logic to handle the reserve configuration"
        },
        "fullyImplemented": true,
        "id": 23799,
        "linearizedBaseContracts": [
          23799
        ],
        "name": "ReserveConfiguration",
        "nameLocation": "305:20:53",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "id": 23065,
            "mutability": "constant",
            "name": "LTV_MASK",
            "nameLocation": "347:8:53",
            "nodeType": "VariableDeclaration",
            "scope": 23799,
            "src": "330:112:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 23063,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "330:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "307846464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464630303030",
              "id": 23064,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "376:66:53",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129574400_by_1",
                "typeString": "int_const 1157...(70 digits omitted)...4400"
              },
              "value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 23068,
            "mutability": "constant",
            "name": "LIQUIDATION_THRESHOLD_MASK",
            "nameLocation": "482:26:53",
            "nodeType": "VariableDeclaration",
            "scope": 23799,
            "src": "465:112:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 23066,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "465:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "307846464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646463030303046464646",
              "id": 23067,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "511:66:53",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007908834738175_by_1",
                "typeString": "int_const 1157...(70 digits omitted)...8175"
              },
              "value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 23071,
            "mutability": "constant",
            "name": "LIQUIDATION_BONUS_MASK",
            "nameLocation": "617:22:53",
            "nodeType": "VariableDeclaration",
            "scope": 23799,
            "src": "600:112:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 23069,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "600:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "307846464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646303030304646464646464646",
              "id": 23070,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "646:66:53",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457583726442447896575_by_1",
                "typeString": "int_const 1157...(70 digits omitted)...6575"
              },
              "value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFF"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 23074,
            "mutability": "constant",
            "name": "DECIMALS_MASK",
            "nameLocation": "752:13:53",
            "nodeType": "VariableDeclaration",
            "scope": 23799,
            "src": "735:112:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 23072,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "735:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "307846464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646463030464646464646464646464646",
              "id": 23073,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "781:66:53",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457512231794068422655_by_1",
                "typeString": "int_const 1157...(70 digits omitted)...2655"
              },
              "value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFF"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 23077,
            "mutability": "constant",
            "name": "ACTIVE_MASK",
            "nameLocation": "887:11:53",
            "nodeType": "VariableDeclaration",
            "scope": 23799,
            "src": "870:112:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 23075,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "870:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "307846464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646454646464646464646464646464646",
              "id": 23076,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "916:66:53",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457511950319091711999_by_1",
                "typeString": "int_const 1157...(70 digits omitted)...1999"
              },
              "value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFF"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 23080,
            "mutability": "constant",
            "name": "FROZEN_MASK",
            "nameLocation": "1022:11:53",
            "nodeType": "VariableDeclaration",
            "scope": 23799,
            "src": "1005:112:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 23078,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1005:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "307846464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646444646464646464646464646464646",
              "id": 23079,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1051:66:53",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457439892725053784063_by_1",
                "typeString": "int_const 1157...(70 digits omitted)...4063"
              },
              "value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFF"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 23083,
            "mutability": "constant",
            "name": "BORROWING_MASK",
            "nameLocation": "1157:14:53",
            "nodeType": "VariableDeclaration",
            "scope": 23799,
            "src": "1140:112:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 23081,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1140:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "307846464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646424646464646464646464646464646",
              "id": 23082,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1186:66:53",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457295777536977928191_by_1",
                "typeString": "int_const 1157...(70 digits omitted)...8191"
              },
              "value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFF"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 23086,
            "mutability": "constant",
            "name": "STABLE_BORROWING_MASK",
            "nameLocation": "1292:21:53",
            "nodeType": "VariableDeclaration",
            "scope": 23799,
            "src": "1275:112:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 23084,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1275:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "307846464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646374646464646464646464646464646",
              "id": 23085,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1321:66:53",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457007547160826216447_by_1",
                "typeString": "int_const 1157...(70 digits omitted)...6447"
              },
              "value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFF"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 23089,
            "mutability": "constant",
            "name": "RESERVE_FACTOR_MASK",
            "nameLocation": "1427:19:53",
            "nodeType": "VariableDeclaration",
            "scope": 23799,
            "src": "1410:112:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 23087,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1410:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "307846464646464646464646464646464646464646464646464646464646464646464646464646464646464646463030303046464646464646464646464646464646",
              "id": 23088,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1456:66:53",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640562830550211137357664485375_by_1",
                "typeString": "int_const 1157...(70 digits omitted)...5375"
              },
              "value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFF"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "documentation": {
              "id": 23090,
              "nodeType": "StructuredDocumentation",
              "src": "1546:83:53",
              "text": "@dev For the LTV, the start bit is 0 (up to 15), hence no bitshifting is needed"
            },
            "id": 23093,
            "mutability": "constant",
            "name": "LIQUIDATION_THRESHOLD_START_BIT_POSITION",
            "nameLocation": "1649:40:53",
            "nodeType": "VariableDeclaration",
            "scope": 23799,
            "src": "1632:62:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 23091,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1632:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "3136",
              "id": 23092,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1692:2:53",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_16_by_1",
                "typeString": "int_const 16"
              },
              "value": "16"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 23096,
            "mutability": "constant",
            "name": "LIQUIDATION_BONUS_START_BIT_POSITION",
            "nameLocation": "1715:36:53",
            "nodeType": "VariableDeclaration",
            "scope": 23799,
            "src": "1698:58:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 23094,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1698:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "3332",
              "id": 23095,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1754:2:53",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_32_by_1",
                "typeString": "int_const 32"
              },
              "value": "32"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 23099,
            "mutability": "constant",
            "name": "RESERVE_DECIMALS_START_BIT_POSITION",
            "nameLocation": "1777:35:53",
            "nodeType": "VariableDeclaration",
            "scope": 23799,
            "src": "1760:57:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 23097,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1760:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "3438",
              "id": 23098,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1815:2:53",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_48_by_1",
                "typeString": "int_const 48"
              },
              "value": "48"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 23102,
            "mutability": "constant",
            "name": "IS_ACTIVE_START_BIT_POSITION",
            "nameLocation": "1838:28:53",
            "nodeType": "VariableDeclaration",
            "scope": 23799,
            "src": "1821:50:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 23100,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1821:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "3536",
              "id": 23101,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1869:2:53",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_56_by_1",
                "typeString": "int_const 56"
              },
              "value": "56"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 23105,
            "mutability": "constant",
            "name": "IS_FROZEN_START_BIT_POSITION",
            "nameLocation": "1892:28:53",
            "nodeType": "VariableDeclaration",
            "scope": 23799,
            "src": "1875:50:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 23103,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1875:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "3537",
              "id": 23104,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1923:2:53",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_57_by_1",
                "typeString": "int_const 57"
              },
              "value": "57"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 23108,
            "mutability": "constant",
            "name": "BORROWING_ENABLED_START_BIT_POSITION",
            "nameLocation": "1946:36:53",
            "nodeType": "VariableDeclaration",
            "scope": 23799,
            "src": "1929:58:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 23106,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1929:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "3538",
              "id": 23107,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1985:2:53",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_58_by_1",
                "typeString": "int_const 58"
              },
              "value": "58"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 23111,
            "mutability": "constant",
            "name": "STABLE_BORROWING_ENABLED_START_BIT_POSITION",
            "nameLocation": "2008:43:53",
            "nodeType": "VariableDeclaration",
            "scope": 23799,
            "src": "1991:65:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 23109,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1991:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "3539",
              "id": 23110,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "2054:2:53",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_59_by_1",
                "typeString": "int_const 59"
              },
              "value": "59"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 23114,
            "mutability": "constant",
            "name": "RESERVE_FACTOR_START_BIT_POSITION",
            "nameLocation": "2077:33:53",
            "nodeType": "VariableDeclaration",
            "scope": 23799,
            "src": "2060:55:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 23112,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "2060:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "3634",
              "id": 23113,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "2113:2:53",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_64_by_1",
                "typeString": "int_const 64"
              },
              "value": "64"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 23117,
            "mutability": "constant",
            "name": "MAX_VALID_LTV",
            "nameLocation": "2137:13:53",
            "nodeType": "VariableDeclaration",
            "scope": 23799,
            "src": "2120:38:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 23115,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "2120:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "3635353335",
              "id": 23116,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "2153:5:53",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_65535_by_1",
                "typeString": "int_const 65535"
              },
              "value": "65535"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 23120,
            "mutability": "constant",
            "name": "MAX_VALID_LIQUIDATION_THRESHOLD",
            "nameLocation": "2179:31:53",
            "nodeType": "VariableDeclaration",
            "scope": 23799,
            "src": "2162:56:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 23118,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "2162:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "3635353335",
              "id": 23119,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "2213:5:53",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_65535_by_1",
                "typeString": "int_const 65535"
              },
              "value": "65535"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 23123,
            "mutability": "constant",
            "name": "MAX_VALID_LIQUIDATION_BONUS",
            "nameLocation": "2239:27:53",
            "nodeType": "VariableDeclaration",
            "scope": 23799,
            "src": "2222:52:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 23121,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "2222:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "3635353335",
              "id": 23122,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "2269:5:53",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_65535_by_1",
                "typeString": "int_const 65535"
              },
              "value": "65535"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 23126,
            "mutability": "constant",
            "name": "MAX_VALID_DECIMALS",
            "nameLocation": "2295:18:53",
            "nodeType": "VariableDeclaration",
            "scope": 23799,
            "src": "2278:41:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 23124,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "2278:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "323535",
              "id": 23125,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "2316:3:53",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_255_by_1",
                "typeString": "int_const 255"
              },
              "value": "255"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 23129,
            "mutability": "constant",
            "name": "MAX_VALID_RESERVE_FACTOR",
            "nameLocation": "2340:24:53",
            "nodeType": "VariableDeclaration",
            "scope": 23799,
            "src": "2323:49:53",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 23127,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "2323:7:53",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "3635353335",
              "id": 23128,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "2367:5:53",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_65535_by_1",
                "typeString": "int_const 65535"
              },
              "value": "65535"
            },
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23158,
              "nodeType": "Block",
              "src": "2599:110:53",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 23141,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 23139,
                          "name": "ltv",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23135,
                          "src": "2613:3:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "id": 23140,
                          "name": "MAX_VALID_LTV",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23117,
                          "src": "2620:13:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "2613:20:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "expression": {
                          "id": 23142,
                          "name": "Errors",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 27569,
                          "src": "2635:6:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Errors_$27569_$",
                            "typeString": "type(library Errors)"
                          }
                        },
                        "id": 23143,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "RC_INVALID_LTV",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 27524,
                        "src": "2635:21:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 23138,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "2605:7:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 23144,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2605:52:53",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 23145,
                  "nodeType": "ExpressionStatement",
                  "src": "2605:52:53"
                },
                {
                  "expression": {
                    "id": 23156,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 23146,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23133,
                        "src": "2664:4:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                          "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                        }
                      },
                      "id": 23148,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "data",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22830,
                      "src": "2664:9:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 23155,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "components": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 23152,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 23149,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23133,
                                "src": "2677:4:53",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                                  "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                                }
                              },
                              "id": 23150,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22830,
                              "src": "2677:9:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "&",
                            "rightExpression": {
                              "id": 23151,
                              "name": "LTV_MASK",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23065,
                              "src": "2689:8:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "2677:20:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "id": 23153,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "2676:22:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "|",
                      "rightExpression": {
                        "id": 23154,
                        "name": "ltv",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23135,
                        "src": "2701:3:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "2676:28:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2664:40:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23157,
                  "nodeType": "ExpressionStatement",
                  "src": "2664:40:53"
                }
              ]
            },
            "documentation": {
              "id": 23130,
              "nodeType": "StructuredDocumentation",
              "src": "2377:129:53",
              "text": " @dev Sets the Loan to Value of the reserve\n @param self The reserve configuration\n @param ltv the new ltv*"
            },
            "id": 23159,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setLtv",
            "nameLocation": "2518:6:53",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23136,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23133,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "2566:4:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23159,
                  "src": "2525:45:53",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                    "typeString": "struct DataTypes.ReserveConfigurationMap"
                  },
                  "typeName": {
                    "id": 23132,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 23131,
                      "name": "DataTypes.ReserveConfigurationMap",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 22831,
                      "src": "2525:33:53"
                    },
                    "referencedDeclaration": 22831,
                    "src": "2525:33:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                      "typeString": "struct DataTypes.ReserveConfigurationMap"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23135,
                  "mutability": "mutable",
                  "name": "ltv",
                  "nameLocation": "2580:3:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23159,
                  "src": "2572:11:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23134,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2572:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2524:60:53"
            },
            "returnParameters": {
              "id": 23137,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2599:0:53"
            },
            "scope": 23799,
            "src": "2509:200:53",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23174,
              "nodeType": "Block",
              "src": "2944:39:53",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 23172,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 23168,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23163,
                        "src": "2957:4:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                          "typeString": "struct DataTypes.ReserveConfigurationMap storage pointer"
                        }
                      },
                      "id": 23169,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "data",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22830,
                      "src": "2957:9:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&",
                    "rightExpression": {
                      "id": 23171,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "~",
                      "prefix": true,
                      "src": "2969:9:53",
                      "subExpression": {
                        "id": 23170,
                        "name": "LTV_MASK",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23065,
                        "src": "2970:8:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2957:21:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 23167,
                  "id": 23173,
                  "nodeType": "Return",
                  "src": "2950:28:53"
                }
              ]
            },
            "documentation": {
              "id": 23160,
              "nodeType": "StructuredDocumentation",
              "src": "2713:132:53",
              "text": " @dev Gets the Loan to Value of the reserve\n @param self The reserve configuration\n @return The loan to value*"
            },
            "id": 23175,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getLtv",
            "nameLocation": "2857:6:53",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23164,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23163,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "2906:4:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23175,
                  "src": "2864:46:53",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                    "typeString": "struct DataTypes.ReserveConfigurationMap"
                  },
                  "typeName": {
                    "id": 23162,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 23161,
                      "name": "DataTypes.ReserveConfigurationMap",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 22831,
                      "src": "2864:33:53"
                    },
                    "referencedDeclaration": 22831,
                    "src": "2864:33:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                      "typeString": "struct DataTypes.ReserveConfigurationMap"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2863:48:53"
            },
            "returnParameters": {
              "id": 23167,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23166,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 23175,
                  "src": "2935:7:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23165,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2935:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2934:9:53"
            },
            "scope": 23799,
            "src": "2848:135:53",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23207,
              "nodeType": "Block",
              "src": "3274:226:53",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 23187,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 23185,
                          "name": "threshold",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23181,
                          "src": "3288:9:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "id": 23186,
                          "name": "MAX_VALID_LIQUIDATION_THRESHOLD",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23120,
                          "src": "3301:31:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "3288:44:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "expression": {
                          "id": 23188,
                          "name": "Errors",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 27569,
                          "src": "3334:6:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Errors_$27569_$",
                            "typeString": "type(library Errors)"
                          }
                        },
                        "id": 23189,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "RC_INVALID_LIQ_THRESHOLD",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 27527,
                        "src": "3334:31:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 23184,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "3280:7:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 23190,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3280:86:53",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 23191,
                  "nodeType": "ExpressionStatement",
                  "src": "3280:86:53"
                },
                {
                  "expression": {
                    "id": 23205,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 23192,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23179,
                        "src": "3373:4:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                          "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                        }
                      },
                      "id": 23194,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "data",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22830,
                      "src": "3373:9:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 23204,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "components": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 23198,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 23195,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23179,
                                "src": "3392:4:53",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                                  "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                                }
                              },
                              "id": 23196,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22830,
                              "src": "3392:9:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "&",
                            "rightExpression": {
                              "id": 23197,
                              "name": "LIQUIDATION_THRESHOLD_MASK",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23068,
                              "src": "3404:26:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "3392:38:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "id": 23199,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "3391:40:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "|",
                      "rightExpression": {
                        "components": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 23202,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 23200,
                              "name": "threshold",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23181,
                              "src": "3441:9:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "id": 23201,
                              "name": "LIQUIDATION_THRESHOLD_START_BIT_POSITION",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23093,
                              "src": "3454:40:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "3441:53:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "id": 23203,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "3440:55:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "3391:104:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3373:122:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23206,
                  "nodeType": "ExpressionStatement",
                  "src": "3373:122:53"
                }
              ]
            },
            "documentation": {
              "id": 23176,
              "nodeType": "StructuredDocumentation",
              "src": "2987:161:53",
              "text": " @dev Sets the liquidation threshold of the reserve\n @param self The reserve configuration\n @param threshold The new liquidation threshold*"
            },
            "id": 23208,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setLiquidationThreshold",
            "nameLocation": "3160:23:53",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23182,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23179,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "3225:4:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23208,
                  "src": "3184:45:53",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                    "typeString": "struct DataTypes.ReserveConfigurationMap"
                  },
                  "typeName": {
                    "id": 23178,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 23177,
                      "name": "DataTypes.ReserveConfigurationMap",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 22831,
                      "src": "3184:33:53"
                    },
                    "referencedDeclaration": 22831,
                    "src": "3184:33:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                      "typeString": "struct DataTypes.ReserveConfigurationMap"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23181,
                  "mutability": "mutable",
                  "name": "threshold",
                  "nameLocation": "3239:9:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23208,
                  "src": "3231:17:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23180,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3231:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3183:66:53"
            },
            "returnParameters": {
              "id": 23183,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3274:0:53"
            },
            "scope": 23799,
            "src": "3151:349:53",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23226,
              "nodeType": "Block",
              "src": "3782:103:53",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 23224,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "components": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 23221,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 23217,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23212,
                              "src": "3796:4:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                                "typeString": "struct DataTypes.ReserveConfigurationMap storage pointer"
                              }
                            },
                            "id": 23218,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22830,
                            "src": "3796:9:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "id": 23220,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "~",
                            "prefix": true,
                            "src": "3808:27:53",
                            "subExpression": {
                              "id": 23219,
                              "name": "LIQUIDATION_THRESHOLD_MASK",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23068,
                              "src": "3809:26:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "3796:39:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 23222,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "3795:41:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">>",
                    "rightExpression": {
                      "id": 23223,
                      "name": "LIQUIDATION_THRESHOLD_START_BIT_POSITION",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23093,
                      "src": "3840:40:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3795:85:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 23216,
                  "id": 23225,
                  "nodeType": "Return",
                  "src": "3788:92:53"
                }
              ]
            },
            "documentation": {
              "id": 23209,
              "nodeType": "StructuredDocumentation",
              "src": "3504:148:53",
              "text": " @dev Gets the liquidation threshold of the reserve\n @param self The reserve configuration\n @return The liquidation threshold*"
            },
            "id": 23227,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getLiquidationThreshold",
            "nameLocation": "3664:23:53",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23213,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23212,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "3730:4:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23227,
                  "src": "3688:46:53",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                    "typeString": "struct DataTypes.ReserveConfigurationMap"
                  },
                  "typeName": {
                    "id": 23211,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 23210,
                      "name": "DataTypes.ReserveConfigurationMap",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 22831,
                      "src": "3688:33:53"
                    },
                    "referencedDeclaration": 22831,
                    "src": "3688:33:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                      "typeString": "struct DataTypes.ReserveConfigurationMap"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3687:48:53"
            },
            "returnParameters": {
              "id": 23216,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23215,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 23227,
                  "src": "3771:7:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23214,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3771:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3770:9:53"
            },
            "scope": 23799,
            "src": "3655:230:53",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23259,
              "nodeType": "Block",
              "src": "4156:202:53",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 23239,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 23237,
                          "name": "bonus",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23233,
                          "src": "4170:5:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "id": 23238,
                          "name": "MAX_VALID_LIQUIDATION_BONUS",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23123,
                          "src": "4179:27:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "4170:36:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "expression": {
                          "id": 23240,
                          "name": "Errors",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 27569,
                          "src": "4208:6:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Errors_$27569_$",
                            "typeString": "type(library Errors)"
                          }
                        },
                        "id": 23241,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "RC_INVALID_LIQ_BONUS",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 27530,
                        "src": "4208:27:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 23236,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "4162:7:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 23242,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4162:74:53",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 23243,
                  "nodeType": "ExpressionStatement",
                  "src": "4162:74:53"
                },
                {
                  "expression": {
                    "id": 23257,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 23244,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23231,
                        "src": "4243:4:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                          "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                        }
                      },
                      "id": 23246,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "data",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22830,
                      "src": "4243:9:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 23256,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "components": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 23250,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 23247,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23231,
                                "src": "4262:4:53",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                                  "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                                }
                              },
                              "id": 23248,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22830,
                              "src": "4262:9:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "&",
                            "rightExpression": {
                              "id": 23249,
                              "name": "LIQUIDATION_BONUS_MASK",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23071,
                              "src": "4274:22:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "4262:34:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "id": 23251,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "4261:36:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "|",
                      "rightExpression": {
                        "components": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 23254,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 23252,
                              "name": "bonus",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23233,
                              "src": "4307:5:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "id": 23253,
                              "name": "LIQUIDATION_BONUS_START_BIT_POSITION",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23096,
                              "src": "4316:36:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "4307:45:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "id": 23255,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "4306:47:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "4261:92:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4243:110:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23258,
                  "nodeType": "ExpressionStatement",
                  "src": "4243:110:53"
                }
              ]
            },
            "documentation": {
              "id": 23228,
              "nodeType": "StructuredDocumentation",
              "src": "3889:149:53",
              "text": " @dev Sets the liquidation bonus of the reserve\n @param self The reserve configuration\n @param bonus The new liquidation bonus*"
            },
            "id": 23260,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setLiquidationBonus",
            "nameLocation": "4050:19:53",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23234,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23231,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "4111:4:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23260,
                  "src": "4070:45:53",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                    "typeString": "struct DataTypes.ReserveConfigurationMap"
                  },
                  "typeName": {
                    "id": 23230,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 23229,
                      "name": "DataTypes.ReserveConfigurationMap",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 22831,
                      "src": "4070:33:53"
                    },
                    "referencedDeclaration": 22831,
                    "src": "4070:33:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                      "typeString": "struct DataTypes.ReserveConfigurationMap"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23233,
                  "mutability": "mutable",
                  "name": "bonus",
                  "nameLocation": "4125:5:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23260,
                  "src": "4117:13:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23232,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4117:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4069:62:53"
            },
            "returnParameters": {
              "id": 23235,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4156:0:53"
            },
            "scope": 23799,
            "src": "4041:317:53",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23278,
              "nodeType": "Block",
              "src": "4628:95:53",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 23276,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "components": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 23273,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 23269,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23264,
                              "src": "4642:4:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                                "typeString": "struct DataTypes.ReserveConfigurationMap storage pointer"
                              }
                            },
                            "id": 23270,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22830,
                            "src": "4642:9:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "id": 23272,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "~",
                            "prefix": true,
                            "src": "4654:23:53",
                            "subExpression": {
                              "id": 23271,
                              "name": "LIQUIDATION_BONUS_MASK",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23071,
                              "src": "4655:22:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "4642:35:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 23274,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "4641:37:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">>",
                    "rightExpression": {
                      "id": 23275,
                      "name": "LIQUIDATION_BONUS_START_BIT_POSITION",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23096,
                      "src": "4682:36:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4641:77:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 23268,
                  "id": 23277,
                  "nodeType": "Return",
                  "src": "4634:84:53"
                }
              ]
            },
            "documentation": {
              "id": 23261,
              "nodeType": "StructuredDocumentation",
              "src": "4362:140:53",
              "text": " @dev Gets the liquidation bonus of the reserve\n @param self The reserve configuration\n @return The liquidation bonus*"
            },
            "id": 23279,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getLiquidationBonus",
            "nameLocation": "4514:19:53",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23265,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23264,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "4576:4:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23279,
                  "src": "4534:46:53",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                    "typeString": "struct DataTypes.ReserveConfigurationMap"
                  },
                  "typeName": {
                    "id": 23263,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 23262,
                      "name": "DataTypes.ReserveConfigurationMap",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 22831,
                      "src": "4534:33:53"
                    },
                    "referencedDeclaration": 22831,
                    "src": "4534:33:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                      "typeString": "struct DataTypes.ReserveConfigurationMap"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4533:48:53"
            },
            "returnParameters": {
              "id": 23268,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23267,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 23279,
                  "src": "4617:7:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23266,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4617:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4616:9:53"
            },
            "scope": 23799,
            "src": "4505:218:53",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23311,
              "nodeType": "Block",
              "src": "4994:176:53",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 23291,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 23289,
                          "name": "decimals",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23285,
                          "src": "5008:8:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "id": 23290,
                          "name": "MAX_VALID_DECIMALS",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23126,
                          "src": "5020:18:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "5008:30:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "expression": {
                          "id": 23292,
                          "name": "Errors",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 27569,
                          "src": "5040:6:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Errors_$27569_$",
                            "typeString": "type(library Errors)"
                          }
                        },
                        "id": 23293,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "RC_INVALID_DECIMALS",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 27533,
                        "src": "5040:26:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 23288,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "5000:7:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 23294,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5000:67:53",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 23295,
                  "nodeType": "ExpressionStatement",
                  "src": "5000:67:53"
                },
                {
                  "expression": {
                    "id": 23309,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 23296,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23283,
                        "src": "5074:4:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                          "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                        }
                      },
                      "id": 23298,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "data",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22830,
                      "src": "5074:9:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 23308,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "components": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 23302,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 23299,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23283,
                                "src": "5087:4:53",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                                  "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                                }
                              },
                              "id": 23300,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22830,
                              "src": "5087:9:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "&",
                            "rightExpression": {
                              "id": 23301,
                              "name": "DECIMALS_MASK",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23074,
                              "src": "5099:13:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "5087:25:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "id": 23303,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "5086:27:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "|",
                      "rightExpression": {
                        "components": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 23306,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 23304,
                              "name": "decimals",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23285,
                              "src": "5117:8:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "id": 23305,
                              "name": "RESERVE_DECIMALS_START_BIT_POSITION",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23099,
                              "src": "5129:35:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "5117:47:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "id": 23307,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "5116:49:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "5086:79:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5074:91:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23310,
                  "nodeType": "ExpressionStatement",
                  "src": "5074:91:53"
                }
              ]
            },
            "documentation": {
              "id": 23280,
              "nodeType": "StructuredDocumentation",
              "src": "4727:154:53",
              "text": " @dev Sets the decimals of the underlying asset of the reserve\n @param self The reserve configuration\n @param decimals The decimals*"
            },
            "id": 23312,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setDecimals",
            "nameLocation": "4893:11:53",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23286,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23283,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "4946:4:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23312,
                  "src": "4905:45:53",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                    "typeString": "struct DataTypes.ReserveConfigurationMap"
                  },
                  "typeName": {
                    "id": 23282,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 23281,
                      "name": "DataTypes.ReserveConfigurationMap",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 22831,
                      "src": "4905:33:53"
                    },
                    "referencedDeclaration": 22831,
                    "src": "4905:33:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                      "typeString": "struct DataTypes.ReserveConfigurationMap"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23285,
                  "mutability": "mutable",
                  "name": "decimals",
                  "nameLocation": "4960:8:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23312,
                  "src": "4952:16:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23284,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4952:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4904:65:53"
            },
            "returnParameters": {
              "id": 23287,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4994:0:53"
            },
            "scope": 23799,
            "src": "4884:286:53",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23330,
              "nodeType": "Block",
              "src": "5451:85:53",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 23328,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "components": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 23325,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 23321,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23316,
                              "src": "5465:4:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                                "typeString": "struct DataTypes.ReserveConfigurationMap storage pointer"
                              }
                            },
                            "id": 23322,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22830,
                            "src": "5465:9:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "id": 23324,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "~",
                            "prefix": true,
                            "src": "5477:14:53",
                            "subExpression": {
                              "id": 23323,
                              "name": "DECIMALS_MASK",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23074,
                              "src": "5478:13:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "5465:26:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 23326,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "5464:28:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">>",
                    "rightExpression": {
                      "id": 23327,
                      "name": "RESERVE_DECIMALS_START_BIT_POSITION",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23099,
                      "src": "5496:35:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5464:67:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 23320,
                  "id": 23329,
                  "nodeType": "Return",
                  "src": "5457:74:53"
                }
              ]
            },
            "documentation": {
              "id": 23313,
              "nodeType": "StructuredDocumentation",
              "src": "5174:159:53",
              "text": " @dev Gets the decimals of the underlying asset of the reserve\n @param self The reserve configuration\n @return The decimals of the asset*"
            },
            "id": 23331,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getDecimals",
            "nameLocation": "5345:11:53",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23317,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23316,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "5399:4:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23331,
                  "src": "5357:46:53",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                    "typeString": "struct DataTypes.ReserveConfigurationMap"
                  },
                  "typeName": {
                    "id": 23315,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 23314,
                      "name": "DataTypes.ReserveConfigurationMap",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 22831,
                      "src": "5357:33:53"
                    },
                    "referencedDeclaration": 22831,
                    "src": "5357:33:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                      "typeString": "struct DataTypes.ReserveConfigurationMap"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5356:48:53"
            },
            "returnParameters": {
              "id": 23320,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23319,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 23331,
                  "src": "5440:7:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23318,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5440:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5439:9:53"
            },
            "scope": 23799,
            "src": "5336:200:53",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23361,
              "nodeType": "Block",
              "src": "5772:120:53",
              "statements": [
                {
                  "expression": {
                    "id": 23359,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 23340,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23335,
                        "src": "5778:4:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                          "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                        }
                      },
                      "id": 23342,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "data",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22830,
                      "src": "5778:9:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 23358,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "components": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 23346,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 23343,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23335,
                                "src": "5797:4:53",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                                  "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                                }
                              },
                              "id": 23344,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22830,
                              "src": "5797:9:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "&",
                            "rightExpression": {
                              "id": 23345,
                              "name": "ACTIVE_MASK",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23077,
                              "src": "5809:11:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "5797:23:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "id": 23347,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "5796:25:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "|",
                      "rightExpression": {
                        "components": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 23356,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "arguments": [
                                {
                                  "condition": {
                                    "id": 23350,
                                    "name": "active",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 23337,
                                    "src": "5839:6:53",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "falseExpression": {
                                    "hexValue": "30",
                                    "id": 23352,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "5852:1:53",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    },
                                    "value": "0"
                                  },
                                  "id": 23353,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "Conditional",
                                  "src": "5839:14:53",
                                  "trueExpression": {
                                    "hexValue": "31",
                                    "id": 23351,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "5848:1:53",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    "value": "1"
                                  },
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 23349,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "5831:7:53",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": {
                                  "id": 23348,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "5831:7:53",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 23354,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5831:23:53",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "id": 23355,
                              "name": "IS_ACTIVE_START_BIT_POSITION",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23102,
                              "src": "5858:28:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "5831:55:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "id": 23357,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "5830:57:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "5796:91:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5778:109:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23360,
                  "nodeType": "ExpressionStatement",
                  "src": "5778:109:53"
                }
              ]
            },
            "documentation": {
              "id": 23332,
              "nodeType": "StructuredDocumentation",
              "src": "5540:136:53",
              "text": " @dev Sets the active state of the reserve\n @param self The reserve configuration\n @param active The active state*"
            },
            "id": 23362,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setActive",
            "nameLocation": "5688:9:53",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23338,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23335,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "5739:4:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23362,
                  "src": "5698:45:53",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                    "typeString": "struct DataTypes.ReserveConfigurationMap"
                  },
                  "typeName": {
                    "id": 23334,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 23333,
                      "name": "DataTypes.ReserveConfigurationMap",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 22831,
                      "src": "5698:33:53"
                    },
                    "referencedDeclaration": 22831,
                    "src": "5698:33:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                      "typeString": "struct DataTypes.ReserveConfigurationMap"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23337,
                  "mutability": "mutable",
                  "name": "active",
                  "nameLocation": "5750:6:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23362,
                  "src": "5745:11:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23336,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5745:4:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5697:60:53"
            },
            "returnParameters": {
              "id": 23339,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5772:0:53"
            },
            "scope": 23799,
            "src": "5679:213:53",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23380,
              "nodeType": "Block",
              "src": "6125:49:53",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 23378,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "components": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 23375,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 23371,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23366,
                              "src": "6139:4:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                                "typeString": "struct DataTypes.ReserveConfigurationMap storage pointer"
                              }
                            },
                            "id": 23372,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22830,
                            "src": "6139:9:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "id": 23374,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "~",
                            "prefix": true,
                            "src": "6151:12:53",
                            "subExpression": {
                              "id": 23373,
                              "name": "ACTIVE_MASK",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23077,
                              "src": "6152:11:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "6139:24:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 23376,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "6138:26:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 23377,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "6168:1:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "6138:31:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 23370,
                  "id": 23379,
                  "nodeType": "Return",
                  "src": "6131:38:53"
                }
              ]
            },
            "documentation": {
              "id": 23363,
              "nodeType": "StructuredDocumentation",
              "src": "5896:130:53",
              "text": " @dev Gets the active state of the reserve\n @param self The reserve configuration\n @return The active state*"
            },
            "id": 23381,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getActive",
            "nameLocation": "6038:9:53",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23367,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23366,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "6090:4:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23381,
                  "src": "6048:46:53",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                    "typeString": "struct DataTypes.ReserveConfigurationMap"
                  },
                  "typeName": {
                    "id": 23365,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 23364,
                      "name": "DataTypes.ReserveConfigurationMap",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 22831,
                      "src": "6048:33:53"
                    },
                    "referencedDeclaration": 22831,
                    "src": "6048:33:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                      "typeString": "struct DataTypes.ReserveConfigurationMap"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6047:48:53"
            },
            "returnParameters": {
              "id": 23370,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23369,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 23381,
                  "src": "6119:4:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23368,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6119:4:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6118:6:53"
            },
            "scope": 23799,
            "src": "6029:145:53",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23411,
              "nodeType": "Block",
              "src": "6410:120:53",
              "statements": [
                {
                  "expression": {
                    "id": 23409,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 23390,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23385,
                        "src": "6416:4:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                          "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                        }
                      },
                      "id": 23392,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "data",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22830,
                      "src": "6416:9:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 23408,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "components": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 23396,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 23393,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23385,
                                "src": "6435:4:53",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                                  "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                                }
                              },
                              "id": 23394,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22830,
                              "src": "6435:9:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "&",
                            "rightExpression": {
                              "id": 23395,
                              "name": "FROZEN_MASK",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23080,
                              "src": "6447:11:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "6435:23:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "id": 23397,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "6434:25:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "|",
                      "rightExpression": {
                        "components": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 23406,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "arguments": [
                                {
                                  "condition": {
                                    "id": 23400,
                                    "name": "frozen",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 23387,
                                    "src": "6477:6:53",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "falseExpression": {
                                    "hexValue": "30",
                                    "id": 23402,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "6490:1:53",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    },
                                    "value": "0"
                                  },
                                  "id": 23403,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "Conditional",
                                  "src": "6477:14:53",
                                  "trueExpression": {
                                    "hexValue": "31",
                                    "id": 23401,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "6486:1:53",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    "value": "1"
                                  },
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 23399,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "6469:7:53",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": {
                                  "id": 23398,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "6469:7:53",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 23404,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "6469:23:53",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "id": 23405,
                              "name": "IS_FROZEN_START_BIT_POSITION",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23105,
                              "src": "6496:28:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "6469:55:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "id": 23407,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "6468:57:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "6434:91:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6416:109:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23410,
                  "nodeType": "ExpressionStatement",
                  "src": "6416:109:53"
                }
              ]
            },
            "documentation": {
              "id": 23382,
              "nodeType": "StructuredDocumentation",
              "src": "6178:136:53",
              "text": " @dev Sets the frozen state of the reserve\n @param self The reserve configuration\n @param frozen The frozen state*"
            },
            "id": 23412,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setFrozen",
            "nameLocation": "6326:9:53",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23388,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23385,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "6377:4:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23412,
                  "src": "6336:45:53",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                    "typeString": "struct DataTypes.ReserveConfigurationMap"
                  },
                  "typeName": {
                    "id": 23384,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 23383,
                      "name": "DataTypes.ReserveConfigurationMap",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 22831,
                      "src": "6336:33:53"
                    },
                    "referencedDeclaration": 22831,
                    "src": "6336:33:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                      "typeString": "struct DataTypes.ReserveConfigurationMap"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23387,
                  "mutability": "mutable",
                  "name": "frozen",
                  "nameLocation": "6388:6:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23412,
                  "src": "6383:11:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23386,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6383:4:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6335:60:53"
            },
            "returnParameters": {
              "id": 23389,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6410:0:53"
            },
            "scope": 23799,
            "src": "6317:213:53",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23430,
              "nodeType": "Block",
              "src": "6763:49:53",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 23428,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "components": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 23425,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 23421,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23416,
                              "src": "6777:4:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                                "typeString": "struct DataTypes.ReserveConfigurationMap storage pointer"
                              }
                            },
                            "id": 23422,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22830,
                            "src": "6777:9:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "id": 23424,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "~",
                            "prefix": true,
                            "src": "6789:12:53",
                            "subExpression": {
                              "id": 23423,
                              "name": "FROZEN_MASK",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23080,
                              "src": "6790:11:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "6777:24:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 23426,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "6776:26:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 23427,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "6806:1:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "6776:31:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 23420,
                  "id": 23429,
                  "nodeType": "Return",
                  "src": "6769:38:53"
                }
              ]
            },
            "documentation": {
              "id": 23413,
              "nodeType": "StructuredDocumentation",
              "src": "6534:130:53",
              "text": " @dev Gets the frozen state of the reserve\n @param self The reserve configuration\n @return The frozen state*"
            },
            "id": 23431,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getFrozen",
            "nameLocation": "6676:9:53",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23417,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23416,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "6728:4:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23431,
                  "src": "6686:46:53",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                    "typeString": "struct DataTypes.ReserveConfigurationMap"
                  },
                  "typeName": {
                    "id": 23415,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 23414,
                      "name": "DataTypes.ReserveConfigurationMap",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 22831,
                      "src": "6686:33:53"
                    },
                    "referencedDeclaration": 22831,
                    "src": "6686:33:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                      "typeString": "struct DataTypes.ReserveConfigurationMap"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6685:48:53"
            },
            "returnParameters": {
              "id": 23420,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23419,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 23431,
                  "src": "6757:4:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23418,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6757:4:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6756:6:53"
            },
            "scope": 23799,
            "src": "6667:145:53",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23461,
              "nodeType": "Block",
              "src": "7120:132:53",
              "statements": [
                {
                  "expression": {
                    "id": 23459,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 23440,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23435,
                        "src": "7126:4:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                          "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                        }
                      },
                      "id": 23442,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "data",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22830,
                      "src": "7126:9:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 23458,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "components": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 23446,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 23443,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23435,
                                "src": "7145:4:53",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                                  "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                                }
                              },
                              "id": 23444,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22830,
                              "src": "7145:9:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "&",
                            "rightExpression": {
                              "id": 23445,
                              "name": "BORROWING_MASK",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23083,
                              "src": "7157:14:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "7145:26:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "id": 23447,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "7144:28:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "|",
                      "rightExpression": {
                        "components": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 23456,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "arguments": [
                                {
                                  "condition": {
                                    "id": 23450,
                                    "name": "enabled",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 23437,
                                    "src": "7190:7:53",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "falseExpression": {
                                    "hexValue": "30",
                                    "id": 23452,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "7204:1:53",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    },
                                    "value": "0"
                                  },
                                  "id": 23453,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "Conditional",
                                  "src": "7190:15:53",
                                  "trueExpression": {
                                    "hexValue": "31",
                                    "id": 23451,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "7200:1:53",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    "value": "1"
                                  },
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 23449,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "7182:7:53",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": {
                                  "id": 23448,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "7182:7:53",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 23454,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "7182:24:53",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "id": 23455,
                              "name": "BORROWING_ENABLED_START_BIT_POSITION",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23108,
                              "src": "7210:36:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "7182:64:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "id": 23457,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "7181:66:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "7144:103:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7126:121:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23460,
                  "nodeType": "ExpressionStatement",
                  "src": "7126:121:53"
                }
              ]
            },
            "documentation": {
              "id": 23432,
              "nodeType": "StructuredDocumentation",
              "src": "6816:187:53",
              "text": " @dev Enables or disables borrowing on the reserve\n @param self The reserve configuration\n @param enabled True if the borrowing needs to be enabled, false otherwise*"
            },
            "id": 23462,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setBorrowingEnabled",
            "nameLocation": "7015:19:53",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23438,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23435,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "7076:4:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23462,
                  "src": "7035:45:53",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                    "typeString": "struct DataTypes.ReserveConfigurationMap"
                  },
                  "typeName": {
                    "id": 23434,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 23433,
                      "name": "DataTypes.ReserveConfigurationMap",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 22831,
                      "src": "7035:33:53"
                    },
                    "referencedDeclaration": 22831,
                    "src": "7035:33:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                      "typeString": "struct DataTypes.ReserveConfigurationMap"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23437,
                  "mutability": "mutable",
                  "name": "enabled",
                  "nameLocation": "7087:7:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23462,
                  "src": "7082:12:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23436,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "7082:4:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7034:61:53"
            },
            "returnParameters": {
              "id": 23439,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7120:0:53"
            },
            "scope": 23799,
            "src": "7006:246:53",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23480,
              "nodeType": "Block",
              "src": "7515:52:53",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 23478,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "components": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 23475,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 23471,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23466,
                              "src": "7529:4:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                                "typeString": "struct DataTypes.ReserveConfigurationMap storage pointer"
                              }
                            },
                            "id": 23472,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22830,
                            "src": "7529:9:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "id": 23474,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "~",
                            "prefix": true,
                            "src": "7541:15:53",
                            "subExpression": {
                              "id": 23473,
                              "name": "BORROWING_MASK",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23083,
                              "src": "7542:14:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "7529:27:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 23476,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "7528:29:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 23477,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "7561:1:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "7528:34:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 23470,
                  "id": 23479,
                  "nodeType": "Return",
                  "src": "7521:41:53"
                }
              ]
            },
            "documentation": {
              "id": 23463,
              "nodeType": "StructuredDocumentation",
              "src": "7256:136:53",
              "text": " @dev Gets the borrowing state of the reserve\n @param self The reserve configuration\n @return The borrowing state*"
            },
            "id": 23481,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getBorrowingEnabled",
            "nameLocation": "7404:19:53",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23467,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23466,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "7466:4:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23481,
                  "src": "7424:46:53",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                    "typeString": "struct DataTypes.ReserveConfigurationMap"
                  },
                  "typeName": {
                    "id": 23465,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 23464,
                      "name": "DataTypes.ReserveConfigurationMap",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 22831,
                      "src": "7424:33:53"
                    },
                    "referencedDeclaration": 22831,
                    "src": "7424:33:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                      "typeString": "struct DataTypes.ReserveConfigurationMap"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7423:48:53"
            },
            "returnParameters": {
              "id": 23470,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23469,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 23481,
                  "src": "7507:4:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23468,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "7507:4:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7506:6:53"
            },
            "scope": 23799,
            "src": "7395:172:53",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23511,
              "nodeType": "Block",
              "src": "7911:146:53",
              "statements": [
                {
                  "expression": {
                    "id": 23509,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 23490,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23485,
                        "src": "7917:4:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                          "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                        }
                      },
                      "id": 23492,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "data",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22830,
                      "src": "7917:9:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 23508,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "components": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 23496,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 23493,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23485,
                                "src": "7936:4:53",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                                  "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                                }
                              },
                              "id": 23494,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22830,
                              "src": "7936:9:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "&",
                            "rightExpression": {
                              "id": 23495,
                              "name": "STABLE_BORROWING_MASK",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23086,
                              "src": "7948:21:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "7936:33:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "id": 23497,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "7935:35:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "|",
                      "rightExpression": {
                        "components": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 23506,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "arguments": [
                                {
                                  "condition": {
                                    "id": 23500,
                                    "name": "enabled",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 23487,
                                    "src": "7988:7:53",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "falseExpression": {
                                    "hexValue": "30",
                                    "id": 23502,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "8002:1:53",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    },
                                    "value": "0"
                                  },
                                  "id": 23503,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "Conditional",
                                  "src": "7988:15:53",
                                  "trueExpression": {
                                    "hexValue": "31",
                                    "id": 23501,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "7998:1:53",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    "value": "1"
                                  },
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint8",
                                    "typeString": "uint8"
                                  }
                                ],
                                "id": 23499,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "7980:7:53",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": {
                                  "id": 23498,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "7980:7:53",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 23504,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "7980:24:53",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "id": 23505,
                              "name": "STABLE_BORROWING_ENABLED_START_BIT_POSITION",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23111,
                              "src": "8008:43:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "7980:71:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "id": 23507,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "7979:73:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "7935:117:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7917:135:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23510,
                  "nodeType": "ExpressionStatement",
                  "src": "7917:135:53"
                }
              ]
            },
            "documentation": {
              "id": 23482,
              "nodeType": "StructuredDocumentation",
              "src": "7571:211:53",
              "text": " @dev Enables or disables stable rate borrowing on the reserve\n @param self The reserve configuration\n @param enabled True if the stable rate borrowing needs to be enabled, false otherwise*"
            },
            "id": 23512,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setStableRateBorrowingEnabled",
            "nameLocation": "7794:29:53",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23488,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23485,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "7870:4:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23512,
                  "src": "7829:45:53",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                    "typeString": "struct DataTypes.ReserveConfigurationMap"
                  },
                  "typeName": {
                    "id": 23484,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 23483,
                      "name": "DataTypes.ReserveConfigurationMap",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 22831,
                      "src": "7829:33:53"
                    },
                    "referencedDeclaration": 22831,
                    "src": "7829:33:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                      "typeString": "struct DataTypes.ReserveConfigurationMap"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23487,
                  "mutability": "mutable",
                  "name": "enabled",
                  "nameLocation": "7885:7:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23512,
                  "src": "7880:12:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23486,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "7880:4:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7823:73:53"
            },
            "returnParameters": {
              "id": 23489,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7911:0:53"
            },
            "scope": 23799,
            "src": "7785:272:53",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23530,
              "nodeType": "Block",
              "src": "8354:59:53",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 23528,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "components": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 23525,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 23521,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23516,
                              "src": "8368:4:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                                "typeString": "struct DataTypes.ReserveConfigurationMap storage pointer"
                              }
                            },
                            "id": 23522,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22830,
                            "src": "8368:9:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "id": 23524,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "~",
                            "prefix": true,
                            "src": "8380:22:53",
                            "subExpression": {
                              "id": 23523,
                              "name": "STABLE_BORROWING_MASK",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23086,
                              "src": "8381:21:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "8368:34:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 23526,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "8367:36:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 23527,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "8407:1:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "8367:41:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 23520,
                  "id": 23529,
                  "nodeType": "Return",
                  "src": "8360:48:53"
                }
              ]
            },
            "documentation": {
              "id": 23513,
              "nodeType": "StructuredDocumentation",
              "src": "8061:160:53",
              "text": " @dev Gets the stable rate borrowing state of the reserve\n @param self The reserve configuration\n @return The stable rate borrowing state*"
            },
            "id": 23531,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getStableRateBorrowingEnabled",
            "nameLocation": "8233:29:53",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23517,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23516,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "8305:4:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23531,
                  "src": "8263:46:53",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                    "typeString": "struct DataTypes.ReserveConfigurationMap"
                  },
                  "typeName": {
                    "id": 23515,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 23514,
                      "name": "DataTypes.ReserveConfigurationMap",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 22831,
                      "src": "8263:33:53"
                    },
                    "referencedDeclaration": 22831,
                    "src": "8263:33:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                      "typeString": "struct DataTypes.ReserveConfigurationMap"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8262:48:53"
            },
            "returnParameters": {
              "id": 23520,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23519,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 23531,
                  "src": "8346:4:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23518,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8346:4:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8345:6:53"
            },
            "scope": 23799,
            "src": "8224:189:53",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23563,
              "nodeType": "Block",
              "src": "8687:214:53",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 23543,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 23541,
                          "name": "reserveFactor",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23537,
                          "src": "8701:13:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "id": 23542,
                          "name": "MAX_VALID_RESERVE_FACTOR",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23129,
                          "src": "8718:24:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "8701:41:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "expression": {
                          "id": 23544,
                          "name": "Errors",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 27569,
                          "src": "8744:6:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Errors_$27569_$",
                            "typeString": "type(library Errors)"
                          }
                        },
                        "id": 23545,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "RC_INVALID_RESERVE_FACTOR",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 27536,
                        "src": "8744:32:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 23540,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "8693:7:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 23546,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8693:84:53",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 23547,
                  "nodeType": "ExpressionStatement",
                  "src": "8693:84:53"
                },
                {
                  "expression": {
                    "id": 23561,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "expression": {
                        "id": 23548,
                        "name": "self",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23535,
                        "src": "8784:4:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                          "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                        }
                      },
                      "id": 23550,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "data",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22830,
                      "src": "8784:9:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 23560,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "components": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 23554,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 23551,
                                "name": "self",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23535,
                                "src": "8803:4:53",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                                  "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                                }
                              },
                              "id": 23552,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 22830,
                              "src": "8803:9:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "&",
                            "rightExpression": {
                              "id": 23553,
                              "name": "RESERVE_FACTOR_MASK",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23089,
                              "src": "8815:19:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "8803:31:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "id": 23555,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "8802:33:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "|",
                      "rightExpression": {
                        "components": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 23558,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 23556,
                              "name": "reserveFactor",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23537,
                              "src": "8845:13:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "id": 23557,
                              "name": "RESERVE_FACTOR_START_BIT_POSITION",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23114,
                              "src": "8862:33:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "8845:50:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "id": 23559,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "8844:52:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "8802:94:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8784:112:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 23562,
                  "nodeType": "ExpressionStatement",
                  "src": "8784:112:53"
                }
              ]
            },
            "documentation": {
              "id": 23532,
              "nodeType": "StructuredDocumentation",
              "src": "8417:147:53",
              "text": " @dev Sets the reserve factor of the reserve\n @param self The reserve configuration\n @param reserveFactor The reserve factor*"
            },
            "id": 23564,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setReserveFactor",
            "nameLocation": "8576:16:53",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23538,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23535,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "8634:4:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23564,
                  "src": "8593:45:53",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                    "typeString": "struct DataTypes.ReserveConfigurationMap"
                  },
                  "typeName": {
                    "id": 23534,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 23533,
                      "name": "DataTypes.ReserveConfigurationMap",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 22831,
                      "src": "8593:33:53"
                    },
                    "referencedDeclaration": 22831,
                    "src": "8593:33:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                      "typeString": "struct DataTypes.ReserveConfigurationMap"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23537,
                  "mutability": "mutable",
                  "name": "reserveFactor",
                  "nameLocation": "8648:13:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23564,
                  "src": "8640:21:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23536,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8640:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8592:70:53"
            },
            "returnParameters": {
              "id": 23539,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8687:0:53"
            },
            "scope": 23799,
            "src": "8567:334:53",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23582,
              "nodeType": "Block",
              "src": "9162:89:53",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 23580,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "components": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 23577,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 23573,
                              "name": "self",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23568,
                              "src": "9176:4:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                                "typeString": "struct DataTypes.ReserveConfigurationMap storage pointer"
                              }
                            },
                            "id": 23574,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "data",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 22830,
                            "src": "9176:9:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "id": 23576,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "~",
                            "prefix": true,
                            "src": "9188:20:53",
                            "subExpression": {
                              "id": 23575,
                              "name": "RESERVE_FACTOR_MASK",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23089,
                              "src": "9189:19:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "9176:32:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 23578,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "9175:34:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">>",
                    "rightExpression": {
                      "id": 23579,
                      "name": "RESERVE_FACTOR_START_BIT_POSITION",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23114,
                      "src": "9213:33:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "9175:71:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 23572,
                  "id": 23581,
                  "nodeType": "Return",
                  "src": "9168:78:53"
                }
              ]
            },
            "documentation": {
              "id": 23565,
              "nodeType": "StructuredDocumentation",
              "src": "8905:134:53",
              "text": " @dev Gets the reserve factor of the reserve\n @param self The reserve configuration\n @return The reserve factor*"
            },
            "id": 23583,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getReserveFactor",
            "nameLocation": "9051:16:53",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23569,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23568,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "9110:4:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23583,
                  "src": "9068:46:53",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                    "typeString": "struct DataTypes.ReserveConfigurationMap"
                  },
                  "typeName": {
                    "id": 23567,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 23566,
                      "name": "DataTypes.ReserveConfigurationMap",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 22831,
                      "src": "9068:33:53"
                    },
                    "referencedDeclaration": 22831,
                    "src": "9068:33:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                      "typeString": "struct DataTypes.ReserveConfigurationMap"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9067:48:53"
            },
            "returnParameters": {
              "id": 23572,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23571,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 23583,
                  "src": "9151:7:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23570,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9151:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9150:9:53"
            },
            "scope": 23799,
            "src": "9042:209:53",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23633,
              "nodeType": "Block",
              "src": "9627:229:53",
              "statements": [
                {
                  "assignments": [
                    23599
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23599,
                      "mutability": "mutable",
                      "name": "dataLocal",
                      "nameLocation": "9641:9:53",
                      "nodeType": "VariableDeclaration",
                      "scope": 23633,
                      "src": "9633:17:53",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23598,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "9633:7:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 23602,
                  "initialValue": {
                    "expression": {
                      "id": 23600,
                      "name": "self",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23587,
                      "src": "9653:4:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                        "typeString": "struct DataTypes.ReserveConfigurationMap storage pointer"
                      }
                    },
                    "id": 23601,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "data",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 22830,
                    "src": "9653:9:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9633:29:53"
                },
                {
                  "expression": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 23609,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 23606,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 23603,
                                "name": "dataLocal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23599,
                                "src": "9685:9:53",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&",
                              "rightExpression": {
                                "id": 23605,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "~",
                                "prefix": true,
                                "src": "9697:12:53",
                                "subExpression": {
                                  "id": 23604,
                                  "name": "ACTIVE_MASK",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23077,
                                  "src": "9698:11:53",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "9685:24:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 23607,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "9684:26:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 23608,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9714:1:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "9684:31:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 23616,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 23613,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 23610,
                                "name": "dataLocal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23599,
                                "src": "9724:9:53",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&",
                              "rightExpression": {
                                "id": 23612,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "~",
                                "prefix": true,
                                "src": "9736:12:53",
                                "subExpression": {
                                  "id": 23611,
                                  "name": "FROZEN_MASK",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23080,
                                  "src": "9737:11:53",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "9724:24:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 23614,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "9723:26:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 23615,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9753:1:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "9723:31:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 23623,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 23620,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 23617,
                                "name": "dataLocal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23599,
                                "src": "9763:9:53",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&",
                              "rightExpression": {
                                "id": 23619,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "~",
                                "prefix": true,
                                "src": "9775:15:53",
                                "subExpression": {
                                  "id": 23618,
                                  "name": "BORROWING_MASK",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23083,
                                  "src": "9776:14:53",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "9763:27:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 23621,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "9762:29:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 23622,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9795:1:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "9762:34:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 23630,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 23627,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 23624,
                                "name": "dataLocal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23599,
                                "src": "9805:9:53",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&",
                              "rightExpression": {
                                "id": 23626,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "~",
                                "prefix": true,
                                "src": "9817:22:53",
                                "subExpression": {
                                  "id": 23625,
                                  "name": "STABLE_BORROWING_MASK",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23086,
                                  "src": "9818:21:53",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "9805:34:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 23628,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "9804:36:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 23629,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9844:1:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "9804:41:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 23631,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "9676:175:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$_t_bool_$_t_bool_$",
                      "typeString": "tuple(bool,bool,bool,bool)"
                    }
                  },
                  "functionReturnParameters": 23597,
                  "id": 23632,
                  "nodeType": "Return",
                  "src": "9669:182:53"
                }
              ]
            },
            "documentation": {
              "id": 23584,
              "nodeType": "StructuredDocumentation",
              "src": "9255:212:53",
              "text": " @dev Gets the configuration flags of the reserve\n @param self The reserve configuration\n @return The state flags representing active, frozen, borrowing enabled, stableRateBorrowing enabled*"
            },
            "id": 23634,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getFlags",
            "nameLocation": "9479:8:53",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23588,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23587,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "9530:4:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23634,
                  "src": "9488:46:53",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                    "typeString": "struct DataTypes.ReserveConfigurationMap"
                  },
                  "typeName": {
                    "id": 23586,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 23585,
                      "name": "DataTypes.ReserveConfigurationMap",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 22831,
                      "src": "9488:33:53"
                    },
                    "referencedDeclaration": 22831,
                    "src": "9488:33:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                      "typeString": "struct DataTypes.ReserveConfigurationMap"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9487:48:53"
            },
            "returnParameters": {
              "id": 23597,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23590,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 23634,
                  "src": "9578:4:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23589,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "9578:4:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23592,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 23634,
                  "src": "9590:4:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23591,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "9590:4:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23594,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 23634,
                  "src": "9602:4:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23593,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "9602:4:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23596,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 23634,
                  "src": "9614:4:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23595,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "9614:4:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9570:54:53"
            },
            "scope": 23799,
            "src": "9470:386:53",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23690,
              "nodeType": "Block",
              "src": "10270:421:53",
              "statements": [
                {
                  "assignments": [
                    23652
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23652,
                      "mutability": "mutable",
                      "name": "dataLocal",
                      "nameLocation": "10284:9:53",
                      "nodeType": "VariableDeclaration",
                      "scope": 23690,
                      "src": "10276:17:53",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23651,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "10276:7:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 23655,
                  "initialValue": {
                    "expression": {
                      "id": 23653,
                      "name": "self",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23638,
                      "src": "10296:4:53",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                        "typeString": "struct DataTypes.ReserveConfigurationMap storage pointer"
                      }
                    },
                    "id": 23654,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "data",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 22830,
                    "src": "10296:9:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10276:29:53"
                },
                {
                  "expression": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 23659,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 23656,
                          "name": "dataLocal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23652,
                          "src": "10327:9:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&",
                        "rightExpression": {
                          "id": 23658,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "~",
                          "prefix": true,
                          "src": "10339:9:53",
                          "subExpression": {
                            "id": 23657,
                            "name": "LTV_MASK",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23065,
                            "src": "10340:8:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "10327:21:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 23666,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 23663,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 23660,
                                "name": "dataLocal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23652,
                                "src": "10357:9:53",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&",
                              "rightExpression": {
                                "id": 23662,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "~",
                                "prefix": true,
                                "src": "10369:27:53",
                                "subExpression": {
                                  "id": 23661,
                                  "name": "LIQUIDATION_THRESHOLD_MASK",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23068,
                                  "src": "10370:26:53",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "10357:39:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 23664,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "10356:41:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "id": 23665,
                          "name": "LIQUIDATION_THRESHOLD_START_BIT_POSITION",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23093,
                          "src": "10401:40:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "10356:85:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 23673,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 23670,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 23667,
                                "name": "dataLocal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23652,
                                "src": "10450:9:53",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&",
                              "rightExpression": {
                                "id": 23669,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "~",
                                "prefix": true,
                                "src": "10462:23:53",
                                "subExpression": {
                                  "id": 23668,
                                  "name": "LIQUIDATION_BONUS_MASK",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23071,
                                  "src": "10463:22:53",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "10450:35:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 23671,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "10449:37:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "id": 23672,
                          "name": "LIQUIDATION_BONUS_START_BIT_POSITION",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23096,
                          "src": "10490:36:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "10449:77:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 23680,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 23677,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 23674,
                                "name": "dataLocal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23652,
                                "src": "10535:9:53",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&",
                              "rightExpression": {
                                "id": 23676,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "~",
                                "prefix": true,
                                "src": "10547:14:53",
                                "subExpression": {
                                  "id": 23675,
                                  "name": "DECIMALS_MASK",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23074,
                                  "src": "10548:13:53",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "10535:26:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 23678,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "10534:28:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "id": 23679,
                          "name": "RESERVE_DECIMALS_START_BIT_POSITION",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23099,
                          "src": "10566:35:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "10534:67:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 23687,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 23684,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 23681,
                                "name": "dataLocal",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23652,
                                "src": "10610:9:53",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&",
                              "rightExpression": {
                                "id": 23683,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "~",
                                "prefix": true,
                                "src": "10622:20:53",
                                "subExpression": {
                                  "id": 23682,
                                  "name": "RESERVE_FACTOR_MASK",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23089,
                                  "src": "10623:19:53",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "10610:32:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 23685,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "10609:34:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "id": 23686,
                          "name": "RESERVE_FACTOR_START_BIT_POSITION",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23114,
                          "src": "10647:33:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "10609:71:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "id": 23688,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "10319:367:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$",
                      "typeString": "tuple(uint256,uint256,uint256,uint256,uint256)"
                    }
                  },
                  "functionReturnParameters": 23650,
                  "id": 23689,
                  "nodeType": "Return",
                  "src": "10312:374:53"
                }
              ]
            },
            "documentation": {
              "id": 23635,
              "nodeType": "StructuredDocumentation",
              "src": "9860:222:53",
              "text": " @dev Gets the configuration paramters of the reserve\n @param self The reserve configuration\n @return The state params representing ltv, liquidation threshold, liquidation bonus, the reserve decimals*"
            },
            "id": 23691,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getParams",
            "nameLocation": "10094:9:53",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23639,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23638,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "10146:4:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23691,
                  "src": "10104:46:53",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                    "typeString": "struct DataTypes.ReserveConfigurationMap"
                  },
                  "typeName": {
                    "id": 23637,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 23636,
                      "name": "DataTypes.ReserveConfigurationMap",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 22831,
                      "src": "10104:33:53"
                    },
                    "referencedDeclaration": 22831,
                    "src": "10104:33:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                      "typeString": "struct DataTypes.ReserveConfigurationMap"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10103:48:53"
            },
            "returnParameters": {
              "id": 23650,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23641,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 23691,
                  "src": "10194:7:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23640,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10194:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23643,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 23691,
                  "src": "10209:7:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23642,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10209:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23645,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 23691,
                  "src": "10224:7:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23644,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10224:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23647,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 23691,
                  "src": "10239:7:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23646,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10239:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23649,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 23691,
                  "src": "10254:7:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23648,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10254:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10186:81:53"
            },
            "scope": 23799,
            "src": "10085:606:53",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23747,
              "nodeType": "Block",
              "src": "11131:385:53",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 23712,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 23708,
                            "name": "self",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23695,
                            "src": "11152:4:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                              "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                            }
                          },
                          "id": 23709,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "data",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 22830,
                          "src": "11152:9:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&",
                        "rightExpression": {
                          "id": 23711,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "~",
                          "prefix": true,
                          "src": "11164:9:53",
                          "subExpression": {
                            "id": 23710,
                            "name": "LTV_MASK",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23065,
                            "src": "11165:8:53",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "11152:21:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 23720,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 23717,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 23713,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23695,
                                  "src": "11182:4:53",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                                    "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                                  }
                                },
                                "id": 23714,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22830,
                                "src": "11182:9:53",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&",
                              "rightExpression": {
                                "id": 23716,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "~",
                                "prefix": true,
                                "src": "11194:27:53",
                                "subExpression": {
                                  "id": 23715,
                                  "name": "LIQUIDATION_THRESHOLD_MASK",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23068,
                                  "src": "11195:26:53",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "11182:39:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 23718,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "11181:41:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "id": 23719,
                          "name": "LIQUIDATION_THRESHOLD_START_BIT_POSITION",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23093,
                          "src": "11226:40:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "11181:85:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 23728,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 23725,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 23721,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23695,
                                  "src": "11275:4:53",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                                    "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                                  }
                                },
                                "id": 23722,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22830,
                                "src": "11275:9:53",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&",
                              "rightExpression": {
                                "id": 23724,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "~",
                                "prefix": true,
                                "src": "11287:23:53",
                                "subExpression": {
                                  "id": 23723,
                                  "name": "LIQUIDATION_BONUS_MASK",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23071,
                                  "src": "11288:22:53",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "11275:35:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 23726,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "11274:37:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "id": 23727,
                          "name": "LIQUIDATION_BONUS_START_BIT_POSITION",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23096,
                          "src": "11315:36:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "11274:77:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 23736,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 23733,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 23729,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23695,
                                  "src": "11360:4:53",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                                    "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                                  }
                                },
                                "id": 23730,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22830,
                                "src": "11360:9:53",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&",
                              "rightExpression": {
                                "id": 23732,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "~",
                                "prefix": true,
                                "src": "11372:14:53",
                                "subExpression": {
                                  "id": 23731,
                                  "name": "DECIMALS_MASK",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23074,
                                  "src": "11373:13:53",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "11360:26:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 23734,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "11359:28:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "id": 23735,
                          "name": "RESERVE_DECIMALS_START_BIT_POSITION",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23099,
                          "src": "11391:35:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "11359:67:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 23744,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 23741,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 23737,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23695,
                                  "src": "11435:4:53",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                                    "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                                  }
                                },
                                "id": 23738,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22830,
                                "src": "11435:9:53",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&",
                              "rightExpression": {
                                "id": 23740,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "~",
                                "prefix": true,
                                "src": "11447:20:53",
                                "subExpression": {
                                  "id": 23739,
                                  "name": "RESERVE_FACTOR_MASK",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23089,
                                  "src": "11448:19:53",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "11435:32:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 23742,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "11434:34:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "id": 23743,
                          "name": "RESERVE_FACTOR_START_BIT_POSITION",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23114,
                          "src": "11472:33:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "11434:71:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "id": 23745,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "11144:367:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$",
                      "typeString": "tuple(uint256,uint256,uint256,uint256,uint256)"
                    }
                  },
                  "functionReturnParameters": 23707,
                  "id": 23746,
                  "nodeType": "Return",
                  "src": "11137:374:53"
                }
              ]
            },
            "documentation": {
              "id": 23692,
              "nodeType": "StructuredDocumentation",
              "src": "10695:243:53",
              "text": " @dev Gets the configuration paramters of the reserve from a memory object\n @param self The reserve configuration\n @return The state params representing ltv, liquidation threshold, liquidation bonus, the reserve decimals*"
            },
            "id": 23748,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getParamsMemory",
            "nameLocation": "10950:15:53",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23696,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23695,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "11007:4:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23748,
                  "src": "10966:45:53",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                    "typeString": "struct DataTypes.ReserveConfigurationMap"
                  },
                  "typeName": {
                    "id": 23694,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 23693,
                      "name": "DataTypes.ReserveConfigurationMap",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 22831,
                      "src": "10966:33:53"
                    },
                    "referencedDeclaration": 22831,
                    "src": "10966:33:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                      "typeString": "struct DataTypes.ReserveConfigurationMap"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10965:47:53"
            },
            "returnParameters": {
              "id": 23707,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23698,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 23748,
                  "src": "11055:7:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23697,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11055:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23700,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 23748,
                  "src": "11070:7:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23699,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11070:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23702,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 23748,
                  "src": "11085:7:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23701,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11085:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23704,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 23748,
                  "src": "11100:7:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23703,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11100:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23706,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 23748,
                  "src": "11115:7:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23705,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11115:7:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11047:81:53"
            },
            "scope": 23799,
            "src": "10941:575:53",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23797,
              "nodeType": "Block",
              "src": "11918:193:53",
              "statements": [
                {
                  "expression": {
                    "components": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 23770,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 23767,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 23763,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23752,
                                  "src": "11940:4:53",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                                    "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                                  }
                                },
                                "id": 23764,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22830,
                                "src": "11940:9:53",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&",
                              "rightExpression": {
                                "id": 23766,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "~",
                                "prefix": true,
                                "src": "11952:12:53",
                                "subExpression": {
                                  "id": 23765,
                                  "name": "ACTIVE_MASK",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23077,
                                  "src": "11953:11:53",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "11940:24:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 23768,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "11939:26:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 23769,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "11969:1:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "11939:31:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 23778,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 23775,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 23771,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23752,
                                  "src": "11979:4:53",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                                    "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                                  }
                                },
                                "id": 23772,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22830,
                                "src": "11979:9:53",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&",
                              "rightExpression": {
                                "id": 23774,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "~",
                                "prefix": true,
                                "src": "11991:12:53",
                                "subExpression": {
                                  "id": 23773,
                                  "name": "FROZEN_MASK",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23080,
                                  "src": "11992:11:53",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "11979:24:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 23776,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "11978:26:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 23777,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12008:1:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "11978:31:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 23786,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 23783,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 23779,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23752,
                                  "src": "12018:4:53",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                                    "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                                  }
                                },
                                "id": 23780,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22830,
                                "src": "12018:9:53",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&",
                              "rightExpression": {
                                "id": 23782,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "~",
                                "prefix": true,
                                "src": "12030:15:53",
                                "subExpression": {
                                  "id": 23781,
                                  "name": "BORROWING_MASK",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23083,
                                  "src": "12031:14:53",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "12018:27:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 23784,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "12017:29:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 23785,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12050:1:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "12017:34:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 23794,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 23791,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 23787,
                                  "name": "self",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23752,
                                  "src": "12060:4:53",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                                    "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                                  }
                                },
                                "id": 23788,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "data",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 22830,
                                "src": "12060:9:53",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&",
                              "rightExpression": {
                                "id": 23790,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "~",
                                "prefix": true,
                                "src": "12072:22:53",
                                "subExpression": {
                                  "id": 23789,
                                  "name": "STABLE_BORROWING_MASK",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23086,
                                  "src": "12073:21:53",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "12060:34:53",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 23792,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "12059:36:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 23793,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12099:1:53",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "12059:41:53",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "id": 23795,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "11931:175:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$_t_bool_$_t_bool_$",
                      "typeString": "tuple(bool,bool,bool,bool)"
                    }
                  },
                  "functionReturnParameters": 23762,
                  "id": 23796,
                  "nodeType": "Return",
                  "src": "11924:182:53"
                }
              ]
            },
            "documentation": {
              "id": 23749,
              "nodeType": "StructuredDocumentation",
              "src": "11520:233:53",
              "text": " @dev Gets the configuration flags of the reserve from a memory object\n @param self The reserve configuration\n @return The state flags representing active, frozen, borrowing enabled, stableRateBorrowing enabled*"
            },
            "id": 23798,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getFlagsMemory",
            "nameLocation": "11765:14:53",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 23753,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23752,
                  "mutability": "mutable",
                  "name": "self",
                  "nameLocation": "11821:4:53",
                  "nodeType": "VariableDeclaration",
                  "scope": 23798,
                  "src": "11780:45:53",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_memory_ptr",
                    "typeString": "struct DataTypes.ReserveConfigurationMap"
                  },
                  "typeName": {
                    "id": 23751,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 23750,
                      "name": "DataTypes.ReserveConfigurationMap",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 22831,
                      "src": "11780:33:53"
                    },
                    "referencedDeclaration": 22831,
                    "src": "11780:33:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_ReserveConfigurationMap_$22831_storage_ptr",
                      "typeString": "struct DataTypes.ReserveConfigurationMap"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11779:47:53"
            },
            "returnParameters": {
              "id": 23762,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23755,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 23798,
                  "src": "11869:4:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23754,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "11869:4:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23757,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 23798,
                  "src": "11881:4:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23756,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "11881:4:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23759,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 23798,
                  "src": "11893:4:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23758,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "11893:4:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23761,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 23798,
                  "src": "11905:4:53",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 23760,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "11905:4:53",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11861:54:53"
            },
            "scope": 23799,
            "src": "11756:355:53",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "scope": 23800,
        "src": "297:11816:53",
        "usedErrors": []
      }
    ],
    "src": "37:12077:53"
  },
  "bytecode": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220db1ad2d8819e8811cb090801f69c6a74d9104f1ff5459afe6d476b57ca6361b164736f6c63430008060033",
  "bytecodeSha1": "1ce946f6a4eaa185320328620ccf999b9e86db7c",
  "compiler": {
    "evm_version": "istanbul",
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "version": "0.8.6+commit.11564f7e"
  },
  "contractName": "ReserveConfiguration",
  "coverageMap": {
    "branches": {
      "53": {},
      "55": {}
    },
    "statements": {
      "53": {},
      "55": {}
    }
  },
  "dependencies": [
    "Errors"
  ],
  "deployedBytecode": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220db1ad2d8819e8811cb090801f69c6a74d9104f1ff5459afe6d476b57ca6361b164736f6c63430008060033",
  "deployedSourceMap": "297:11816:53:-:0;;;;;;;;",
  "language": "Solidity",
  "natspec": {
    "author": "Aave",
    "kind": "dev",
    "methods": {},
    "notice": "Implements the bitmap logic to handle the reserve configuration",
    "stateVariables": {
      "LIQUIDATION_THRESHOLD_START_BIT_POSITION": {
        "details": "For the LTV, the start bit is 0 (up to 15), hence no bitshifting is needed"
      }
    },
    "title": "ReserveConfiguration library",
    "version": 1
  },
  "offset": [
    297,
    12113
  ],
  "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xDB BYTE 0xD2 0xD8 DUP2 SWAP15 DUP9 GT 0xCB MULMOD ADDMOD ADD 0xF6 SWAP13 PUSH11 0x74D9104F1FF5459AFE6D47 PUSH12 0x57CA6361B164736F6C634300 ADDMOD MOD STOP CALLER ",
  "pcMap": {
    "0": {
      "offset": [
        297,
        12113
      ],
      "op": "PUSH20",
      "path": "53",
      "value": "0x0"
    },
    "21": {
      "fn": null,
      "offset": [
        297,
        12113
      ],
      "op": "ADDRESS",
      "path": "53"
    },
    "22": {
      "fn": null,
      "offset": [
        297,
        12113
      ],
      "op": "EQ",
      "path": "53"
    },
    "23": {
      "fn": null,
      "offset": [
        297,
        12113
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x80"
    },
    "25": {
      "fn": null,
      "offset": [
        297,
        12113
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x40"
    },
    "27": {
      "fn": null,
      "offset": [
        297,
        12113
      ],
      "op": "MSTORE",
      "path": "53"
    },
    "28": {
      "fn": null,
      "offset": [
        297,
        12113
      ],
      "op": "PUSH1",
      "path": "53",
      "value": "0x0"
    },
    "30": {
      "fn": null,
      "offset": [
        297,
        12113
      ],
      "op": "DUP1",
      "path": "53"
    },
    "31": {
      "fn": null,
      "offset": [
        297,
        12113
      ],
      "op": "REVERT",
      "path": "53"
    }
  },
  "sha1": "72af12f1f9376a957d1accd084dbc0adbf8b793d",
  "source": "// SPDX-License-Identifier: agpl-3.0\npragma solidity ^0.8.0;\n\nimport {Errors} from '../helpers/Errors.sol';\nimport {DataTypes} from '../types/DataTypes.sol';\n\n/**\n * @title ReserveConfiguration library\n * @author Aave\n * @notice Implements the bitmap logic to handle the reserve configuration\n */\nlibrary ReserveConfiguration {\n  uint256 constant LTV_MASK =                   0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000; // prettier-ignore\n  uint256 constant LIQUIDATION_THRESHOLD_MASK = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFF; // prettier-ignore\n  uint256 constant LIQUIDATION_BONUS_MASK =     0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFF; // prettier-ignore\n  uint256 constant DECIMALS_MASK =              0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFF; // prettier-ignore\n  uint256 constant ACTIVE_MASK =                0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFF; // prettier-ignore\n  uint256 constant FROZEN_MASK =                0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFFFFFFFFFFFFFF; // prettier-ignore\n  uint256 constant BORROWING_MASK =             0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFFFFFFFFFFFFFF; // prettier-ignore\n  uint256 constant STABLE_BORROWING_MASK =      0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFFFFFFFFF; // prettier-ignore\n  uint256 constant RESERVE_FACTOR_MASK =        0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFFFFFF; // prettier-ignore\n\n  /// @dev For the LTV, the start bit is 0 (up to 15), hence no bitshifting is needed\n  uint256 constant LIQUIDATION_THRESHOLD_START_BIT_POSITION = 16;\n  uint256 constant LIQUIDATION_BONUS_START_BIT_POSITION = 32;\n  uint256 constant RESERVE_DECIMALS_START_BIT_POSITION = 48;\n  uint256 constant IS_ACTIVE_START_BIT_POSITION = 56;\n  uint256 constant IS_FROZEN_START_BIT_POSITION = 57;\n  uint256 constant BORROWING_ENABLED_START_BIT_POSITION = 58;\n  uint256 constant STABLE_BORROWING_ENABLED_START_BIT_POSITION = 59;\n  uint256 constant RESERVE_FACTOR_START_BIT_POSITION = 64;\n\n  uint256 constant MAX_VALID_LTV = 65535;\n  uint256 constant MAX_VALID_LIQUIDATION_THRESHOLD = 65535;\n  uint256 constant MAX_VALID_LIQUIDATION_BONUS = 65535;\n  uint256 constant MAX_VALID_DECIMALS = 255;\n  uint256 constant MAX_VALID_RESERVE_FACTOR = 65535;\n\n  /**\n   * @dev Sets the Loan to Value of the reserve\n   * @param self The reserve configuration\n   * @param ltv the new ltv\n   **/\n  function setLtv(DataTypes.ReserveConfigurationMap memory self, uint256 ltv) internal pure {\n    require(ltv <= MAX_VALID_LTV, Errors.RC_INVALID_LTV);\n\n    self.data = (self.data & LTV_MASK) | ltv;\n  }\n\n  /**\n   * @dev Gets the Loan to Value of the reserve\n   * @param self The reserve configuration\n   * @return The loan to value\n   **/\n  function getLtv(DataTypes.ReserveConfigurationMap storage self) internal view returns (uint256) {\n    return self.data & ~LTV_MASK;\n  }\n\n  /**\n   * @dev Sets the liquidation threshold of the reserve\n   * @param self The reserve configuration\n   * @param threshold The new liquidation threshold\n   **/\n  function setLiquidationThreshold(DataTypes.ReserveConfigurationMap memory self, uint256 threshold)\n    internal\n    pure\n  {\n    require(threshold <= MAX_VALID_LIQUIDATION_THRESHOLD, Errors.RC_INVALID_LIQ_THRESHOLD);\n\n    self.data =\n      (self.data & LIQUIDATION_THRESHOLD_MASK) |\n      (threshold << LIQUIDATION_THRESHOLD_START_BIT_POSITION);\n  }\n\n  /**\n   * @dev Gets the liquidation threshold of the reserve\n   * @param self The reserve configuration\n   * @return The liquidation threshold\n   **/\n  function getLiquidationThreshold(DataTypes.ReserveConfigurationMap storage self)\n    internal\n    view\n    returns (uint256)\n  {\n    return (self.data & ~LIQUIDATION_THRESHOLD_MASK) >> LIQUIDATION_THRESHOLD_START_BIT_POSITION;\n  }\n\n  /**\n   * @dev Sets the liquidation bonus of the reserve\n   * @param self The reserve configuration\n   * @param bonus The new liquidation bonus\n   **/\n  function setLiquidationBonus(DataTypes.ReserveConfigurationMap memory self, uint256 bonus)\n    internal\n    pure\n  {\n    require(bonus <= MAX_VALID_LIQUIDATION_BONUS, Errors.RC_INVALID_LIQ_BONUS);\n\n    self.data =\n      (self.data & LIQUIDATION_BONUS_MASK) |\n      (bonus << LIQUIDATION_BONUS_START_BIT_POSITION);\n  }\n\n  /**\n   * @dev Gets the liquidation bonus of the reserve\n   * @param self The reserve configuration\n   * @return The liquidation bonus\n   **/\n  function getLiquidationBonus(DataTypes.ReserveConfigurationMap storage self)\n    internal\n    view\n    returns (uint256)\n  {\n    return (self.data & ~LIQUIDATION_BONUS_MASK) >> LIQUIDATION_BONUS_START_BIT_POSITION;\n  }\n\n  /**\n   * @dev Sets the decimals of the underlying asset of the reserve\n   * @param self The reserve configuration\n   * @param decimals The decimals\n   **/\n  function setDecimals(DataTypes.ReserveConfigurationMap memory self, uint256 decimals)\n    internal\n    pure\n  {\n    require(decimals <= MAX_VALID_DECIMALS, Errors.RC_INVALID_DECIMALS);\n\n    self.data = (self.data & DECIMALS_MASK) | (decimals << RESERVE_DECIMALS_START_BIT_POSITION);\n  }\n\n  /**\n   * @dev Gets the decimals of the underlying asset of the reserve\n   * @param self The reserve configuration\n   * @return The decimals of the asset\n   **/\n  function getDecimals(DataTypes.ReserveConfigurationMap storage self)\n    internal\n    view\n    returns (uint256)\n  {\n    return (self.data & ~DECIMALS_MASK) >> RESERVE_DECIMALS_START_BIT_POSITION;\n  }\n\n  /**\n   * @dev Sets the active state of the reserve\n   * @param self The reserve configuration\n   * @param active The active state\n   **/\n  function setActive(DataTypes.ReserveConfigurationMap memory self, bool active) internal pure {\n    self.data =\n      (self.data & ACTIVE_MASK) |\n      (uint256(active ? 1 : 0) << IS_ACTIVE_START_BIT_POSITION);\n  }\n\n  /**\n   * @dev Gets the active state of the reserve\n   * @param self The reserve configuration\n   * @return The active state\n   **/\n  function getActive(DataTypes.ReserveConfigurationMap storage self) internal view returns (bool) {\n    return (self.data & ~ACTIVE_MASK) != 0;\n  }\n\n  /**\n   * @dev Sets the frozen state of the reserve\n   * @param self The reserve configuration\n   * @param frozen The frozen state\n   **/\n  function setFrozen(DataTypes.ReserveConfigurationMap memory self, bool frozen) internal pure {\n    self.data =\n      (self.data & FROZEN_MASK) |\n      (uint256(frozen ? 1 : 0) << IS_FROZEN_START_BIT_POSITION);\n  }\n\n  /**\n   * @dev Gets the frozen state of the reserve\n   * @param self The reserve configuration\n   * @return The frozen state\n   **/\n  function getFrozen(DataTypes.ReserveConfigurationMap storage self) internal view returns (bool) {\n    return (self.data & ~FROZEN_MASK) != 0;\n  }\n\n  /**\n   * @dev Enables or disables borrowing on the reserve\n   * @param self The reserve configuration\n   * @param enabled True if the borrowing needs to be enabled, false otherwise\n   **/\n  function setBorrowingEnabled(DataTypes.ReserveConfigurationMap memory self, bool enabled)\n    internal\n    pure\n  {\n    self.data =\n      (self.data & BORROWING_MASK) |\n      (uint256(enabled ? 1 : 0) << BORROWING_ENABLED_START_BIT_POSITION);\n  }\n\n  /**\n   * @dev Gets the borrowing state of the reserve\n   * @param self The reserve configuration\n   * @return The borrowing state\n   **/\n  function getBorrowingEnabled(DataTypes.ReserveConfigurationMap storage self)\n    internal\n    view\n    returns (bool)\n  {\n    return (self.data & ~BORROWING_MASK) != 0;\n  }\n\n  /**\n   * @dev Enables or disables stable rate borrowing on the reserve\n   * @param self The reserve configuration\n   * @param enabled True if the stable rate borrowing needs to be enabled, false otherwise\n   **/\n  function setStableRateBorrowingEnabled(\n    DataTypes.ReserveConfigurationMap memory self,\n    bool enabled\n  ) internal pure {\n    self.data =\n      (self.data & STABLE_BORROWING_MASK) |\n      (uint256(enabled ? 1 : 0) << STABLE_BORROWING_ENABLED_START_BIT_POSITION);\n  }\n\n  /**\n   * @dev Gets the stable rate borrowing state of the reserve\n   * @param self The reserve configuration\n   * @return The stable rate borrowing state\n   **/\n  function getStableRateBorrowingEnabled(DataTypes.ReserveConfigurationMap storage self)\n    internal\n    view\n    returns (bool)\n  {\n    return (self.data & ~STABLE_BORROWING_MASK) != 0;\n  }\n\n  /**\n   * @dev Sets the reserve factor of the reserve\n   * @param self The reserve configuration\n   * @param reserveFactor The reserve factor\n   **/\n  function setReserveFactor(DataTypes.ReserveConfigurationMap memory self, uint256 reserveFactor)\n    internal\n    pure\n  {\n    require(reserveFactor <= MAX_VALID_RESERVE_FACTOR, Errors.RC_INVALID_RESERVE_FACTOR);\n\n    self.data =\n      (self.data & RESERVE_FACTOR_MASK) |\n      (reserveFactor << RESERVE_FACTOR_START_BIT_POSITION);\n  }\n\n  /**\n   * @dev Gets the reserve factor of the reserve\n   * @param self The reserve configuration\n   * @return The reserve factor\n   **/\n  function getReserveFactor(DataTypes.ReserveConfigurationMap storage self)\n    internal\n    view\n    returns (uint256)\n  {\n    return (self.data & ~RESERVE_FACTOR_MASK) >> RESERVE_FACTOR_START_BIT_POSITION;\n  }\n\n  /**\n   * @dev Gets the configuration flags of the reserve\n   * @param self The reserve configuration\n   * @return The state flags representing active, frozen, borrowing enabled, stableRateBorrowing enabled\n   **/\n  function getFlags(DataTypes.ReserveConfigurationMap storage self)\n    internal\n    view\n    returns (\n      bool,\n      bool,\n      bool,\n      bool\n    )\n  {\n    uint256 dataLocal = self.data;\n\n    return (\n      (dataLocal & ~ACTIVE_MASK) != 0,\n      (dataLocal & ~FROZEN_MASK) != 0,\n      (dataLocal & ~BORROWING_MASK) != 0,\n      (dataLocal & ~STABLE_BORROWING_MASK) != 0\n    );\n  }\n\n  /**\n   * @dev Gets the configuration paramters of the reserve\n   * @param self The reserve configuration\n   * @return The state params representing ltv, liquidation threshold, liquidation bonus, the reserve decimals\n   **/\n  function getParams(DataTypes.ReserveConfigurationMap storage self)\n    internal\n    view\n    returns (\n      uint256,\n      uint256,\n      uint256,\n      uint256,\n      uint256\n    )\n  {\n    uint256 dataLocal = self.data;\n\n    return (\n      dataLocal & ~LTV_MASK,\n      (dataLocal & ~LIQUIDATION_THRESHOLD_MASK) >> LIQUIDATION_THRESHOLD_START_BIT_POSITION,\n      (dataLocal & ~LIQUIDATION_BONUS_MASK) >> LIQUIDATION_BONUS_START_BIT_POSITION,\n      (dataLocal & ~DECIMALS_MASK) >> RESERVE_DECIMALS_START_BIT_POSITION,\n      (dataLocal & ~RESERVE_FACTOR_MASK) >> RESERVE_FACTOR_START_BIT_POSITION\n    );\n  }\n\n  /**\n   * @dev Gets the configuration paramters of the reserve from a memory object\n   * @param self The reserve configuration\n   * @return The state params representing ltv, liquidation threshold, liquidation bonus, the reserve decimals\n   **/\n  function getParamsMemory(DataTypes.ReserveConfigurationMap memory self)\n    internal\n    pure\n    returns (\n      uint256,\n      uint256,\n      uint256,\n      uint256,\n      uint256\n    )\n  {\n    return (\n      self.data & ~LTV_MASK,\n      (self.data & ~LIQUIDATION_THRESHOLD_MASK) >> LIQUIDATION_THRESHOLD_START_BIT_POSITION,\n      (self.data & ~LIQUIDATION_BONUS_MASK) >> LIQUIDATION_BONUS_START_BIT_POSITION,\n      (self.data & ~DECIMALS_MASK) >> RESERVE_DECIMALS_START_BIT_POSITION,\n      (self.data & ~RESERVE_FACTOR_MASK) >> RESERVE_FACTOR_START_BIT_POSITION\n    );\n  }\n\n  /**\n   * @dev Gets the configuration flags of the reserve from a memory object\n   * @param self The reserve configuration\n   * @return The state flags representing active, frozen, borrowing enabled, stableRateBorrowing enabled\n   **/\n  function getFlagsMemory(DataTypes.ReserveConfigurationMap memory self)\n    internal\n    pure\n    returns (\n      bool,\n      bool,\n      bool,\n      bool\n    )\n  {\n    return (\n      (self.data & ~ACTIVE_MASK) != 0,\n      (self.data & ~FROZEN_MASK) != 0,\n      (self.data & ~BORROWING_MASK) != 0,\n      (self.data & ~STABLE_BORROWING_MASK) != 0\n    );\n  }\n}\n",
  "sourceMap": "297:11816:53:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;297:11816:53;;;;;;;;;;;;;;;;;",
  "sourcePath": "node_modules/@aave/protocol-v2/contracts/protocol/libraries/configuration/ReserveConfiguration.sol",
  "type": "library"
}