{
  "contractName": "EnumerableMap",
  "abi": [],
  "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for managing an enumerable variant of Solidity's https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`] type. Maps have the following properties: - Entries are added, removed, and checked for existence in constant time (O(1)). - Entries are enumerated in O(n). No guarantees are made on the ordering. ``` contract Example {     // Add the library methods     using EnumerableMap for EnumerableMap.UintToAddressMap;     // Declare a set state variable     EnumerableMap.UintToAddressMap private myMap; } ``` As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are supported.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/EnumerableMap.sol\":\"EnumerableMap\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/EnumerableMap.sol\":{\"keccak256\":\"0xf6bdf22fe038e5310b6f0372ecd01f221e2c0b248b45efc404542d94fcac9133\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e798f3492180627d6616fa94925b61a9f105347eed9e895f3e18a0eb3dfcd3d\",\"dweb:/ipfs/QmQcTro5nv3Lopf4c4rEe1BuykCfPsjRsJmysdNXtHNUdt\"]}},\"version\":1}",
  "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c3de050bb9cc951aea53594d94bb81e0b38fd96b919a5b21fa07e0370dab9db364736f6c63430007060033",
  "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c3de050bb9cc951aea53594d94bb81e0b38fd96b919a5b21fa07e0370dab9db364736f6c63430007060033",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [],
  "sourceMap": "772:7555:35:-:0;;;;;;;;;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "772:7555:35:-:0;;;;;;;;",
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Library for managing an enumerable variant of Solidity's\n * https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n * type.\n *\n * Maps have the following properties:\n *\n * - Entries are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Entries are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n *     // Add the library methods\n *     using EnumerableMap for EnumerableMap.UintToAddressMap;\n *\n *     // Declare a set state variable\n *     EnumerableMap.UintToAddressMap private myMap;\n * }\n * ```\n *\n * As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n * supported.\n */\nlibrary EnumerableMap {\n    // To implement this library for multiple types with as little code\n    // repetition as possible, we write it in terms of a generic Map type with\n    // bytes32 keys and values.\n    // The Map implementation uses private functions, and user-facing\n    // implementations (such as Uint256ToAddressMap) are just wrappers around\n    // the underlying Map.\n    // This means that we can only create new EnumerableMaps for types that fit\n    // in bytes32.\n\n    struct MapEntry {\n        bytes32 _key;\n        bytes32 _value;\n    }\n\n    struct Map {\n        // Storage of map keys and values\n        MapEntry[] _entries;\n\n        // Position of the entry defined by a key in the `entries` array, plus 1\n        // because index 0 means a key is not in the map.\n        mapping (bytes32 => uint256) _indexes;\n    }\n\n    /**\n     * @dev Adds a key-value pair to a map, or updates the value for an existing\n     * key. O(1).\n     *\n     * Returns true if the key was added to the map, that is if it was not\n     * already present.\n     */\n    function _set(Map storage map, bytes32 key, bytes32 value) private returns (bool) {\n        // We read and store the key's index to prevent multiple reads from the same storage slot\n        uint256 keyIndex = map._indexes[key];\n\n        if (keyIndex == 0) { // Equivalent to !contains(map, key)\n            map._entries.push(MapEntry({ _key: key, _value: value }));\n            // The entry is stored at length-1, but we add 1 to all indexes\n            // and use 0 as a sentinel value\n            map._indexes[key] = map._entries.length;\n            return true;\n        } else {\n            map._entries[keyIndex - 1]._value = value;\n            return false;\n        }\n    }\n\n    /**\n     * @dev Removes a key-value pair from a map. O(1).\n     *\n     * Returns true if the key was removed from the map, that is if it was present.\n     */\n    function _remove(Map storage map, bytes32 key) private returns (bool) {\n        // We read and store the key's index to prevent multiple reads from the same storage slot\n        uint256 keyIndex = map._indexes[key];\n\n        if (keyIndex != 0) { // Equivalent to contains(map, key)\n            // To delete a key-value pair from the _entries array in O(1), we swap the entry to delete with the last one\n            // in the array, and then remove the last entry (sometimes called as 'swap and pop').\n            // This modifies the order of the array, as noted in {at}.\n\n            uint256 toDeleteIndex = keyIndex - 1;\n            uint256 lastIndex = map._entries.length - 1;\n\n            // When the entry to delete is the last one, the swap operation is unnecessary. However, since this occurs\n            // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n            MapEntry storage lastEntry = map._entries[lastIndex];\n\n            // Move the last entry to the index where the entry to delete is\n            map._entries[toDeleteIndex] = lastEntry;\n            // Update the index for the moved entry\n            map._indexes[lastEntry._key] = toDeleteIndex + 1; // All indexes are 1-based\n\n            // Delete the slot where the moved entry was stored\n            map._entries.pop();\n\n            // Delete the index for the deleted slot\n            delete map._indexes[key];\n\n            return true;\n        } else {\n            return false;\n        }\n    }\n\n    /**\n     * @dev Returns true if the key is in the map. O(1).\n     */\n    function _contains(Map storage map, bytes32 key) private view returns (bool) {\n        return map._indexes[key] != 0;\n    }\n\n    /**\n     * @dev Returns the number of key-value pairs in the map. O(1).\n     */\n    function _length(Map storage map) private view returns (uint256) {\n        return map._entries.length;\n    }\n\n   /**\n    * @dev Returns the key-value pair stored at position `index` in the map. O(1).\n    *\n    * Note that there are no guarantees on the ordering of entries inside the\n    * array, and it may change when more entries are added or removed.\n    *\n    * Requirements:\n    *\n    * - `index` must be strictly less than {length}.\n    */\n    function _at(Map storage map, uint256 index) private view returns (bytes32, bytes32) {\n        require(map._entries.length > index, \"EnumerableMap: index out of bounds\");\n\n        MapEntry storage entry = map._entries[index];\n        return (entry._key, entry._value);\n    }\n\n    /**\n     * @dev Returns the value associated with `key`.  O(1).\n     *\n     * Requirements:\n     *\n     * - `key` must be in the map.\n     */\n    function _get(Map storage map, bytes32 key) private view returns (bytes32) {\n        return _get(map, key, \"EnumerableMap: nonexistent key\");\n    }\n\n    /**\n     * @dev Same as {_get}, with a custom error message when `key` is not in the map.\n     */\n    function _get(Map storage map, bytes32 key, string memory errorMessage) private view returns (bytes32) {\n        uint256 keyIndex = map._indexes[key];\n        require(keyIndex != 0, errorMessage); // Equivalent to contains(map, key)\n        return map._entries[keyIndex - 1]._value; // All indexes are 1-based\n    }\n\n    // UintToAddressMap\n\n    struct UintToAddressMap {\n        Map _inner;\n    }\n\n    /**\n     * @dev Adds a key-value pair to a map, or updates the value for an existing\n     * key. O(1).\n     *\n     * Returns true if the key was added to the map, that is if it was not\n     * already present.\n     */\n    function set(UintToAddressMap storage map, uint256 key, address value) internal returns (bool) {\n        return _set(map._inner, bytes32(key), bytes32(uint256(value)));\n    }\n\n    /**\n     * @dev Removes a value from a set. O(1).\n     *\n     * Returns true if the key was removed from the map, that is if it was present.\n     */\n    function remove(UintToAddressMap storage map, uint256 key) internal returns (bool) {\n        return _remove(map._inner, bytes32(key));\n    }\n\n    /**\n     * @dev Returns true if the key is in the map. O(1).\n     */\n    function contains(UintToAddressMap storage map, uint256 key) internal view returns (bool) {\n        return _contains(map._inner, bytes32(key));\n    }\n\n    /**\n     * @dev Returns the number of elements in the map. O(1).\n     */\n    function length(UintToAddressMap storage map) internal view returns (uint256) {\n        return _length(map._inner);\n    }\n\n   /**\n    * @dev Returns the element stored at position `index` in the set. O(1).\n    * Note that there are no guarantees on the ordering of values inside the\n    * array, and it may change when more values are added or removed.\n    *\n    * Requirements:\n    *\n    * - `index` must be strictly less than {length}.\n    */\n    function at(UintToAddressMap storage map, uint256 index) internal view returns (uint256, address) {\n        (bytes32 key, bytes32 value) = _at(map._inner, index);\n        return (uint256(key), address(uint256(value)));\n    }\n\n    /**\n     * @dev Returns the value associated with `key`.  O(1).\n     *\n     * Requirements:\n     *\n     * - `key` must be in the map.\n     */\n    function get(UintToAddressMap storage map, uint256 key) internal view returns (address) {\n        return address(uint256(_get(map._inner, bytes32(key))));\n    }\n\n    /**\n     * @dev Same as {get}, with a custom error message when `key` is not in the map.\n     */\n    function get(UintToAddressMap storage map, uint256 key, string memory errorMessage) internal view returns (address) {\n        return address(uint256(_get(map._inner, bytes32(key), errorMessage)));\n    }\n}\n",
  "sourcePath": "@openzeppelin/contracts/utils/EnumerableMap.sol",
  "ast": {
    "absolutePath": "@openzeppelin/contracts/utils/EnumerableMap.sol",
    "exportedSymbols": {
      "EnumerableMap": [
        7276
      ]
    },
    "id": 7277,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 6823,
        "literals": [
          "solidity",
          ">=",
          "0.6",
          ".0",
          "<",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "33:31:35"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "library",
        "documentation": {
          "id": 6824,
          "nodeType": "StructuredDocumentation",
          "src": "66:705:35",
          "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n     // Add the library methods\n     using EnumerableMap for EnumerableMap.UintToAddressMap;\n     // Declare a set state variable\n     EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported."
        },
        "fullyImplemented": true,
        "id": 7276,
        "linearizedBaseContracts": [
          7276
        ],
        "name": "EnumerableMap",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "EnumerableMap.MapEntry",
            "id": 6829,
            "members": [
              {
                "constant": false,
                "id": 6826,
                "mutability": "mutable",
                "name": "_key",
                "nodeType": "VariableDeclaration",
                "scope": 6829,
                "src": "1284:12:35",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 6825,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "1284:7:35",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6828,
                "mutability": "mutable",
                "name": "_value",
                "nodeType": "VariableDeclaration",
                "scope": 6829,
                "src": "1306:14:35",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 6827,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "1306:7:35",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "MapEntry",
            "nodeType": "StructDefinition",
            "scope": 7276,
            "src": "1258:69:35",
            "visibility": "public"
          },
          {
            "canonicalName": "EnumerableMap.Map",
            "id": 6837,
            "members": [
              {
                "constant": false,
                "id": 6832,
                "mutability": "mutable",
                "name": "_entries",
                "nodeType": "VariableDeclaration",
                "scope": 6837,
                "src": "1396:19:35",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_struct$_MapEntry_$6829_storage_$dyn_storage_ptr",
                  "typeString": "struct EnumerableMap.MapEntry[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 6830,
                    "name": "MapEntry",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 6829,
                    "src": "1396:8:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_MapEntry_$6829_storage_ptr",
                      "typeString": "struct EnumerableMap.MapEntry"
                    }
                  },
                  "id": 6831,
                  "nodeType": "ArrayTypeName",
                  "src": "1396:10:35",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_MapEntry_$6829_storage_$dyn_storage_ptr",
                    "typeString": "struct EnumerableMap.MapEntry[]"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 6836,
                "mutability": "mutable",
                "name": "_indexes",
                "nodeType": "VariableDeclaration",
                "scope": 6837,
                "src": "1565:37:35",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                  "typeString": "mapping(bytes32 => uint256)"
                },
                "typeName": {
                  "id": 6835,
                  "keyType": {
                    "id": 6833,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1574:7:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "1565:28:35",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                    "typeString": "mapping(bytes32 => uint256)"
                  },
                  "valueType": {
                    "id": 6834,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1585:7:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Map",
            "nodeType": "StructDefinition",
            "scope": 7276,
            "src": "1333:276:35",
            "visibility": "public"
          },
          {
            "body": {
              "id": 6898,
              "nodeType": "Block",
              "src": "1918:596:35",
              "statements": [
                {
                  "assignments": [
                    6850
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6850,
                      "mutability": "mutable",
                      "name": "keyIndex",
                      "nodeType": "VariableDeclaration",
                      "scope": 6898,
                      "src": "2026:16:35",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6849,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2026:7:35",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6855,
                  "initialValue": {
                    "baseExpression": {
                      "expression": {
                        "id": 6851,
                        "name": "map",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6840,
                        "src": "2045:3:35",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                          "typeString": "struct EnumerableMap.Map storage pointer"
                        }
                      },
                      "id": 6852,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "_indexes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6836,
                      "src": "2045:12:35",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                        "typeString": "mapping(bytes32 => uint256)"
                      }
                    },
                    "id": 6854,
                    "indexExpression": {
                      "id": 6853,
                      "name": "key",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6842,
                      "src": "2058:3:35",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "2045:17:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2026:36:35"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6858,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 6856,
                      "name": "keyIndex",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6850,
                      "src": "2077:8:35",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 6857,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2089:1:35",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "2077:13:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 6896,
                    "nodeType": "Block",
                    "src": "2416:92:35",
                    "statements": [
                      {
                        "expression": {
                          "id": 6892,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "expression": {
                              "baseExpression": {
                                "expression": {
                                  "id": 6883,
                                  "name": "map",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6840,
                                  "src": "2430:3:35",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                                    "typeString": "struct EnumerableMap.Map storage pointer"
                                  }
                                },
                                "id": 6888,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "_entries",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 6832,
                                "src": "2430:12:35",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_struct$_MapEntry_$6829_storage_$dyn_storage",
                                  "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
                                }
                              },
                              "id": 6889,
                              "indexExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 6887,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 6885,
                                  "name": "keyIndex",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6850,
                                  "src": "2443:8:35",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "-",
                                "rightExpression": {
                                  "hexValue": "31",
                                  "id": 6886,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "2454:1:35",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "2443:12:35",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "2430:26:35",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_MapEntry_$6829_storage",
                                "typeString": "struct EnumerableMap.MapEntry storage ref"
                              }
                            },
                            "id": 6890,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "memberName": "_value",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6828,
                            "src": "2430:33:35",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 6891,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6844,
                            "src": "2466:5:35",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "2430:41:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 6893,
                        "nodeType": "ExpressionStatement",
                        "src": "2430:41:35"
                      },
                      {
                        "expression": {
                          "hexValue": "66616c7365",
                          "id": 6894,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2492:5:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 6848,
                        "id": 6895,
                        "nodeType": "Return",
                        "src": "2485:12:35"
                      }
                    ]
                  },
                  "id": 6897,
                  "nodeType": "IfStatement",
                  "src": "2073:435:35",
                  "trueBody": {
                    "id": 6882,
                    "nodeType": "Block",
                    "src": "2092:318:35",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "id": 6865,
                                  "name": "key",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6842,
                                  "src": "2178:3:35",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                {
                                  "id": 6866,
                                  "name": "value",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6844,
                                  "src": "2191:5:35",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                ],
                                "id": 6864,
                                "name": "MapEntry",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6829,
                                "src": "2161:8:35",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_struct$_MapEntry_$6829_storage_ptr_$",
                                  "typeString": "type(struct EnumerableMap.MapEntry storage pointer)"
                                }
                              },
                              "id": 6867,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "structConstructorCall",
                              "lValueRequested": false,
                              "names": [
                                "_key",
                                "_value"
                              ],
                              "nodeType": "FunctionCall",
                              "src": "2161:38:35",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_MapEntry_$6829_memory_ptr",
                                "typeString": "struct EnumerableMap.MapEntry memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_struct$_MapEntry_$6829_memory_ptr",
                                "typeString": "struct EnumerableMap.MapEntry memory"
                              }
                            ],
                            "expression": {
                              "expression": {
                                "id": 6859,
                                "name": "map",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6840,
                                "src": "2143:3:35",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                                  "typeString": "struct EnumerableMap.Map storage pointer"
                                }
                              },
                              "id": 6862,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_entries",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6832,
                              "src": "2143:12:35",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_MapEntry_$6829_storage_$dyn_storage",
                                "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
                              }
                            },
                            "id": 6863,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "push",
                            "nodeType": "MemberAccess",
                            "src": "2143:17:35",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_MapEntry_$6829_storage_$returns$__$",
                              "typeString": "function (struct EnumerableMap.MapEntry storage ref)"
                            }
                          },
                          "id": 6868,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2143:57:35",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6869,
                        "nodeType": "ExpressionStatement",
                        "src": "2143:57:35"
                      },
                      {
                        "expression": {
                          "id": 6878,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "expression": {
                                "id": 6870,
                                "name": "map",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6840,
                                "src": "2335:3:35",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                                  "typeString": "struct EnumerableMap.Map storage pointer"
                                }
                              },
                              "id": 6873,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_indexes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6836,
                              "src": "2335:12:35",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                "typeString": "mapping(bytes32 => uint256)"
                              }
                            },
                            "id": 6874,
                            "indexExpression": {
                              "id": 6872,
                              "name": "key",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6842,
                              "src": "2348:3:35",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "2335:17:35",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "expression": {
                              "expression": {
                                "id": 6875,
                                "name": "map",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6840,
                                "src": "2355:3:35",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                                  "typeString": "struct EnumerableMap.Map storage pointer"
                                }
                              },
                              "id": 6876,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_entries",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6832,
                              "src": "2355:12:35",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_MapEntry_$6829_storage_$dyn_storage",
                                "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
                              }
                            },
                            "id": 6877,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "src": "2355:19:35",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2335:39:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6879,
                        "nodeType": "ExpressionStatement",
                        "src": "2335:39:35"
                      },
                      {
                        "expression": {
                          "hexValue": "74727565",
                          "id": 6880,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2395:4:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        "functionReturnParameters": 6848,
                        "id": 6881,
                        "nodeType": "Return",
                        "src": "2388:11:35"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 6838,
              "nodeType": "StructuredDocumentation",
              "src": "1615:216:35",
              "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present."
            },
            "id": 6899,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_set",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6845,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6840,
                  "mutability": "mutable",
                  "name": "map",
                  "nodeType": "VariableDeclaration",
                  "scope": 6899,
                  "src": "1850:15:35",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                    "typeString": "struct EnumerableMap.Map"
                  },
                  "typeName": {
                    "id": 6839,
                    "name": "Map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 6837,
                    "src": "1850:3:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                      "typeString": "struct EnumerableMap.Map"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6842,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "scope": 6899,
                  "src": "1867:11:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6841,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1867:7:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6844,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 6899,
                  "src": "1880:13:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6843,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1880:7:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1849:45:35"
            },
            "returnParameters": {
              "id": 6848,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6847,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6899,
                  "src": "1912:4:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6846,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1912:4:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1911:6:35"
            },
            "scope": 7276,
            "src": "1836:678:35",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "private"
          },
          {
            "body": {
              "id": 6979,
              "nodeType": "Block",
              "src": "2752:1447:35",
              "statements": [
                {
                  "assignments": [
                    6910
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6910,
                      "mutability": "mutable",
                      "name": "keyIndex",
                      "nodeType": "VariableDeclaration",
                      "scope": 6979,
                      "src": "2860:16:35",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6909,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2860:7:35",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6915,
                  "initialValue": {
                    "baseExpression": {
                      "expression": {
                        "id": 6911,
                        "name": "map",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6902,
                        "src": "2879:3:35",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                          "typeString": "struct EnumerableMap.Map storage pointer"
                        }
                      },
                      "id": 6912,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "_indexes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6836,
                      "src": "2879:12:35",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                        "typeString": "mapping(bytes32 => uint256)"
                      }
                    },
                    "id": 6914,
                    "indexExpression": {
                      "id": 6913,
                      "name": "key",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6904,
                      "src": "2892:3:35",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "2879:17:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2860:36:35"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6918,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 6916,
                      "name": "keyIndex",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6910,
                      "src": "2911:8:35",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 6917,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2923:1:35",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "2911:13:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 6977,
                    "nodeType": "Block",
                    "src": "4156:37:35",
                    "statements": [
                      {
                        "expression": {
                          "hexValue": "66616c7365",
                          "id": 6975,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4177:5:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 6908,
                        "id": 6976,
                        "nodeType": "Return",
                        "src": "4170:12:35"
                      }
                    ]
                  },
                  "id": 6978,
                  "nodeType": "IfStatement",
                  "src": "2907:1286:35",
                  "trueBody": {
                    "id": 6974,
                    "nodeType": "Block",
                    "src": "2926:1224:35",
                    "statements": [
                      {
                        "assignments": [
                          6920
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6920,
                            "mutability": "mutable",
                            "name": "toDeleteIndex",
                            "nodeType": "VariableDeclaration",
                            "scope": 6974,
                            "src": "3267:21:35",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 6919,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "3267:7:35",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 6924,
                        "initialValue": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 6923,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 6921,
                            "name": "keyIndex",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6910,
                            "src": "3291:8:35",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "hexValue": "31",
                            "id": 6922,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3302:1:35",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "1"
                          },
                          "src": "3291:12:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "3267:36:35"
                      },
                      {
                        "assignments": [
                          6926
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6926,
                            "mutability": "mutable",
                            "name": "lastIndex",
                            "nodeType": "VariableDeclaration",
                            "scope": 6974,
                            "src": "3317:17:35",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 6925,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "3317:7:35",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 6932,
                        "initialValue": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 6931,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "expression": {
                                "id": 6927,
                                "name": "map",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6902,
                                "src": "3337:3:35",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                                  "typeString": "struct EnumerableMap.Map storage pointer"
                                }
                              },
                              "id": 6928,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_entries",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6832,
                              "src": "3337:12:35",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_MapEntry_$6829_storage_$dyn_storage",
                                "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
                              }
                            },
                            "id": 6929,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "src": "3337:19:35",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "hexValue": "31",
                            "id": 6930,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3359:1:35",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "1"
                          },
                          "src": "3337:23:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "3317:43:35"
                      },
                      {
                        "assignments": [
                          6934
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 6934,
                            "mutability": "mutable",
                            "name": "lastEntry",
                            "nodeType": "VariableDeclaration",
                            "scope": 6974,
                            "src": "3600:26:35",
                            "stateVariable": false,
                            "storageLocation": "storage",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_MapEntry_$6829_storage_ptr",
                              "typeString": "struct EnumerableMap.MapEntry"
                            },
                            "typeName": {
                              "id": 6933,
                              "name": "MapEntry",
                              "nodeType": "UserDefinedTypeName",
                              "referencedDeclaration": 6829,
                              "src": "3600:8:35",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_MapEntry_$6829_storage_ptr",
                                "typeString": "struct EnumerableMap.MapEntry"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 6939,
                        "initialValue": {
                          "baseExpression": {
                            "expression": {
                              "id": 6935,
                              "name": "map",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6902,
                              "src": "3629:3:35",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                                "typeString": "struct EnumerableMap.Map storage pointer"
                              }
                            },
                            "id": 6936,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "_entries",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6832,
                            "src": "3629:12:35",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_MapEntry_$6829_storage_$dyn_storage",
                              "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
                            }
                          },
                          "id": 6938,
                          "indexExpression": {
                            "id": 6937,
                            "name": "lastIndex",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6926,
                            "src": "3642:9:35",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3629:23:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_MapEntry_$6829_storage",
                            "typeString": "struct EnumerableMap.MapEntry storage ref"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "3600:52:35"
                      },
                      {
                        "expression": {
                          "id": 6946,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "expression": {
                                "id": 6940,
                                "name": "map",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6902,
                                "src": "3744:3:35",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                                  "typeString": "struct EnumerableMap.Map storage pointer"
                                }
                              },
                              "id": 6943,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_entries",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6832,
                              "src": "3744:12:35",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_MapEntry_$6829_storage_$dyn_storage",
                                "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
                              }
                            },
                            "id": 6944,
                            "indexExpression": {
                              "id": 6942,
                              "name": "toDeleteIndex",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6920,
                              "src": "3757:13:35",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "3744:27:35",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_MapEntry_$6829_storage",
                              "typeString": "struct EnumerableMap.MapEntry storage ref"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 6945,
                            "name": "lastEntry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6934,
                            "src": "3774:9:35",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_MapEntry_$6829_storage_ptr",
                              "typeString": "struct EnumerableMap.MapEntry storage pointer"
                            }
                          },
                          "src": "3744:39:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_MapEntry_$6829_storage",
                            "typeString": "struct EnumerableMap.MapEntry storage ref"
                          }
                        },
                        "id": 6947,
                        "nodeType": "ExpressionStatement",
                        "src": "3744:39:35"
                      },
                      {
                        "expression": {
                          "id": 6957,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "expression": {
                                "id": 6948,
                                "name": "map",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6902,
                                "src": "3849:3:35",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                                  "typeString": "struct EnumerableMap.Map storage pointer"
                                }
                              },
                              "id": 6952,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_indexes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6836,
                              "src": "3849:12:35",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                "typeString": "mapping(bytes32 => uint256)"
                              }
                            },
                            "id": 6953,
                            "indexExpression": {
                              "expression": {
                                "id": 6950,
                                "name": "lastEntry",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6934,
                                "src": "3862:9:35",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_MapEntry_$6829_storage_ptr",
                                  "typeString": "struct EnumerableMap.MapEntry storage pointer"
                                }
                              },
                              "id": 6951,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_key",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6826,
                              "src": "3862:14:35",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "3849:28:35",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 6956,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 6954,
                              "name": "toDeleteIndex",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6920,
                              "src": "3880:13:35",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "hexValue": "31",
                              "id": 6955,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3896:1:35",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "3880:17:35",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "3849:48:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6958,
                        "nodeType": "ExpressionStatement",
                        "src": "3849:48:35"
                      },
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "expression": {
                                "id": 6959,
                                "name": "map",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6902,
                                "src": "4003:3:35",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                                  "typeString": "struct EnumerableMap.Map storage pointer"
                                }
                              },
                              "id": 6962,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_entries",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6832,
                              "src": "4003:12:35",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_MapEntry_$6829_storage_$dyn_storage",
                                "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
                              }
                            },
                            "id": 6963,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "pop",
                            "nodeType": "MemberAccess",
                            "src": "4003:16:35",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$",
                              "typeString": "function ()"
                            }
                          },
                          "id": 6964,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4003:18:35",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6965,
                        "nodeType": "ExpressionStatement",
                        "src": "4003:18:35"
                      },
                      {
                        "expression": {
                          "id": 6970,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "delete",
                          "prefix": true,
                          "src": "4089:24:35",
                          "subExpression": {
                            "baseExpression": {
                              "expression": {
                                "id": 6966,
                                "name": "map",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6902,
                                "src": "4096:3:35",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                                  "typeString": "struct EnumerableMap.Map storage pointer"
                                }
                              },
                              "id": 6967,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_indexes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 6836,
                              "src": "4096:12:35",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                "typeString": "mapping(bytes32 => uint256)"
                              }
                            },
                            "id": 6969,
                            "indexExpression": {
                              "id": 6968,
                              "name": "key",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6904,
                              "src": "4109:3:35",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "4096:17:35",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6971,
                        "nodeType": "ExpressionStatement",
                        "src": "4089:24:35"
                      },
                      {
                        "expression": {
                          "hexValue": "74727565",
                          "id": 6972,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4135:4:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        "functionReturnParameters": 6908,
                        "id": 6973,
                        "nodeType": "Return",
                        "src": "4128:11:35"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 6900,
              "nodeType": "StructuredDocumentation",
              "src": "2520:157:35",
              "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present."
            },
            "id": 6980,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_remove",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6905,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6902,
                  "mutability": "mutable",
                  "name": "map",
                  "nodeType": "VariableDeclaration",
                  "scope": 6980,
                  "src": "2699:15:35",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                    "typeString": "struct EnumerableMap.Map"
                  },
                  "typeName": {
                    "id": 6901,
                    "name": "Map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 6837,
                    "src": "2699:3:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                      "typeString": "struct EnumerableMap.Map"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6904,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "scope": 6980,
                  "src": "2716:11:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6903,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2716:7:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2698:30:35"
            },
            "returnParameters": {
              "id": 6908,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6907,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6980,
                  "src": "2746:4:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6906,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2746:4:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2745:6:35"
            },
            "scope": 7276,
            "src": "2682:1517:35",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "private"
          },
          {
            "body": {
              "id": 6997,
              "nodeType": "Block",
              "src": "4355:46:35",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6995,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "baseExpression": {
                        "expression": {
                          "id": 6990,
                          "name": "map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6983,
                          "src": "4372:3:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                            "typeString": "struct EnumerableMap.Map storage pointer"
                          }
                        },
                        "id": 6991,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_indexes",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6836,
                        "src": "4372:12:35",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 6993,
                      "indexExpression": {
                        "id": 6992,
                        "name": "key",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6985,
                        "src": "4385:3:35",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4372:17:35",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 6994,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4393:1:35",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "4372:22:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 6989,
                  "id": 6996,
                  "nodeType": "Return",
                  "src": "4365:29:35"
                }
              ]
            },
            "documentation": {
              "id": 6981,
              "nodeType": "StructuredDocumentation",
              "src": "4205:68:35",
              "text": " @dev Returns true if the key is in the map. O(1)."
            },
            "id": 6998,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_contains",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6986,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6983,
                  "mutability": "mutable",
                  "name": "map",
                  "nodeType": "VariableDeclaration",
                  "scope": 6998,
                  "src": "4297:15:35",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                    "typeString": "struct EnumerableMap.Map"
                  },
                  "typeName": {
                    "id": 6982,
                    "name": "Map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 6837,
                    "src": "4297:3:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                      "typeString": "struct EnumerableMap.Map"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6985,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "scope": 6998,
                  "src": "4314:11:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6984,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4314:7:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4296:30:35"
            },
            "returnParameters": {
              "id": 6989,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6988,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6998,
                  "src": "4349:4:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6987,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4349:4:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4348:6:35"
            },
            "scope": 7276,
            "src": "4278:123:35",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "private"
          },
          {
            "body": {
              "id": 7010,
              "nodeType": "Block",
              "src": "4556:43:35",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "expression": {
                        "id": 7006,
                        "name": "map",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7001,
                        "src": "4573:3:35",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                          "typeString": "struct EnumerableMap.Map storage pointer"
                        }
                      },
                      "id": 7007,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "_entries",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6832,
                      "src": "4573:12:35",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_MapEntry_$6829_storage_$dyn_storage",
                        "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
                      }
                    },
                    "id": 7008,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "src": "4573:19:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 7005,
                  "id": 7009,
                  "nodeType": "Return",
                  "src": "4566:26:35"
                }
              ]
            },
            "documentation": {
              "id": 6999,
              "nodeType": "StructuredDocumentation",
              "src": "4407:79:35",
              "text": " @dev Returns the number of key-value pairs in the map. O(1)."
            },
            "id": 7011,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_length",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7002,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7001,
                  "mutability": "mutable",
                  "name": "map",
                  "nodeType": "VariableDeclaration",
                  "scope": 7011,
                  "src": "4508:15:35",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                    "typeString": "struct EnumerableMap.Map"
                  },
                  "typeName": {
                    "id": 7000,
                    "name": "Map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 6837,
                    "src": "4508:3:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                      "typeString": "struct EnumerableMap.Map"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4507:17:35"
            },
            "returnParameters": {
              "id": 7005,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7004,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7011,
                  "src": "4547:7:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7003,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4547:7:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4546:9:35"
            },
            "scope": 7276,
            "src": "4491:108:35",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "private"
          },
          {
            "body": {
              "id": 7045,
              "nodeType": "Block",
              "src": "5027:189:35",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7028,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "expression": {
                              "id": 7024,
                              "name": "map",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7014,
                              "src": "5045:3:35",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                                "typeString": "struct EnumerableMap.Map storage pointer"
                              }
                            },
                            "id": 7025,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "_entries",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6832,
                            "src": "5045:12:35",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_MapEntry_$6829_storage_$dyn_storage",
                              "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
                            }
                          },
                          "id": 7026,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "5045:19:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "id": 7027,
                          "name": "index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7016,
                          "src": "5067:5:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "5045:27:35",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473",
                        "id": 7029,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5074:36:35",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155",
                          "typeString": "literal_string \"EnumerableMap: index out of bounds\""
                        },
                        "value": "EnumerableMap: index out of bounds"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155",
                          "typeString": "literal_string \"EnumerableMap: index out of bounds\""
                        }
                      ],
                      "id": 7023,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "5037:7:35",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 7030,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5037:74:35",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7031,
                  "nodeType": "ExpressionStatement",
                  "src": "5037:74:35"
                },
                {
                  "assignments": [
                    7033
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7033,
                      "mutability": "mutable",
                      "name": "entry",
                      "nodeType": "VariableDeclaration",
                      "scope": 7045,
                      "src": "5122:22:35",
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_MapEntry_$6829_storage_ptr",
                        "typeString": "struct EnumerableMap.MapEntry"
                      },
                      "typeName": {
                        "id": 7032,
                        "name": "MapEntry",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 6829,
                        "src": "5122:8:35",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_MapEntry_$6829_storage_ptr",
                          "typeString": "struct EnumerableMap.MapEntry"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7038,
                  "initialValue": {
                    "baseExpression": {
                      "expression": {
                        "id": 7034,
                        "name": "map",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7014,
                        "src": "5147:3:35",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                          "typeString": "struct EnumerableMap.Map storage pointer"
                        }
                      },
                      "id": 7035,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "_entries",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6832,
                      "src": "5147:12:35",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_MapEntry_$6829_storage_$dyn_storage",
                        "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
                      }
                    },
                    "id": 7037,
                    "indexExpression": {
                      "id": 7036,
                      "name": "index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7016,
                      "src": "5160:5:35",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "5147:19:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_MapEntry_$6829_storage",
                      "typeString": "struct EnumerableMap.MapEntry storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5122:44:35"
                },
                {
                  "expression": {
                    "components": [
                      {
                        "expression": {
                          "id": 7039,
                          "name": "entry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7033,
                          "src": "5184:5:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_MapEntry_$6829_storage_ptr",
                            "typeString": "struct EnumerableMap.MapEntry storage pointer"
                          }
                        },
                        "id": 7040,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_key",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6826,
                        "src": "5184:10:35",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "expression": {
                          "id": 7041,
                          "name": "entry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7033,
                          "src": "5196:5:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_MapEntry_$6829_storage_ptr",
                            "typeString": "struct EnumerableMap.MapEntry storage pointer"
                          }
                        },
                        "id": 7042,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_value",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6828,
                        "src": "5196:12:35",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "id": 7043,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "5183:26:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$",
                      "typeString": "tuple(bytes32,bytes32)"
                    }
                  },
                  "functionReturnParameters": 7022,
                  "id": 7044,
                  "nodeType": "Return",
                  "src": "5176:33:35"
                }
              ]
            },
            "documentation": {
              "id": 7012,
              "nodeType": "StructuredDocumentation",
              "src": "4604:333:35",
              "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."
            },
            "id": 7046,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_at",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7017,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7014,
                  "mutability": "mutable",
                  "name": "map",
                  "nodeType": "VariableDeclaration",
                  "scope": 7046,
                  "src": "4955:15:35",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                    "typeString": "struct EnumerableMap.Map"
                  },
                  "typeName": {
                    "id": 7013,
                    "name": "Map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 6837,
                    "src": "4955:3:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                      "typeString": "struct EnumerableMap.Map"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7016,
                  "mutability": "mutable",
                  "name": "index",
                  "nodeType": "VariableDeclaration",
                  "scope": 7046,
                  "src": "4972:13:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7015,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4972:7:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4954:32:35"
            },
            "returnParameters": {
              "id": 7022,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7019,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7046,
                  "src": "5009:7:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7018,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5009:7:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7021,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7046,
                  "src": "5018:7:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7020,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5018:7:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5008:18:35"
            },
            "scope": 7276,
            "src": "4942:274:35",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "private"
          },
          {
            "body": {
              "id": 7062,
              "nodeType": "Block",
              "src": "5443:72:35",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 7057,
                        "name": "map",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7049,
                        "src": "5465:3:35",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                          "typeString": "struct EnumerableMap.Map storage pointer"
                        }
                      },
                      {
                        "id": 7058,
                        "name": "key",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7051,
                        "src": "5470:3:35",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "hexValue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579",
                        "id": 7059,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "5475:32:35",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072",
                          "typeString": "literal_string \"EnumerableMap: nonexistent key\""
                        },
                        "value": "EnumerableMap: nonexistent key"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                          "typeString": "struct EnumerableMap.Map storage pointer"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072",
                          "typeString": "literal_string \"EnumerableMap: nonexistent key\""
                        }
                      ],
                      "id": 7056,
                      "name": "_get",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7063,
                        7098
                      ],
                      "referencedDeclaration": 7098,
                      "src": "5460:4:35",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$6837_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)"
                      }
                    },
                    "id": 7060,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5460:48:35",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 7055,
                  "id": 7061,
                  "nodeType": "Return",
                  "src": "5453:55:35"
                }
              ]
            },
            "documentation": {
              "id": 7047,
              "nodeType": "StructuredDocumentation",
              "src": "5222:141:35",
              "text": " @dev Returns the value associated with `key`.  O(1).\n Requirements:\n - `key` must be in the map."
            },
            "id": 7063,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_get",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7052,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7049,
                  "mutability": "mutable",
                  "name": "map",
                  "nodeType": "VariableDeclaration",
                  "scope": 7063,
                  "src": "5382:15:35",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                    "typeString": "struct EnumerableMap.Map"
                  },
                  "typeName": {
                    "id": 7048,
                    "name": "Map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 6837,
                    "src": "5382:3:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                      "typeString": "struct EnumerableMap.Map"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7051,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "scope": 7063,
                  "src": "5399:11:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7050,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5399:7:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5381:30:35"
            },
            "returnParameters": {
              "id": 7055,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7054,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7063,
                  "src": "5434:7:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7053,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5434:7:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5433:9:35"
            },
            "scope": 7276,
            "src": "5368:147:35",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "private"
          },
          {
            "body": {
              "id": 7097,
              "nodeType": "Block",
              "src": "5726:212:35",
              "statements": [
                {
                  "assignments": [
                    7076
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7076,
                      "mutability": "mutable",
                      "name": "keyIndex",
                      "nodeType": "VariableDeclaration",
                      "scope": 7097,
                      "src": "5736:16:35",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 7075,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5736:7:35",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7081,
                  "initialValue": {
                    "baseExpression": {
                      "expression": {
                        "id": 7077,
                        "name": "map",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7066,
                        "src": "5755:3:35",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                          "typeString": "struct EnumerableMap.Map storage pointer"
                        }
                      },
                      "id": 7078,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "_indexes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6836,
                      "src": "5755:12:35",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                        "typeString": "mapping(bytes32 => uint256)"
                      }
                    },
                    "id": 7080,
                    "indexExpression": {
                      "id": 7079,
                      "name": "key",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7068,
                      "src": "5768:3:35",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "5755:17:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5736:36:35"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7085,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 7083,
                          "name": "keyIndex",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7076,
                          "src": "5790:8:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 7084,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5802:1:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "5790:13:35",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "id": 7086,
                        "name": "errorMessage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7070,
                        "src": "5805:12:35",
                        "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": 7082,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "5782:7:35",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 7087,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5782:36:35",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7088,
                  "nodeType": "ExpressionStatement",
                  "src": "5782:36:35"
                },
                {
                  "expression": {
                    "expression": {
                      "baseExpression": {
                        "expression": {
                          "id": 7089,
                          "name": "map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7066,
                          "src": "5871:3:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                            "typeString": "struct EnumerableMap.Map storage pointer"
                          }
                        },
                        "id": 7090,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_entries",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 6832,
                        "src": "5871:12:35",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_MapEntry_$6829_storage_$dyn_storage",
                          "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref"
                        }
                      },
                      "id": 7094,
                      "indexExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7093,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 7091,
                          "name": "keyIndex",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7076,
                          "src": "5884:8:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "-",
                        "rightExpression": {
                          "hexValue": "31",
                          "id": 7092,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "5895:1:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "5884:12:35",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "5871:26:35",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_MapEntry_$6829_storage",
                        "typeString": "struct EnumerableMap.MapEntry storage ref"
                      }
                    },
                    "id": 7095,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "_value",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 6828,
                    "src": "5871:33:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 7074,
                  "id": 7096,
                  "nodeType": "Return",
                  "src": "5864:40:35"
                }
              ]
            },
            "documentation": {
              "id": 7064,
              "nodeType": "StructuredDocumentation",
              "src": "5521:97:35",
              "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map."
            },
            "id": 7098,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_get",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7071,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7066,
                  "mutability": "mutable",
                  "name": "map",
                  "nodeType": "VariableDeclaration",
                  "scope": 7098,
                  "src": "5637:15:35",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                    "typeString": "struct EnumerableMap.Map"
                  },
                  "typeName": {
                    "id": 7065,
                    "name": "Map",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 6837,
                    "src": "5637:3:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                      "typeString": "struct EnumerableMap.Map"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7068,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "scope": 7098,
                  "src": "5654:11:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7067,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5654:7:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7070,
                  "mutability": "mutable",
                  "name": "errorMessage",
                  "nodeType": "VariableDeclaration",
                  "scope": 7098,
                  "src": "5667:26:35",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 7069,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "5667:6:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5636:58:35"
            },
            "returnParameters": {
              "id": 7074,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7073,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7098,
                  "src": "5717:7:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7072,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5717:7:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5716:9:35"
            },
            "scope": 7276,
            "src": "5623:315:35",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "private"
          },
          {
            "canonicalName": "EnumerableMap.UintToAddressMap",
            "id": 7101,
            "members": [
              {
                "constant": false,
                "id": 7100,
                "mutability": "mutable",
                "name": "_inner",
                "nodeType": "VariableDeclaration",
                "scope": 7101,
                "src": "6003:10:35",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                  "typeString": "struct EnumerableMap.Map"
                },
                "typeName": {
                  "id": 7099,
                  "name": "Map",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 6837,
                  "src": "6003:3:35",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                    "typeString": "struct EnumerableMap.Map"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "UintToAddressMap",
            "nodeType": "StructDefinition",
            "scope": 7276,
            "src": "5969:51:35",
            "visibility": "public"
          },
          {
            "body": {
              "id": 7129,
              "nodeType": "Block",
              "src": "6342:79:35",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 7114,
                          "name": "map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7104,
                          "src": "6364:3:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_UintToAddressMap_$7101_storage_ptr",
                            "typeString": "struct EnumerableMap.UintToAddressMap storage pointer"
                          }
                        },
                        "id": 7115,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7100,
                        "src": "6364:10:35",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Map_$6837_storage",
                          "typeString": "struct EnumerableMap.Map storage ref"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 7118,
                            "name": "key",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7106,
                            "src": "6384:3:35",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 7117,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "6376:7:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 7116,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "6376:7:35",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 7119,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6376:12:35",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "id": 7124,
                                "name": "value",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7108,
                                "src": "6406:5:35",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "id": 7123,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "6398:7:35",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 7122,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "6398:7:35",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 7125,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6398:14:35",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 7121,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "6390:7:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 7120,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "6390:7:35",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 7126,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6390:23:35",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Map_$6837_storage",
                          "typeString": "struct EnumerableMap.Map storage ref"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 7113,
                      "name": "_set",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6899,
                      "src": "6359:4:35",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$6837_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)"
                      }
                    },
                    "id": 7127,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6359:55:35",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 7112,
                  "id": 7128,
                  "nodeType": "Return",
                  "src": "6352:62:35"
                }
              ]
            },
            "documentation": {
              "id": 7102,
              "nodeType": "StructuredDocumentation",
              "src": "6026:216:35",
              "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present."
            },
            "id": 7130,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "set",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7109,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7104,
                  "mutability": "mutable",
                  "name": "map",
                  "nodeType": "VariableDeclaration",
                  "scope": 7130,
                  "src": "6260:28:35",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UintToAddressMap_$7101_storage_ptr",
                    "typeString": "struct EnumerableMap.UintToAddressMap"
                  },
                  "typeName": {
                    "id": 7103,
                    "name": "UintToAddressMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7101,
                    "src": "6260:16:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UintToAddressMap_$7101_storage_ptr",
                      "typeString": "struct EnumerableMap.UintToAddressMap"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7106,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "scope": 7130,
                  "src": "6290:11:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7105,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6290:7:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7108,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 7130,
                  "src": "6303:13:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7107,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6303:7:35",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6259:58:35"
            },
            "returnParameters": {
              "id": 7112,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7111,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7130,
                  "src": "6336:4:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 7110,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6336:4:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6335:6:35"
            },
            "scope": 7276,
            "src": "6247:174:35",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7149,
              "nodeType": "Block",
              "src": "6663:57:35",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 7141,
                          "name": "map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7133,
                          "src": "6688:3:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_UintToAddressMap_$7101_storage_ptr",
                            "typeString": "struct EnumerableMap.UintToAddressMap storage pointer"
                          }
                        },
                        "id": 7142,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7100,
                        "src": "6688:10:35",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Map_$6837_storage",
                          "typeString": "struct EnumerableMap.Map storage ref"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 7145,
                            "name": "key",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7135,
                            "src": "6708:3:35",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 7144,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "6700:7:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 7143,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "6700:7:35",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 7146,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6700:12:35",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Map_$6837_storage",
                          "typeString": "struct EnumerableMap.Map storage ref"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 7140,
                      "name": "_remove",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6980,
                      "src": "6680:7:35",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$6837_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 7147,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6680:33:35",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 7139,
                  "id": 7148,
                  "nodeType": "Return",
                  "src": "6673:40:35"
                }
              ]
            },
            "documentation": {
              "id": 7131,
              "nodeType": "StructuredDocumentation",
              "src": "6427:148:35",
              "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present."
            },
            "id": 7150,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "remove",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7136,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7133,
                  "mutability": "mutable",
                  "name": "map",
                  "nodeType": "VariableDeclaration",
                  "scope": 7150,
                  "src": "6596:28:35",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UintToAddressMap_$7101_storage_ptr",
                    "typeString": "struct EnumerableMap.UintToAddressMap"
                  },
                  "typeName": {
                    "id": 7132,
                    "name": "UintToAddressMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7101,
                    "src": "6596:16:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UintToAddressMap_$7101_storage_ptr",
                      "typeString": "struct EnumerableMap.UintToAddressMap"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7135,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "scope": 7150,
                  "src": "6626:11:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7134,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6626:7:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6595:43:35"
            },
            "returnParameters": {
              "id": 7139,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7138,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7150,
                  "src": "6657:4:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 7137,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6657:4:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6656:6:35"
            },
            "scope": 7276,
            "src": "6580:140:35",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7169,
              "nodeType": "Block",
              "src": "6889:59:35",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 7161,
                          "name": "map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7153,
                          "src": "6916:3:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_UintToAddressMap_$7101_storage_ptr",
                            "typeString": "struct EnumerableMap.UintToAddressMap storage pointer"
                          }
                        },
                        "id": 7162,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7100,
                        "src": "6916:10:35",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Map_$6837_storage",
                          "typeString": "struct EnumerableMap.Map storage ref"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 7165,
                            "name": "key",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7155,
                            "src": "6936:3:35",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 7164,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "6928:7:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 7163,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "6928:7:35",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 7166,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6928:12:35",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Map_$6837_storage",
                          "typeString": "struct EnumerableMap.Map storage ref"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 7160,
                      "name": "_contains",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6998,
                      "src": "6906:9:35",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$6837_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)"
                      }
                    },
                    "id": 7167,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6906:35:35",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 7159,
                  "id": 7168,
                  "nodeType": "Return",
                  "src": "6899:42:35"
                }
              ]
            },
            "documentation": {
              "id": 7151,
              "nodeType": "StructuredDocumentation",
              "src": "6726:68:35",
              "text": " @dev Returns true if the key is in the map. O(1)."
            },
            "id": 7170,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "contains",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7156,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7153,
                  "mutability": "mutable",
                  "name": "map",
                  "nodeType": "VariableDeclaration",
                  "scope": 7170,
                  "src": "6817:28:35",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UintToAddressMap_$7101_storage_ptr",
                    "typeString": "struct EnumerableMap.UintToAddressMap"
                  },
                  "typeName": {
                    "id": 7152,
                    "name": "UintToAddressMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7101,
                    "src": "6817:16:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UintToAddressMap_$7101_storage_ptr",
                      "typeString": "struct EnumerableMap.UintToAddressMap"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7155,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "scope": 7170,
                  "src": "6847:11:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7154,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6847:7:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6816:43:35"
            },
            "returnParameters": {
              "id": 7159,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7158,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7170,
                  "src": "6883:4:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 7157,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6883:4:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6882:6:35"
            },
            "scope": 7276,
            "src": "6799:149:35",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7183,
              "nodeType": "Block",
              "src": "7109:43:35",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 7179,
                          "name": "map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7173,
                          "src": "7134:3:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_UintToAddressMap_$7101_storage_ptr",
                            "typeString": "struct EnumerableMap.UintToAddressMap storage pointer"
                          }
                        },
                        "id": 7180,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7100,
                        "src": "7134:10:35",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Map_$6837_storage",
                          "typeString": "struct EnumerableMap.Map storage ref"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Map_$6837_storage",
                          "typeString": "struct EnumerableMap.Map storage ref"
                        }
                      ],
                      "id": 7178,
                      "name": "_length",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7011,
                      "src": "7126:7:35",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$6837_storage_ptr_$returns$_t_uint256_$",
                        "typeString": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)"
                      }
                    },
                    "id": 7181,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7126:19:35",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 7177,
                  "id": 7182,
                  "nodeType": "Return",
                  "src": "7119:26:35"
                }
              ]
            },
            "documentation": {
              "id": 7171,
              "nodeType": "StructuredDocumentation",
              "src": "6954:72:35",
              "text": " @dev Returns the number of elements in the map. O(1)."
            },
            "id": 7184,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "length",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7174,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7173,
                  "mutability": "mutable",
                  "name": "map",
                  "nodeType": "VariableDeclaration",
                  "scope": 7184,
                  "src": "7047:28:35",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UintToAddressMap_$7101_storage_ptr",
                    "typeString": "struct EnumerableMap.UintToAddressMap"
                  },
                  "typeName": {
                    "id": 7172,
                    "name": "UintToAddressMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7101,
                    "src": "7047:16:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UintToAddressMap_$7101_storage_ptr",
                      "typeString": "struct EnumerableMap.UintToAddressMap"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7046:30:35"
            },
            "returnParameters": {
              "id": 7177,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7176,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7184,
                  "src": "7100:7:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7175,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7100:7:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7099:9:35"
            },
            "scope": 7276,
            "src": "7031:121:35",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7219,
              "nodeType": "Block",
              "src": "7578:126:35",
              "statements": [
                {
                  "assignments": [
                    7197,
                    7199
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7197,
                      "mutability": "mutable",
                      "name": "key",
                      "nodeType": "VariableDeclaration",
                      "scope": 7219,
                      "src": "7589:11:35",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 7196,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "7589:7:35",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    },
                    {
                      "constant": false,
                      "id": 7199,
                      "mutability": "mutable",
                      "name": "value",
                      "nodeType": "VariableDeclaration",
                      "scope": 7219,
                      "src": "7602:13:35",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 7198,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "7602:7:35",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7205,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 7201,
                          "name": "map",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7187,
                          "src": "7623:3:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_UintToAddressMap_$7101_storage_ptr",
                            "typeString": "struct EnumerableMap.UintToAddressMap storage pointer"
                          }
                        },
                        "id": 7202,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7100,
                        "src": "7623:10:35",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Map_$6837_storage",
                          "typeString": "struct EnumerableMap.Map storage ref"
                        }
                      },
                      {
                        "id": 7203,
                        "name": "index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7189,
                        "src": "7635:5:35",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Map_$6837_storage",
                          "typeString": "struct EnumerableMap.Map storage ref"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 7200,
                      "name": "_at",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7046,
                      "src": "7619:3:35",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$6837_storage_ptr_$_t_uint256_$returns$_t_bytes32_$_t_bytes32_$",
                        "typeString": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)"
                      }
                    },
                    "id": 7204,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7619:22:35",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$",
                      "typeString": "tuple(bytes32,bytes32)"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7588:53:35"
                },
                {
                  "expression": {
                    "components": [
                      {
                        "arguments": [
                          {
                            "id": 7208,
                            "name": "key",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7197,
                            "src": "7667:3:35",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 7207,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7659:7:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 7206,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7659:7:35",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 7209,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7659:12:35",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "id": 7214,
                                "name": "value",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7199,
                                "src": "7689:5:35",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 7213,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7681:7:35",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 7212,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "7681:7:35",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 7215,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7681:14:35",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 7211,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7673:7:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 7210,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "7673:7:35",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 7216,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7673:23:35",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "id": 7217,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "7658:39:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_uint256_$_t_address_payable_$",
                      "typeString": "tuple(uint256,address payable)"
                    }
                  },
                  "functionReturnParameters": 7195,
                  "id": 7218,
                  "nodeType": "Return",
                  "src": "7651:46:35"
                }
              ]
            },
            "documentation": {
              "id": 7185,
              "nodeType": "StructuredDocumentation",
              "src": "7157:318:35",
              "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."
            },
            "id": 7220,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "at",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7190,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7187,
                  "mutability": "mutable",
                  "name": "map",
                  "nodeType": "VariableDeclaration",
                  "scope": 7220,
                  "src": "7492:28:35",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UintToAddressMap_$7101_storage_ptr",
                    "typeString": "struct EnumerableMap.UintToAddressMap"
                  },
                  "typeName": {
                    "id": 7186,
                    "name": "UintToAddressMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7101,
                    "src": "7492:16:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UintToAddressMap_$7101_storage_ptr",
                      "typeString": "struct EnumerableMap.UintToAddressMap"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7189,
                  "mutability": "mutable",
                  "name": "index",
                  "nodeType": "VariableDeclaration",
                  "scope": 7220,
                  "src": "7522:13:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7188,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7522:7:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7491:45:35"
            },
            "returnParameters": {
              "id": 7195,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7192,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7220,
                  "src": "7560:7:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7191,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7560:7:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7194,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7220,
                  "src": "7569:7:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7193,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7569:7:35",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7559:18:35"
            },
            "scope": 7276,
            "src": "7480:224:35",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7245,
              "nodeType": "Block",
              "src": "7944:72:35",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "expression": {
                                  "id": 7235,
                                  "name": "map",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7223,
                                  "src": "7982:3:35",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_UintToAddressMap_$7101_storage_ptr",
                                    "typeString": "struct EnumerableMap.UintToAddressMap storage pointer"
                                  }
                                },
                                "id": 7236,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "_inner",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7100,
                                "src": "7982:10:35",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Map_$6837_storage",
                                  "typeString": "struct EnumerableMap.Map storage ref"
                                }
                              },
                              {
                                "arguments": [
                                  {
                                    "id": 7239,
                                    "name": "key",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7225,
                                    "src": "8002:3:35",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 7238,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "7994:7:35",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 7237,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "7994:7:35",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 7240,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "7994:12:35",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_struct$_Map_$6837_storage",
                                  "typeString": "struct EnumerableMap.Map storage ref"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 7234,
                              "name": "_get",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [
                                7063,
                                7098
                              ],
                              "referencedDeclaration": 7063,
                              "src": "7977:4:35",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$6837_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$",
                                "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)"
                              }
                            },
                            "id": 7241,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7977:30:35",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 7233,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7969:7:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 7232,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7969:7:35",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 7242,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7969:39:35",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 7231,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "7961:7:35",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": {
                        "id": 7230,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "7961:7:35",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 7243,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7961:48:35",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "functionReturnParameters": 7229,
                  "id": 7244,
                  "nodeType": "Return",
                  "src": "7954:55:35"
                }
              ]
            },
            "documentation": {
              "id": 7221,
              "nodeType": "StructuredDocumentation",
              "src": "7710:141:35",
              "text": " @dev Returns the value associated with `key`.  O(1).\n Requirements:\n - `key` must be in the map."
            },
            "id": 7246,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "get",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7226,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7223,
                  "mutability": "mutable",
                  "name": "map",
                  "nodeType": "VariableDeclaration",
                  "scope": 7246,
                  "src": "7869:28:35",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UintToAddressMap_$7101_storage_ptr",
                    "typeString": "struct EnumerableMap.UintToAddressMap"
                  },
                  "typeName": {
                    "id": 7222,
                    "name": "UintToAddressMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7101,
                    "src": "7869:16:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UintToAddressMap_$7101_storage_ptr",
                      "typeString": "struct EnumerableMap.UintToAddressMap"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7225,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "scope": 7246,
                  "src": "7899:11:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7224,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7899:7:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7868:43:35"
            },
            "returnParameters": {
              "id": 7229,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7228,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7246,
                  "src": "7935:7:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7227,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7935:7:35",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7934:9:35"
            },
            "scope": 7276,
            "src": "7856:160:35",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7274,
              "nodeType": "Block",
              "src": "8239:86:35",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "expression": {
                                  "id": 7263,
                                  "name": "map",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7249,
                                  "src": "8277:3:35",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_UintToAddressMap_$7101_storage_ptr",
                                    "typeString": "struct EnumerableMap.UintToAddressMap storage pointer"
                                  }
                                },
                                "id": 7264,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "_inner",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7100,
                                "src": "8277:10:35",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Map_$6837_storage",
                                  "typeString": "struct EnumerableMap.Map storage ref"
                                }
                              },
                              {
                                "arguments": [
                                  {
                                    "id": 7267,
                                    "name": "key",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7251,
                                    "src": "8297:3:35",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 7266,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "8289:7:35",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes32_$",
                                    "typeString": "type(bytes32)"
                                  },
                                  "typeName": {
                                    "id": 7265,
                                    "name": "bytes32",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "8289:7:35",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 7268,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8289:12:35",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              {
                                "id": 7269,
                                "name": "errorMessage",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7253,
                                "src": "8303:12:35",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_struct$_Map_$6837_storage",
                                  "typeString": "struct EnumerableMap.Map storage ref"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              ],
                              "id": 7262,
                              "name": "_get",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [
                                7063,
                                7098
                              ],
                              "referencedDeclaration": 7098,
                              "src": "8272:4:35",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$6837_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$",
                                "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)"
                              }
                            },
                            "id": 7270,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8272:44:35",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 7261,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "8264:7:35",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 7260,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "8264:7:35",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 7271,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8264:53:35",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 7259,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "8256:7:35",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": {
                        "id": 7258,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "8256:7:35",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 7272,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8256:62:35",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "functionReturnParameters": 7257,
                  "id": 7273,
                  "nodeType": "Return",
                  "src": "8249:69:35"
                }
              ]
            },
            "documentation": {
              "id": 7247,
              "nodeType": "StructuredDocumentation",
              "src": "8022:96:35",
              "text": " @dev Same as {get}, with a custom error message when `key` is not in the map."
            },
            "id": 7275,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "get",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7254,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7249,
                  "mutability": "mutable",
                  "name": "map",
                  "nodeType": "VariableDeclaration",
                  "scope": 7275,
                  "src": "8136:28:35",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UintToAddressMap_$7101_storage_ptr",
                    "typeString": "struct EnumerableMap.UintToAddressMap"
                  },
                  "typeName": {
                    "id": 7248,
                    "name": "UintToAddressMap",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7101,
                    "src": "8136:16:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UintToAddressMap_$7101_storage_ptr",
                      "typeString": "struct EnumerableMap.UintToAddressMap"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7251,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "scope": 7275,
                  "src": "8166:11:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7250,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8166:7:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7253,
                  "mutability": "mutable",
                  "name": "errorMessage",
                  "nodeType": "VariableDeclaration",
                  "scope": 7275,
                  "src": "8179:26:35",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 7252,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "8179:6:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8135:71:35"
            },
            "returnParameters": {
              "id": 7257,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7256,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7275,
                  "src": "8230:7:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7255,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8230:7:35",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8229:9:35"
            },
            "scope": 7276,
            "src": "8123:202:35",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "scope": 7277,
        "src": "772:7555:35"
      }
    ],
    "src": "33:8295:35"
  },
  "legacyAST": {
    "attributes": {
      "absolutePath": "@openzeppelin/contracts/utils/EnumerableMap.sol",
      "exportedSymbols": {
        "EnumerableMap": [
          7276
        ]
      },
      "license": "MIT"
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            ">=",
            "0.6",
            ".0",
            "<",
            "0.8",
            ".0"
          ]
        },
        "id": 6823,
        "name": "PragmaDirective",
        "src": "33:31:35"
      },
      {
        "attributes": {
          "abstract": false,
          "baseContracts": [
            null
          ],
          "contractDependencies": [
            null
          ],
          "contractKind": "library",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            7276
          ],
          "name": "EnumerableMap",
          "scope": 7277
        },
        "children": [
          {
            "attributes": {
              "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n     // Add the library methods\n     using EnumerableMap for EnumerableMap.UintToAddressMap;\n     // Declare a set state variable\n     EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported."
            },
            "id": 6824,
            "name": "StructuredDocumentation",
            "src": "66:705:35"
          },
          {
            "attributes": {
              "canonicalName": "EnumerableMap.MapEntry",
              "name": "MapEntry",
              "scope": 7276,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "_key",
                  "scope": 6829,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bytes32",
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes32",
                      "type": "bytes32"
                    },
                    "id": 6825,
                    "name": "ElementaryTypeName",
                    "src": "1284:7:35"
                  }
                ],
                "id": 6826,
                "name": "VariableDeclaration",
                "src": "1284:12:35"
              },
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "_value",
                  "scope": 6829,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bytes32",
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes32",
                      "type": "bytes32"
                    },
                    "id": 6827,
                    "name": "ElementaryTypeName",
                    "src": "1306:7:35"
                  }
                ],
                "id": 6828,
                "name": "VariableDeclaration",
                "src": "1306:14:35"
              }
            ],
            "id": 6829,
            "name": "StructDefinition",
            "src": "1258:69:35"
          },
          {
            "attributes": {
              "canonicalName": "EnumerableMap.Map",
              "name": "Map",
              "scope": 7276,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "_entries",
                  "scope": 6837,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "struct EnumerableMap.MapEntry[]",
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "type": "struct EnumerableMap.MapEntry[]"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "MapEntry",
                          "referencedDeclaration": 6829,
                          "type": "struct EnumerableMap.MapEntry"
                        },
                        "id": 6830,
                        "name": "UserDefinedTypeName",
                        "src": "1396:8:35"
                      }
                    ],
                    "id": 6831,
                    "name": "ArrayTypeName",
                    "src": "1396:10:35"
                  }
                ],
                "id": 6832,
                "name": "VariableDeclaration",
                "src": "1396:19:35"
              },
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "_indexes",
                  "scope": 6837,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "mapping(bytes32 => uint256)",
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "type": "mapping(bytes32 => uint256)"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 6833,
                        "name": "ElementaryTypeName",
                        "src": "1574:7:35"
                      },
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 6834,
                        "name": "ElementaryTypeName",
                        "src": "1585:7:35"
                      }
                    ],
                    "id": 6835,
                    "name": "Mapping",
                    "src": "1565:28:35"
                  }
                ],
                "id": 6836,
                "name": "VariableDeclaration",
                "src": "1565:37:35"
              }
            ],
            "id": 6837,
            "name": "StructDefinition",
            "src": "1333:276:35"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "_set",
              "scope": 7276,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "private"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present."
                },
                "id": 6838,
                "name": "StructuredDocumentation",
                "src": "1615:216:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "map",
                      "scope": 6899,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableMap.Map",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "Map",
                          "referencedDeclaration": 6837,
                          "type": "struct EnumerableMap.Map"
                        },
                        "id": 6839,
                        "name": "UserDefinedTypeName",
                        "src": "1850:3:35"
                      }
                    ],
                    "id": 6840,
                    "name": "VariableDeclaration",
                    "src": "1850:15:35"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "key",
                      "scope": 6899,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 6841,
                        "name": "ElementaryTypeName",
                        "src": "1867:7:35"
                      }
                    ],
                    "id": 6842,
                    "name": "VariableDeclaration",
                    "src": "1867:11:35"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "value",
                      "scope": 6899,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 6843,
                        "name": "ElementaryTypeName",
                        "src": "1880:7:35"
                      }
                    ],
                    "id": 6844,
                    "name": "VariableDeclaration",
                    "src": "1880:13:35"
                  }
                ],
                "id": 6845,
                "name": "ParameterList",
                "src": "1849:45:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 6899,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 6846,
                        "name": "ElementaryTypeName",
                        "src": "1912:4:35"
                      }
                    ],
                    "id": 6847,
                    "name": "VariableDeclaration",
                    "src": "1912:4:35"
                  }
                ],
                "id": 6848,
                "name": "ParameterList",
                "src": "1911:6:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        6850
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "keyIndex",
                          "scope": 6898,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 6849,
                            "name": "ElementaryTypeName",
                            "src": "2026:7:35"
                          }
                        ],
                        "id": 6850,
                        "name": "VariableDeclaration",
                        "src": "2026:16:35"
                      },
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "_indexes",
                              "referencedDeclaration": 6836,
                              "type": "mapping(bytes32 => uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6840,
                                  "type": "struct EnumerableMap.Map storage pointer",
                                  "value": "map"
                                },
                                "id": 6851,
                                "name": "Identifier",
                                "src": "2045:3:35"
                              }
                            ],
                            "id": 6852,
                            "name": "MemberAccess",
                            "src": "2045:12:35"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6842,
                              "type": "bytes32",
                              "value": "key"
                            },
                            "id": 6853,
                            "name": "Identifier",
                            "src": "2058:3:35"
                          }
                        ],
                        "id": 6854,
                        "name": "IndexAccess",
                        "src": "2045:17:35"
                      }
                    ],
                    "id": 6855,
                    "name": "VariableDeclarationStatement",
                    "src": "2026:36:35"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "==",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6850,
                              "type": "uint256",
                              "value": "keyIndex"
                            },
                            "id": 6856,
                            "name": "Identifier",
                            "src": "2077:8:35"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 6857,
                            "name": "Literal",
                            "src": "2089:1:35"
                          }
                        ],
                        "id": 6858,
                        "name": "BinaryOperation",
                        "src": "2077:13:35"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "tuple()",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_struct$_MapEntry_$6829_memory_ptr",
                                          "typeString": "struct EnumerableMap.MapEntry memory"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "push",
                                      "type": "function (struct EnumerableMap.MapEntry storage ref)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "_entries",
                                          "referencedDeclaration": 6832,
                                          "type": "struct EnumerableMap.MapEntry storage ref[] storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6840,
                                              "type": "struct EnumerableMap.Map storage pointer",
                                              "value": "map"
                                            },
                                            "id": 6859,
                                            "name": "Identifier",
                                            "src": "2143:3:35"
                                          }
                                        ],
                                        "id": 6862,
                                        "name": "MemberAccess",
                                        "src": "2143:12:35"
                                      }
                                    ],
                                    "id": 6863,
                                    "name": "MemberAccess",
                                    "src": "2143:17:35"
                                  },
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": true,
                                      "lValueRequested": false,
                                      "names": [
                                        "_key",
                                        "_value"
                                      ],
                                      "tryCall": false,
                                      "type": "struct EnumerableMap.MapEntry memory",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            },
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6829,
                                          "type": "type(struct EnumerableMap.MapEntry storage pointer)",
                                          "value": "MapEntry"
                                        },
                                        "id": 6864,
                                        "name": "Identifier",
                                        "src": "2161:8:35"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6842,
                                          "type": "bytes32",
                                          "value": "key"
                                        },
                                        "id": 6865,
                                        "name": "Identifier",
                                        "src": "2178:3:35"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6844,
                                          "type": "bytes32",
                                          "value": "value"
                                        },
                                        "id": 6866,
                                        "name": "Identifier",
                                        "src": "2191:5:35"
                                      }
                                    ],
                                    "id": 6867,
                                    "name": "FunctionCall",
                                    "src": "2161:38:35"
                                  }
                                ],
                                "id": 6868,
                                "name": "FunctionCall",
                                "src": "2143:57:35"
                              }
                            ],
                            "id": 6869,
                            "name": "ExpressionStatement",
                            "src": "2143:57:35"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "_indexes",
                                          "referencedDeclaration": 6836,
                                          "type": "mapping(bytes32 => uint256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6840,
                                              "type": "struct EnumerableMap.Map storage pointer",
                                              "value": "map"
                                            },
                                            "id": 6870,
                                            "name": "Identifier",
                                            "src": "2335:3:35"
                                          }
                                        ],
                                        "id": 6873,
                                        "name": "MemberAccess",
                                        "src": "2335:12:35"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6842,
                                          "type": "bytes32",
                                          "value": "key"
                                        },
                                        "id": 6872,
                                        "name": "Identifier",
                                        "src": "2348:3:35"
                                      }
                                    ],
                                    "id": 6874,
                                    "name": "IndexAccess",
                                    "src": "2335:17:35"
                                  },
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "length",
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "_entries",
                                          "referencedDeclaration": 6832,
                                          "type": "struct EnumerableMap.MapEntry storage ref[] storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6840,
                                              "type": "struct EnumerableMap.Map storage pointer",
                                              "value": "map"
                                            },
                                            "id": 6875,
                                            "name": "Identifier",
                                            "src": "2355:3:35"
                                          }
                                        ],
                                        "id": 6876,
                                        "name": "MemberAccess",
                                        "src": "2355:12:35"
                                      }
                                    ],
                                    "id": 6877,
                                    "name": "MemberAccess",
                                    "src": "2355:19:35"
                                  }
                                ],
                                "id": 6878,
                                "name": "Assignment",
                                "src": "2335:39:35"
                              }
                            ],
                            "id": 6879,
                            "name": "ExpressionStatement",
                            "src": "2335:39:35"
                          },
                          {
                            "attributes": {
                              "functionReturnParameters": 6848
                            },
                            "children": [
                              {
                                "attributes": {
                                  "hexvalue": "74727565",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "bool",
                                  "type": "bool",
                                  "value": "true"
                                },
                                "id": 6880,
                                "name": "Literal",
                                "src": "2395:4:35"
                              }
                            ],
                            "id": 6881,
                            "name": "Return",
                            "src": "2388:11:35"
                          }
                        ],
                        "id": 6882,
                        "name": "Block",
                        "src": "2092:318:35"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "bytes32"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "member_name": "_value",
                                      "referencedDeclaration": 6828,
                                      "type": "bytes32"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "struct EnumerableMap.MapEntry storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "_entries",
                                              "referencedDeclaration": 6832,
                                              "type": "struct EnumerableMap.MapEntry storage ref[] storage ref"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 6840,
                                                  "type": "struct EnumerableMap.Map storage pointer",
                                                  "value": "map"
                                                },
                                                "id": 6883,
                                                "name": "Identifier",
                                                "src": "2430:3:35"
                                              }
                                            ],
                                            "id": 6888,
                                            "name": "MemberAccess",
                                            "src": "2430:12:35"
                                          },
                                          {
                                            "attributes": {
                                              "commonType": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              },
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": "-",
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 6850,
                                                  "type": "uint256",
                                                  "value": "keyIndex"
                                                },
                                                "id": 6885,
                                                "name": "Identifier",
                                                "src": "2443:8:35"
                                              },
                                              {
                                                "attributes": {
                                                  "hexvalue": "31",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "token": "number",
                                                  "type": "int_const 1",
                                                  "value": "1"
                                                },
                                                "id": 6886,
                                                "name": "Literal",
                                                "src": "2454:1:35"
                                              }
                                            ],
                                            "id": 6887,
                                            "name": "BinaryOperation",
                                            "src": "2443:12:35"
                                          }
                                        ],
                                        "id": 6889,
                                        "name": "IndexAccess",
                                        "src": "2430:26:35"
                                      }
                                    ],
                                    "id": 6890,
                                    "name": "MemberAccess",
                                    "src": "2430:33:35"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 6844,
                                      "type": "bytes32",
                                      "value": "value"
                                    },
                                    "id": 6891,
                                    "name": "Identifier",
                                    "src": "2466:5:35"
                                  }
                                ],
                                "id": 6892,
                                "name": "Assignment",
                                "src": "2430:41:35"
                              }
                            ],
                            "id": 6893,
                            "name": "ExpressionStatement",
                            "src": "2430:41:35"
                          },
                          {
                            "attributes": {
                              "functionReturnParameters": 6848
                            },
                            "children": [
                              {
                                "attributes": {
                                  "hexvalue": "66616c7365",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "bool",
                                  "type": "bool",
                                  "value": "false"
                                },
                                "id": 6894,
                                "name": "Literal",
                                "src": "2492:5:35"
                              }
                            ],
                            "id": 6895,
                            "name": "Return",
                            "src": "2485:12:35"
                          }
                        ],
                        "id": 6896,
                        "name": "Block",
                        "src": "2416:92:35"
                      }
                    ],
                    "id": 6897,
                    "name": "IfStatement",
                    "src": "2073:435:35"
                  }
                ],
                "id": 6898,
                "name": "Block",
                "src": "1918:596:35"
              }
            ],
            "id": 6899,
            "name": "FunctionDefinition",
            "src": "1836:678:35"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "_remove",
              "scope": 7276,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "private"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present."
                },
                "id": 6900,
                "name": "StructuredDocumentation",
                "src": "2520:157:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "map",
                      "scope": 6980,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableMap.Map",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "Map",
                          "referencedDeclaration": 6837,
                          "type": "struct EnumerableMap.Map"
                        },
                        "id": 6901,
                        "name": "UserDefinedTypeName",
                        "src": "2699:3:35"
                      }
                    ],
                    "id": 6902,
                    "name": "VariableDeclaration",
                    "src": "2699:15:35"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "key",
                      "scope": 6980,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 6903,
                        "name": "ElementaryTypeName",
                        "src": "2716:7:35"
                      }
                    ],
                    "id": 6904,
                    "name": "VariableDeclaration",
                    "src": "2716:11:35"
                  }
                ],
                "id": 6905,
                "name": "ParameterList",
                "src": "2698:30:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 6980,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 6906,
                        "name": "ElementaryTypeName",
                        "src": "2746:4:35"
                      }
                    ],
                    "id": 6907,
                    "name": "VariableDeclaration",
                    "src": "2746:4:35"
                  }
                ],
                "id": 6908,
                "name": "ParameterList",
                "src": "2745:6:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        6910
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "keyIndex",
                          "scope": 6979,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 6909,
                            "name": "ElementaryTypeName",
                            "src": "2860:7:35"
                          }
                        ],
                        "id": 6910,
                        "name": "VariableDeclaration",
                        "src": "2860:16:35"
                      },
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "_indexes",
                              "referencedDeclaration": 6836,
                              "type": "mapping(bytes32 => uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6902,
                                  "type": "struct EnumerableMap.Map storage pointer",
                                  "value": "map"
                                },
                                "id": 6911,
                                "name": "Identifier",
                                "src": "2879:3:35"
                              }
                            ],
                            "id": 6912,
                            "name": "MemberAccess",
                            "src": "2879:12:35"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6904,
                              "type": "bytes32",
                              "value": "key"
                            },
                            "id": 6913,
                            "name": "Identifier",
                            "src": "2892:3:35"
                          }
                        ],
                        "id": 6914,
                        "name": "IndexAccess",
                        "src": "2879:17:35"
                      }
                    ],
                    "id": 6915,
                    "name": "VariableDeclarationStatement",
                    "src": "2860:36:35"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6910,
                              "type": "uint256",
                              "value": "keyIndex"
                            },
                            "id": 6916,
                            "name": "Identifier",
                            "src": "2911:8:35"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 6917,
                            "name": "Literal",
                            "src": "2923:1:35"
                          }
                        ],
                        "id": 6918,
                        "name": "BinaryOperation",
                        "src": "2911:13:35"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "assignments": [
                                6920
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "toDeleteIndex",
                                  "scope": 6974,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint256",
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint256",
                                      "type": "uint256"
                                    },
                                    "id": 6919,
                                    "name": "ElementaryTypeName",
                                    "src": "3267:7:35"
                                  }
                                ],
                                "id": 6920,
                                "name": "VariableDeclaration",
                                "src": "3267:21:35"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "-",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 6910,
                                      "type": "uint256",
                                      "value": "keyIndex"
                                    },
                                    "id": 6921,
                                    "name": "Identifier",
                                    "src": "3291:8:35"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "31",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 1",
                                      "value": "1"
                                    },
                                    "id": 6922,
                                    "name": "Literal",
                                    "src": "3302:1:35"
                                  }
                                ],
                                "id": 6923,
                                "name": "BinaryOperation",
                                "src": "3291:12:35"
                              }
                            ],
                            "id": 6924,
                            "name": "VariableDeclarationStatement",
                            "src": "3267:36:35"
                          },
                          {
                            "attributes": {
                              "assignments": [
                                6926
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "lastIndex",
                                  "scope": 6974,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint256",
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint256",
                                      "type": "uint256"
                                    },
                                    "id": 6925,
                                    "name": "ElementaryTypeName",
                                    "src": "3317:7:35"
                                  }
                                ],
                                "id": 6926,
                                "name": "VariableDeclaration",
                                "src": "3317:17:35"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "-",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "length",
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "_entries",
                                          "referencedDeclaration": 6832,
                                          "type": "struct EnumerableMap.MapEntry storage ref[] storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6902,
                                              "type": "struct EnumerableMap.Map storage pointer",
                                              "value": "map"
                                            },
                                            "id": 6927,
                                            "name": "Identifier",
                                            "src": "3337:3:35"
                                          }
                                        ],
                                        "id": 6928,
                                        "name": "MemberAccess",
                                        "src": "3337:12:35"
                                      }
                                    ],
                                    "id": 6929,
                                    "name": "MemberAccess",
                                    "src": "3337:19:35"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "31",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 1",
                                      "value": "1"
                                    },
                                    "id": 6930,
                                    "name": "Literal",
                                    "src": "3359:1:35"
                                  }
                                ],
                                "id": 6931,
                                "name": "BinaryOperation",
                                "src": "3337:23:35"
                              }
                            ],
                            "id": 6932,
                            "name": "VariableDeclarationStatement",
                            "src": "3317:43:35"
                          },
                          {
                            "attributes": {
                              "assignments": [
                                6934
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "lastEntry",
                                  "scope": 6974,
                                  "stateVariable": false,
                                  "storageLocation": "storage",
                                  "type": "struct EnumerableMap.MapEntry",
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "MapEntry",
                                      "referencedDeclaration": 6829,
                                      "type": "struct EnumerableMap.MapEntry"
                                    },
                                    "id": 6933,
                                    "name": "UserDefinedTypeName",
                                    "src": "3600:8:35"
                                  }
                                ],
                                "id": 6934,
                                "name": "VariableDeclaration",
                                "src": "3600:26:35"
                              },
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "struct EnumerableMap.MapEntry storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "_entries",
                                      "referencedDeclaration": 6832,
                                      "type": "struct EnumerableMap.MapEntry storage ref[] storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6902,
                                          "type": "struct EnumerableMap.Map storage pointer",
                                          "value": "map"
                                        },
                                        "id": 6935,
                                        "name": "Identifier",
                                        "src": "3629:3:35"
                                      }
                                    ],
                                    "id": 6936,
                                    "name": "MemberAccess",
                                    "src": "3629:12:35"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 6926,
                                      "type": "uint256",
                                      "value": "lastIndex"
                                    },
                                    "id": 6937,
                                    "name": "Identifier",
                                    "src": "3642:9:35"
                                  }
                                ],
                                "id": 6938,
                                "name": "IndexAccess",
                                "src": "3629:23:35"
                              }
                            ],
                            "id": 6939,
                            "name": "VariableDeclarationStatement",
                            "src": "3600:52:35"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "struct EnumerableMap.MapEntry storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "type": "struct EnumerableMap.MapEntry storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "_entries",
                                          "referencedDeclaration": 6832,
                                          "type": "struct EnumerableMap.MapEntry storage ref[] storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6902,
                                              "type": "struct EnumerableMap.Map storage pointer",
                                              "value": "map"
                                            },
                                            "id": 6940,
                                            "name": "Identifier",
                                            "src": "3744:3:35"
                                          }
                                        ],
                                        "id": 6943,
                                        "name": "MemberAccess",
                                        "src": "3744:12:35"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6920,
                                          "type": "uint256",
                                          "value": "toDeleteIndex"
                                        },
                                        "id": 6942,
                                        "name": "Identifier",
                                        "src": "3757:13:35"
                                      }
                                    ],
                                    "id": 6944,
                                    "name": "IndexAccess",
                                    "src": "3744:27:35"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 6934,
                                      "type": "struct EnumerableMap.MapEntry storage pointer",
                                      "value": "lastEntry"
                                    },
                                    "id": 6945,
                                    "name": "Identifier",
                                    "src": "3774:9:35"
                                  }
                                ],
                                "id": 6946,
                                "name": "Assignment",
                                "src": "3744:39:35"
                              }
                            ],
                            "id": 6947,
                            "name": "ExpressionStatement",
                            "src": "3744:39:35"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "_indexes",
                                          "referencedDeclaration": 6836,
                                          "type": "mapping(bytes32 => uint256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6902,
                                              "type": "struct EnumerableMap.Map storage pointer",
                                              "value": "map"
                                            },
                                            "id": 6948,
                                            "name": "Identifier",
                                            "src": "3849:3:35"
                                          }
                                        ],
                                        "id": 6952,
                                        "name": "MemberAccess",
                                        "src": "3849:12:35"
                                      },
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "_key",
                                          "referencedDeclaration": 6826,
                                          "type": "bytes32"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6934,
                                              "type": "struct EnumerableMap.MapEntry storage pointer",
                                              "value": "lastEntry"
                                            },
                                            "id": 6950,
                                            "name": "Identifier",
                                            "src": "3862:9:35"
                                          }
                                        ],
                                        "id": 6951,
                                        "name": "MemberAccess",
                                        "src": "3862:14:35"
                                      }
                                    ],
                                    "id": 6953,
                                    "name": "IndexAccess",
                                    "src": "3849:28:35"
                                  },
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "+",
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6920,
                                          "type": "uint256",
                                          "value": "toDeleteIndex"
                                        },
                                        "id": 6954,
                                        "name": "Identifier",
                                        "src": "3880:13:35"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 6955,
                                        "name": "Literal",
                                        "src": "3896:1:35"
                                      }
                                    ],
                                    "id": 6956,
                                    "name": "BinaryOperation",
                                    "src": "3880:17:35"
                                  }
                                ],
                                "id": 6957,
                                "name": "Assignment",
                                "src": "3849:48:35"
                              }
                            ],
                            "id": 6958,
                            "name": "ExpressionStatement",
                            "src": "3849:48:35"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "arguments": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "tuple()",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        null
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "pop",
                                      "type": "function ()"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "_entries",
                                          "referencedDeclaration": 6832,
                                          "type": "struct EnumerableMap.MapEntry storage ref[] storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6902,
                                              "type": "struct EnumerableMap.Map storage pointer",
                                              "value": "map"
                                            },
                                            "id": 6959,
                                            "name": "Identifier",
                                            "src": "4003:3:35"
                                          }
                                        ],
                                        "id": 6962,
                                        "name": "MemberAccess",
                                        "src": "4003:12:35"
                                      }
                                    ],
                                    "id": 6963,
                                    "name": "MemberAccess",
                                    "src": "4003:16:35"
                                  }
                                ],
                                "id": 6964,
                                "name": "FunctionCall",
                                "src": "4003:18:35"
                              }
                            ],
                            "id": 6965,
                            "name": "ExpressionStatement",
                            "src": "4003:18:35"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "delete",
                                  "prefix": true,
                                  "type": "tuple()"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "_indexes",
                                          "referencedDeclaration": 6836,
                                          "type": "mapping(bytes32 => uint256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6902,
                                              "type": "struct EnumerableMap.Map storage pointer",
                                              "value": "map"
                                            },
                                            "id": 6966,
                                            "name": "Identifier",
                                            "src": "4096:3:35"
                                          }
                                        ],
                                        "id": 6967,
                                        "name": "MemberAccess",
                                        "src": "4096:12:35"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6904,
                                          "type": "bytes32",
                                          "value": "key"
                                        },
                                        "id": 6968,
                                        "name": "Identifier",
                                        "src": "4109:3:35"
                                      }
                                    ],
                                    "id": 6969,
                                    "name": "IndexAccess",
                                    "src": "4096:17:35"
                                  }
                                ],
                                "id": 6970,
                                "name": "UnaryOperation",
                                "src": "4089:24:35"
                              }
                            ],
                            "id": 6971,
                            "name": "ExpressionStatement",
                            "src": "4089:24:35"
                          },
                          {
                            "attributes": {
                              "functionReturnParameters": 6908
                            },
                            "children": [
                              {
                                "attributes": {
                                  "hexvalue": "74727565",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "bool",
                                  "type": "bool",
                                  "value": "true"
                                },
                                "id": 6972,
                                "name": "Literal",
                                "src": "4135:4:35"
                              }
                            ],
                            "id": 6973,
                            "name": "Return",
                            "src": "4128:11:35"
                          }
                        ],
                        "id": 6974,
                        "name": "Block",
                        "src": "2926:1224:35"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "functionReturnParameters": 6908
                            },
                            "children": [
                              {
                                "attributes": {
                                  "hexvalue": "66616c7365",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "bool",
                                  "type": "bool",
                                  "value": "false"
                                },
                                "id": 6975,
                                "name": "Literal",
                                "src": "4177:5:35"
                              }
                            ],
                            "id": 6976,
                            "name": "Return",
                            "src": "4170:12:35"
                          }
                        ],
                        "id": 6977,
                        "name": "Block",
                        "src": "4156:37:35"
                      }
                    ],
                    "id": 6978,
                    "name": "IfStatement",
                    "src": "2907:1286:35"
                  }
                ],
                "id": 6979,
                "name": "Block",
                "src": "2752:1447:35"
              }
            ],
            "id": 6980,
            "name": "FunctionDefinition",
            "src": "2682:1517:35"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "_contains",
              "scope": 7276,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "private"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Returns true if the key is in the map. O(1)."
                },
                "id": 6981,
                "name": "StructuredDocumentation",
                "src": "4205:68:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "map",
                      "scope": 6998,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableMap.Map",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "Map",
                          "referencedDeclaration": 6837,
                          "type": "struct EnumerableMap.Map"
                        },
                        "id": 6982,
                        "name": "UserDefinedTypeName",
                        "src": "4297:3:35"
                      }
                    ],
                    "id": 6983,
                    "name": "VariableDeclaration",
                    "src": "4297:15:35"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "key",
                      "scope": 6998,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 6984,
                        "name": "ElementaryTypeName",
                        "src": "4314:7:35"
                      }
                    ],
                    "id": 6985,
                    "name": "VariableDeclaration",
                    "src": "4314:11:35"
                  }
                ],
                "id": 6986,
                "name": "ParameterList",
                "src": "4296:30:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 6998,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 6987,
                        "name": "ElementaryTypeName",
                        "src": "4349:4:35"
                      }
                    ],
                    "id": 6988,
                    "name": "VariableDeclaration",
                    "src": "4349:4:35"
                  }
                ],
                "id": 6989,
                "name": "ParameterList",
                "src": "4348:6:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 6989
                    },
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "_indexes",
                                  "referencedDeclaration": 6836,
                                  "type": "mapping(bytes32 => uint256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 6983,
                                      "type": "struct EnumerableMap.Map storage pointer",
                                      "value": "map"
                                    },
                                    "id": 6990,
                                    "name": "Identifier",
                                    "src": "4372:3:35"
                                  }
                                ],
                                "id": 6991,
                                "name": "MemberAccess",
                                "src": "4372:12:35"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6985,
                                  "type": "bytes32",
                                  "value": "key"
                                },
                                "id": 6992,
                                "name": "Identifier",
                                "src": "4385:3:35"
                              }
                            ],
                            "id": 6993,
                            "name": "IndexAccess",
                            "src": "4372:17:35"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 6994,
                            "name": "Literal",
                            "src": "4393:1:35"
                          }
                        ],
                        "id": 6995,
                        "name": "BinaryOperation",
                        "src": "4372:22:35"
                      }
                    ],
                    "id": 6996,
                    "name": "Return",
                    "src": "4365:29:35"
                  }
                ],
                "id": 6997,
                "name": "Block",
                "src": "4355:46:35"
              }
            ],
            "id": 6998,
            "name": "FunctionDefinition",
            "src": "4278:123:35"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "_length",
              "scope": 7276,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "private"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Returns the number of key-value pairs in the map. O(1)."
                },
                "id": 6999,
                "name": "StructuredDocumentation",
                "src": "4407:79:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "map",
                      "scope": 7011,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableMap.Map",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "Map",
                          "referencedDeclaration": 6837,
                          "type": "struct EnumerableMap.Map"
                        },
                        "id": 7000,
                        "name": "UserDefinedTypeName",
                        "src": "4508:3:35"
                      }
                    ],
                    "id": 7001,
                    "name": "VariableDeclaration",
                    "src": "4508:15:35"
                  }
                ],
                "id": 7002,
                "name": "ParameterList",
                "src": "4507:17:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7011,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 7003,
                        "name": "ElementaryTypeName",
                        "src": "4547:7:35"
                      }
                    ],
                    "id": 7004,
                    "name": "VariableDeclaration",
                    "src": "4547:7:35"
                  }
                ],
                "id": 7005,
                "name": "ParameterList",
                "src": "4546:9:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 7005
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "length",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "_entries",
                              "referencedDeclaration": 6832,
                              "type": "struct EnumerableMap.MapEntry storage ref[] storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7001,
                                  "type": "struct EnumerableMap.Map storage pointer",
                                  "value": "map"
                                },
                                "id": 7006,
                                "name": "Identifier",
                                "src": "4573:3:35"
                              }
                            ],
                            "id": 7007,
                            "name": "MemberAccess",
                            "src": "4573:12:35"
                          }
                        ],
                        "id": 7008,
                        "name": "MemberAccess",
                        "src": "4573:19:35"
                      }
                    ],
                    "id": 7009,
                    "name": "Return",
                    "src": "4566:26:35"
                  }
                ],
                "id": 7010,
                "name": "Block",
                "src": "4556:43:35"
              }
            ],
            "id": 7011,
            "name": "FunctionDefinition",
            "src": "4491:108:35"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "_at",
              "scope": 7276,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "private"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."
                },
                "id": 7012,
                "name": "StructuredDocumentation",
                "src": "4604:333:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "map",
                      "scope": 7046,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableMap.Map",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "Map",
                          "referencedDeclaration": 6837,
                          "type": "struct EnumerableMap.Map"
                        },
                        "id": 7013,
                        "name": "UserDefinedTypeName",
                        "src": "4955:3:35"
                      }
                    ],
                    "id": 7014,
                    "name": "VariableDeclaration",
                    "src": "4955:15:35"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "index",
                      "scope": 7046,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 7015,
                        "name": "ElementaryTypeName",
                        "src": "4972:7:35"
                      }
                    ],
                    "id": 7016,
                    "name": "VariableDeclaration",
                    "src": "4972:13:35"
                  }
                ],
                "id": 7017,
                "name": "ParameterList",
                "src": "4954:32:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7046,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7018,
                        "name": "ElementaryTypeName",
                        "src": "5009:7:35"
                      }
                    ],
                    "id": 7019,
                    "name": "VariableDeclaration",
                    "src": "5009:7:35"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7046,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7020,
                        "name": "ElementaryTypeName",
                        "src": "5018:7:35"
                      }
                    ],
                    "id": 7021,
                    "name": "VariableDeclaration",
                    "src": "5018:7:35"
                  }
                ],
                "id": 7022,
                "name": "ParameterList",
                "src": "5008:18:35"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155",
                                  "typeString": "literal_string \"EnumerableMap: index out of bounds\""
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool,string memory) pure",
                              "value": "require"
                            },
                            "id": 7023,
                            "name": "Identifier",
                            "src": "5037:7:35"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": ">",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "length",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "_entries",
                                      "referencedDeclaration": 6832,
                                      "type": "struct EnumerableMap.MapEntry storage ref[] storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7014,
                                          "type": "struct EnumerableMap.Map storage pointer",
                                          "value": "map"
                                        },
                                        "id": 7024,
                                        "name": "Identifier",
                                        "src": "5045:3:35"
                                      }
                                    ],
                                    "id": 7025,
                                    "name": "MemberAccess",
                                    "src": "5045:12:35"
                                  }
                                ],
                                "id": 7026,
                                "name": "MemberAccess",
                                "src": "5045:19:35"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7016,
                                  "type": "uint256",
                                  "value": "index"
                                },
                                "id": 7027,
                                "name": "Identifier",
                                "src": "5067:5:35"
                              }
                            ],
                            "id": 7028,
                            "name": "BinaryOperation",
                            "src": "5045:27:35"
                          },
                          {
                            "attributes": {
                              "hexvalue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "string",
                              "type": "literal_string \"EnumerableMap: index out of bounds\"",
                              "value": "EnumerableMap: index out of bounds"
                            },
                            "id": 7029,
                            "name": "Literal",
                            "src": "5074:36:35"
                          }
                        ],
                        "id": 7030,
                        "name": "FunctionCall",
                        "src": "5037:74:35"
                      }
                    ],
                    "id": 7031,
                    "name": "ExpressionStatement",
                    "src": "5037:74:35"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        7033
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "entry",
                          "scope": 7045,
                          "stateVariable": false,
                          "storageLocation": "storage",
                          "type": "struct EnumerableMap.MapEntry",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "MapEntry",
                              "referencedDeclaration": 6829,
                              "type": "struct EnumerableMap.MapEntry"
                            },
                            "id": 7032,
                            "name": "UserDefinedTypeName",
                            "src": "5122:8:35"
                          }
                        ],
                        "id": 7033,
                        "name": "VariableDeclaration",
                        "src": "5122:22:35"
                      },
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "struct EnumerableMap.MapEntry storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "_entries",
                              "referencedDeclaration": 6832,
                              "type": "struct EnumerableMap.MapEntry storage ref[] storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7014,
                                  "type": "struct EnumerableMap.Map storage pointer",
                                  "value": "map"
                                },
                                "id": 7034,
                                "name": "Identifier",
                                "src": "5147:3:35"
                              }
                            ],
                            "id": 7035,
                            "name": "MemberAccess",
                            "src": "5147:12:35"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7016,
                              "type": "uint256",
                              "value": "index"
                            },
                            "id": 7036,
                            "name": "Identifier",
                            "src": "5160:5:35"
                          }
                        ],
                        "id": 7037,
                        "name": "IndexAccess",
                        "src": "5147:19:35"
                      }
                    ],
                    "id": 7038,
                    "name": "VariableDeclarationStatement",
                    "src": "5122:44:35"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 7022
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "tuple(bytes32,bytes32)"
                        },
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "_key",
                              "referencedDeclaration": 6826,
                              "type": "bytes32"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7033,
                                  "type": "struct EnumerableMap.MapEntry storage pointer",
                                  "value": "entry"
                                },
                                "id": 7039,
                                "name": "Identifier",
                                "src": "5184:5:35"
                              }
                            ],
                            "id": 7040,
                            "name": "MemberAccess",
                            "src": "5184:10:35"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "_value",
                              "referencedDeclaration": 6828,
                              "type": "bytes32"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7033,
                                  "type": "struct EnumerableMap.MapEntry storage pointer",
                                  "value": "entry"
                                },
                                "id": 7041,
                                "name": "Identifier",
                                "src": "5196:5:35"
                              }
                            ],
                            "id": 7042,
                            "name": "MemberAccess",
                            "src": "5196:12:35"
                          }
                        ],
                        "id": 7043,
                        "name": "TupleExpression",
                        "src": "5183:26:35"
                      }
                    ],
                    "id": 7044,
                    "name": "Return",
                    "src": "5176:33:35"
                  }
                ],
                "id": 7045,
                "name": "Block",
                "src": "5027:189:35"
              }
            ],
            "id": 7046,
            "name": "FunctionDefinition",
            "src": "4942:274:35"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "_get",
              "scope": 7276,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "private"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Returns the value associated with `key`.  O(1).\n Requirements:\n - `key` must be in the map."
                },
                "id": 7047,
                "name": "StructuredDocumentation",
                "src": "5222:141:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "map",
                      "scope": 7063,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableMap.Map",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "Map",
                          "referencedDeclaration": 6837,
                          "type": "struct EnumerableMap.Map"
                        },
                        "id": 7048,
                        "name": "UserDefinedTypeName",
                        "src": "5382:3:35"
                      }
                    ],
                    "id": 7049,
                    "name": "VariableDeclaration",
                    "src": "5382:15:35"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "key",
                      "scope": 7063,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7050,
                        "name": "ElementaryTypeName",
                        "src": "5399:7:35"
                      }
                    ],
                    "id": 7051,
                    "name": "VariableDeclaration",
                    "src": "5399:11:35"
                  }
                ],
                "id": 7052,
                "name": "ParameterList",
                "src": "5381:30:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7063,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7053,
                        "name": "ElementaryTypeName",
                        "src": "5434:7:35"
                      }
                    ],
                    "id": 7054,
                    "name": "VariableDeclaration",
                    "src": "5434:7:35"
                  }
                ],
                "id": 7055,
                "name": "ParameterList",
                "src": "5433:9:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 7055
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "bytes32",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_struct$_Map_$6837_storage_ptr",
                                  "typeString": "struct EnumerableMap.Map storage pointer"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072",
                                  "typeString": "literal_string \"EnumerableMap: nonexistent key\""
                                }
                              ],
                              "overloadedDeclarations": [
                                7063,
                                7098
                              ],
                              "referencedDeclaration": 7098,
                              "type": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)",
                              "value": "_get"
                            },
                            "id": 7056,
                            "name": "Identifier",
                            "src": "5460:4:35"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7049,
                              "type": "struct EnumerableMap.Map storage pointer",
                              "value": "map"
                            },
                            "id": 7057,
                            "name": "Identifier",
                            "src": "5465:3:35"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7051,
                              "type": "bytes32",
                              "value": "key"
                            },
                            "id": 7058,
                            "name": "Identifier",
                            "src": "5470:3:35"
                          },
                          {
                            "attributes": {
                              "hexvalue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "string",
                              "type": "literal_string \"EnumerableMap: nonexistent key\"",
                              "value": "EnumerableMap: nonexistent key"
                            },
                            "id": 7059,
                            "name": "Literal",
                            "src": "5475:32:35"
                          }
                        ],
                        "id": 7060,
                        "name": "FunctionCall",
                        "src": "5460:48:35"
                      }
                    ],
                    "id": 7061,
                    "name": "Return",
                    "src": "5453:55:35"
                  }
                ],
                "id": 7062,
                "name": "Block",
                "src": "5443:72:35"
              }
            ],
            "id": 7063,
            "name": "FunctionDefinition",
            "src": "5368:147:35"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "_get",
              "scope": 7276,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "private"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map."
                },
                "id": 7064,
                "name": "StructuredDocumentation",
                "src": "5521:97:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "map",
                      "scope": 7098,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableMap.Map",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "Map",
                          "referencedDeclaration": 6837,
                          "type": "struct EnumerableMap.Map"
                        },
                        "id": 7065,
                        "name": "UserDefinedTypeName",
                        "src": "5637:3:35"
                      }
                    ],
                    "id": 7066,
                    "name": "VariableDeclaration",
                    "src": "5637:15:35"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "key",
                      "scope": 7098,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7067,
                        "name": "ElementaryTypeName",
                        "src": "5654:7:35"
                      }
                    ],
                    "id": 7068,
                    "name": "VariableDeclaration",
                    "src": "5654:11:35"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "errorMessage",
                      "scope": 7098,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "string",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "string",
                          "type": "string"
                        },
                        "id": 7069,
                        "name": "ElementaryTypeName",
                        "src": "5667:6:35"
                      }
                    ],
                    "id": 7070,
                    "name": "VariableDeclaration",
                    "src": "5667:26:35"
                  }
                ],
                "id": 7071,
                "name": "ParameterList",
                "src": "5636:58:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7098,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7072,
                        "name": "ElementaryTypeName",
                        "src": "5717:7:35"
                      }
                    ],
                    "id": 7073,
                    "name": "VariableDeclaration",
                    "src": "5717:7:35"
                  }
                ],
                "id": 7074,
                "name": "ParameterList",
                "src": "5716:9:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        7076
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "keyIndex",
                          "scope": 7097,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 7075,
                            "name": "ElementaryTypeName",
                            "src": "5736:7:35"
                          }
                        ],
                        "id": 7076,
                        "name": "VariableDeclaration",
                        "src": "5736:16:35"
                      },
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "_indexes",
                              "referencedDeclaration": 6836,
                              "type": "mapping(bytes32 => uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7066,
                                  "type": "struct EnumerableMap.Map storage pointer",
                                  "value": "map"
                                },
                                "id": 7077,
                                "name": "Identifier",
                                "src": "5755:3:35"
                              }
                            ],
                            "id": 7078,
                            "name": "MemberAccess",
                            "src": "5755:12:35"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7068,
                              "type": "bytes32",
                              "value": "key"
                            },
                            "id": 7079,
                            "name": "Identifier",
                            "src": "5768:3:35"
                          }
                        ],
                        "id": 7080,
                        "name": "IndexAccess",
                        "src": "5755:17:35"
                      }
                    ],
                    "id": 7081,
                    "name": "VariableDeclarationStatement",
                    "src": "5736:36:35"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool,string memory) pure",
                              "value": "require"
                            },
                            "id": 7082,
                            "name": "Identifier",
                            "src": "5782:7:35"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "!=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7076,
                                  "type": "uint256",
                                  "value": "keyIndex"
                                },
                                "id": 7083,
                                "name": "Identifier",
                                "src": "5790:8:35"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 7084,
                                "name": "Literal",
                                "src": "5802:1:35"
                              }
                            ],
                            "id": 7085,
                            "name": "BinaryOperation",
                            "src": "5790:13:35"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7070,
                              "type": "string memory",
                              "value": "errorMessage"
                            },
                            "id": 7086,
                            "name": "Identifier",
                            "src": "5805:12:35"
                          }
                        ],
                        "id": 7087,
                        "name": "FunctionCall",
                        "src": "5782:36:35"
                      }
                    ],
                    "id": 7088,
                    "name": "ExpressionStatement",
                    "src": "5782:36:35"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 7074
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "member_name": "_value",
                          "referencedDeclaration": 6828,
                          "type": "bytes32"
                        },
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "struct EnumerableMap.MapEntry storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "_entries",
                                  "referencedDeclaration": 6832,
                                  "type": "struct EnumerableMap.MapEntry storage ref[] storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7066,
                                      "type": "struct EnumerableMap.Map storage pointer",
                                      "value": "map"
                                    },
                                    "id": 7089,
                                    "name": "Identifier",
                                    "src": "5871:3:35"
                                  }
                                ],
                                "id": 7090,
                                "name": "MemberAccess",
                                "src": "5871:12:35"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "-",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7076,
                                      "type": "uint256",
                                      "value": "keyIndex"
                                    },
                                    "id": 7091,
                                    "name": "Identifier",
                                    "src": "5884:8:35"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "31",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 1",
                                      "value": "1"
                                    },
                                    "id": 7092,
                                    "name": "Literal",
                                    "src": "5895:1:35"
                                  }
                                ],
                                "id": 7093,
                                "name": "BinaryOperation",
                                "src": "5884:12:35"
                              }
                            ],
                            "id": 7094,
                            "name": "IndexAccess",
                            "src": "5871:26:35"
                          }
                        ],
                        "id": 7095,
                        "name": "MemberAccess",
                        "src": "5871:33:35"
                      }
                    ],
                    "id": 7096,
                    "name": "Return",
                    "src": "5864:40:35"
                  }
                ],
                "id": 7097,
                "name": "Block",
                "src": "5726:212:35"
              }
            ],
            "id": 7098,
            "name": "FunctionDefinition",
            "src": "5623:315:35"
          },
          {
            "attributes": {
              "canonicalName": "EnumerableMap.UintToAddressMap",
              "name": "UintToAddressMap",
              "scope": 7276,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "_inner",
                  "scope": 7101,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "struct EnumerableMap.Map",
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "Map",
                      "referencedDeclaration": 6837,
                      "type": "struct EnumerableMap.Map"
                    },
                    "id": 7099,
                    "name": "UserDefinedTypeName",
                    "src": "6003:3:35"
                  }
                ],
                "id": 7100,
                "name": "VariableDeclaration",
                "src": "6003:10:35"
              }
            ],
            "id": 7101,
            "name": "StructDefinition",
            "src": "5969:51:35"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "set",
              "scope": 7276,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present."
                },
                "id": 7102,
                "name": "StructuredDocumentation",
                "src": "6026:216:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "map",
                      "scope": 7130,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableMap.UintToAddressMap",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "UintToAddressMap",
                          "referencedDeclaration": 7101,
                          "type": "struct EnumerableMap.UintToAddressMap"
                        },
                        "id": 7103,
                        "name": "UserDefinedTypeName",
                        "src": "6260:16:35"
                      }
                    ],
                    "id": 7104,
                    "name": "VariableDeclaration",
                    "src": "6260:28:35"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "key",
                      "scope": 7130,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 7105,
                        "name": "ElementaryTypeName",
                        "src": "6290:7:35"
                      }
                    ],
                    "id": 7106,
                    "name": "VariableDeclaration",
                    "src": "6290:11:35"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "value",
                      "scope": 7130,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 7107,
                        "name": "ElementaryTypeName",
                        "src": "6303:7:35"
                      }
                    ],
                    "id": 7108,
                    "name": "VariableDeclaration",
                    "src": "6303:13:35"
                  }
                ],
                "id": 7109,
                "name": "ParameterList",
                "src": "6259:58:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7130,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 7110,
                        "name": "ElementaryTypeName",
                        "src": "6336:4:35"
                      }
                    ],
                    "id": 7111,
                    "name": "VariableDeclaration",
                    "src": "6336:4:35"
                  }
                ],
                "id": 7112,
                "name": "ParameterList",
                "src": "6335:6:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 7112
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_struct$_Map_$6837_storage",
                                  "typeString": "struct EnumerableMap.Map storage ref"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6899,
                              "type": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)",
                              "value": "_set"
                            },
                            "id": 7113,
                            "name": "Identifier",
                            "src": "6359:4:35"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "_inner",
                              "referencedDeclaration": 7100,
                              "type": "struct EnumerableMap.Map storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7104,
                                  "type": "struct EnumerableMap.UintToAddressMap storage pointer",
                                  "value": "map"
                                },
                                "id": 7114,
                                "name": "Identifier",
                                "src": "6364:3:35"
                              }
                            ],
                            "id": 7115,
                            "name": "MemberAccess",
                            "src": "6364:10:35"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "bytes32",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(bytes32)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "bytes32"
                                    },
                                    "id": 7116,
                                    "name": "ElementaryTypeName",
                                    "src": "6376:7:35"
                                  }
                                ],
                                "id": 7117,
                                "name": "ElementaryTypeNameExpression",
                                "src": "6376:7:35"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7106,
                                  "type": "uint256",
                                  "value": "key"
                                },
                                "id": 7118,
                                "name": "Identifier",
                                "src": "6384:3:35"
                              }
                            ],
                            "id": 7119,
                            "name": "FunctionCall",
                            "src": "6376:12:35"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "bytes32",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(bytes32)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "bytes32"
                                    },
                                    "id": 7120,
                                    "name": "ElementaryTypeName",
                                    "src": "6390:7:35"
                                  }
                                ],
                                "id": 7121,
                                "name": "ElementaryTypeNameExpression",
                                "src": "6390:7:35"
                              },
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "uint256",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(uint256)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "name": "uint256"
                                        },
                                        "id": 7122,
                                        "name": "ElementaryTypeName",
                                        "src": "6398:7:35"
                                      }
                                    ],
                                    "id": 7123,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "6398:7:35"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7108,
                                      "type": "address",
                                      "value": "value"
                                    },
                                    "id": 7124,
                                    "name": "Identifier",
                                    "src": "6406:5:35"
                                  }
                                ],
                                "id": 7125,
                                "name": "FunctionCall",
                                "src": "6398:14:35"
                              }
                            ],
                            "id": 7126,
                            "name": "FunctionCall",
                            "src": "6390:23:35"
                          }
                        ],
                        "id": 7127,
                        "name": "FunctionCall",
                        "src": "6359:55:35"
                      }
                    ],
                    "id": 7128,
                    "name": "Return",
                    "src": "6352:62:35"
                  }
                ],
                "id": 7129,
                "name": "Block",
                "src": "6342:79:35"
              }
            ],
            "id": 7130,
            "name": "FunctionDefinition",
            "src": "6247:174:35"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "remove",
              "scope": 7276,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present."
                },
                "id": 7131,
                "name": "StructuredDocumentation",
                "src": "6427:148:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "map",
                      "scope": 7150,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableMap.UintToAddressMap",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "UintToAddressMap",
                          "referencedDeclaration": 7101,
                          "type": "struct EnumerableMap.UintToAddressMap"
                        },
                        "id": 7132,
                        "name": "UserDefinedTypeName",
                        "src": "6596:16:35"
                      }
                    ],
                    "id": 7133,
                    "name": "VariableDeclaration",
                    "src": "6596:28:35"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "key",
                      "scope": 7150,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 7134,
                        "name": "ElementaryTypeName",
                        "src": "6626:7:35"
                      }
                    ],
                    "id": 7135,
                    "name": "VariableDeclaration",
                    "src": "6626:11:35"
                  }
                ],
                "id": 7136,
                "name": "ParameterList",
                "src": "6595:43:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7150,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 7137,
                        "name": "ElementaryTypeName",
                        "src": "6657:4:35"
                      }
                    ],
                    "id": 7138,
                    "name": "VariableDeclaration",
                    "src": "6657:4:35"
                  }
                ],
                "id": 7139,
                "name": "ParameterList",
                "src": "6656:6:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 7139
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_struct$_Map_$6837_storage",
                                  "typeString": "struct EnumerableMap.Map storage ref"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6980,
                              "type": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)",
                              "value": "_remove"
                            },
                            "id": 7140,
                            "name": "Identifier",
                            "src": "6680:7:35"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "_inner",
                              "referencedDeclaration": 7100,
                              "type": "struct EnumerableMap.Map storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7133,
                                  "type": "struct EnumerableMap.UintToAddressMap storage pointer",
                                  "value": "map"
                                },
                                "id": 7141,
                                "name": "Identifier",
                                "src": "6688:3:35"
                              }
                            ],
                            "id": 7142,
                            "name": "MemberAccess",
                            "src": "6688:10:35"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "bytes32",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(bytes32)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "bytes32"
                                    },
                                    "id": 7143,
                                    "name": "ElementaryTypeName",
                                    "src": "6700:7:35"
                                  }
                                ],
                                "id": 7144,
                                "name": "ElementaryTypeNameExpression",
                                "src": "6700:7:35"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7135,
                                  "type": "uint256",
                                  "value": "key"
                                },
                                "id": 7145,
                                "name": "Identifier",
                                "src": "6708:3:35"
                              }
                            ],
                            "id": 7146,
                            "name": "FunctionCall",
                            "src": "6700:12:35"
                          }
                        ],
                        "id": 7147,
                        "name": "FunctionCall",
                        "src": "6680:33:35"
                      }
                    ],
                    "id": 7148,
                    "name": "Return",
                    "src": "6673:40:35"
                  }
                ],
                "id": 7149,
                "name": "Block",
                "src": "6663:57:35"
              }
            ],
            "id": 7150,
            "name": "FunctionDefinition",
            "src": "6580:140:35"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "contains",
              "scope": 7276,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Returns true if the key is in the map. O(1)."
                },
                "id": 7151,
                "name": "StructuredDocumentation",
                "src": "6726:68:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "map",
                      "scope": 7170,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableMap.UintToAddressMap",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "UintToAddressMap",
                          "referencedDeclaration": 7101,
                          "type": "struct EnumerableMap.UintToAddressMap"
                        },
                        "id": 7152,
                        "name": "UserDefinedTypeName",
                        "src": "6817:16:35"
                      }
                    ],
                    "id": 7153,
                    "name": "VariableDeclaration",
                    "src": "6817:28:35"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "key",
                      "scope": 7170,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 7154,
                        "name": "ElementaryTypeName",
                        "src": "6847:7:35"
                      }
                    ],
                    "id": 7155,
                    "name": "VariableDeclaration",
                    "src": "6847:11:35"
                  }
                ],
                "id": 7156,
                "name": "ParameterList",
                "src": "6816:43:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7170,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 7157,
                        "name": "ElementaryTypeName",
                        "src": "6883:4:35"
                      }
                    ],
                    "id": 7158,
                    "name": "VariableDeclaration",
                    "src": "6883:4:35"
                  }
                ],
                "id": 7159,
                "name": "ParameterList",
                "src": "6882:6:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 7159
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "bool",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_struct$_Map_$6837_storage",
                                  "typeString": "struct EnumerableMap.Map storage ref"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6998,
                              "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)",
                              "value": "_contains"
                            },
                            "id": 7160,
                            "name": "Identifier",
                            "src": "6906:9:35"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "_inner",
                              "referencedDeclaration": 7100,
                              "type": "struct EnumerableMap.Map storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7153,
                                  "type": "struct EnumerableMap.UintToAddressMap storage pointer",
                                  "value": "map"
                                },
                                "id": 7161,
                                "name": "Identifier",
                                "src": "6916:3:35"
                              }
                            ],
                            "id": 7162,
                            "name": "MemberAccess",
                            "src": "6916:10:35"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "bytes32",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(bytes32)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "bytes32"
                                    },
                                    "id": 7163,
                                    "name": "ElementaryTypeName",
                                    "src": "6928:7:35"
                                  }
                                ],
                                "id": 7164,
                                "name": "ElementaryTypeNameExpression",
                                "src": "6928:7:35"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7155,
                                  "type": "uint256",
                                  "value": "key"
                                },
                                "id": 7165,
                                "name": "Identifier",
                                "src": "6936:3:35"
                              }
                            ],
                            "id": 7166,
                            "name": "FunctionCall",
                            "src": "6928:12:35"
                          }
                        ],
                        "id": 7167,
                        "name": "FunctionCall",
                        "src": "6906:35:35"
                      }
                    ],
                    "id": 7168,
                    "name": "Return",
                    "src": "6899:42:35"
                  }
                ],
                "id": 7169,
                "name": "Block",
                "src": "6889:59:35"
              }
            ],
            "id": 7170,
            "name": "FunctionDefinition",
            "src": "6799:149:35"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "length",
              "scope": 7276,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Returns the number of elements in the map. O(1)."
                },
                "id": 7171,
                "name": "StructuredDocumentation",
                "src": "6954:72:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "map",
                      "scope": 7184,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableMap.UintToAddressMap",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "UintToAddressMap",
                          "referencedDeclaration": 7101,
                          "type": "struct EnumerableMap.UintToAddressMap"
                        },
                        "id": 7172,
                        "name": "UserDefinedTypeName",
                        "src": "7047:16:35"
                      }
                    ],
                    "id": 7173,
                    "name": "VariableDeclaration",
                    "src": "7047:28:35"
                  }
                ],
                "id": 7174,
                "name": "ParameterList",
                "src": "7046:30:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7184,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 7175,
                        "name": "ElementaryTypeName",
                        "src": "7100:7:35"
                      }
                    ],
                    "id": 7176,
                    "name": "VariableDeclaration",
                    "src": "7100:7:35"
                  }
                ],
                "id": 7177,
                "name": "ParameterList",
                "src": "7099:9:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 7177
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "uint256",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_struct$_Map_$6837_storage",
                                  "typeString": "struct EnumerableMap.Map storage ref"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7011,
                              "type": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)",
                              "value": "_length"
                            },
                            "id": 7178,
                            "name": "Identifier",
                            "src": "7126:7:35"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "_inner",
                              "referencedDeclaration": 7100,
                              "type": "struct EnumerableMap.Map storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7173,
                                  "type": "struct EnumerableMap.UintToAddressMap storage pointer",
                                  "value": "map"
                                },
                                "id": 7179,
                                "name": "Identifier",
                                "src": "7134:3:35"
                              }
                            ],
                            "id": 7180,
                            "name": "MemberAccess",
                            "src": "7134:10:35"
                          }
                        ],
                        "id": 7181,
                        "name": "FunctionCall",
                        "src": "7126:19:35"
                      }
                    ],
                    "id": 7182,
                    "name": "Return",
                    "src": "7119:26:35"
                  }
                ],
                "id": 7183,
                "name": "Block",
                "src": "7109:43:35"
              }
            ],
            "id": 7184,
            "name": "FunctionDefinition",
            "src": "7031:121:35"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "at",
              "scope": 7276,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."
                },
                "id": 7185,
                "name": "StructuredDocumentation",
                "src": "7157:318:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "map",
                      "scope": 7220,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableMap.UintToAddressMap",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "UintToAddressMap",
                          "referencedDeclaration": 7101,
                          "type": "struct EnumerableMap.UintToAddressMap"
                        },
                        "id": 7186,
                        "name": "UserDefinedTypeName",
                        "src": "7492:16:35"
                      }
                    ],
                    "id": 7187,
                    "name": "VariableDeclaration",
                    "src": "7492:28:35"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "index",
                      "scope": 7220,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 7188,
                        "name": "ElementaryTypeName",
                        "src": "7522:7:35"
                      }
                    ],
                    "id": 7189,
                    "name": "VariableDeclaration",
                    "src": "7522:13:35"
                  }
                ],
                "id": 7190,
                "name": "ParameterList",
                "src": "7491:45:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7220,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 7191,
                        "name": "ElementaryTypeName",
                        "src": "7560:7:35"
                      }
                    ],
                    "id": 7192,
                    "name": "VariableDeclaration",
                    "src": "7560:7:35"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7220,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 7193,
                        "name": "ElementaryTypeName",
                        "src": "7569:7:35"
                      }
                    ],
                    "id": 7194,
                    "name": "VariableDeclaration",
                    "src": "7569:7:35"
                  }
                ],
                "id": 7195,
                "name": "ParameterList",
                "src": "7559:18:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        7197,
                        7199
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "key",
                          "scope": 7219,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bytes32",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes32",
                              "type": "bytes32"
                            },
                            "id": 7196,
                            "name": "ElementaryTypeName",
                            "src": "7589:7:35"
                          }
                        ],
                        "id": 7197,
                        "name": "VariableDeclaration",
                        "src": "7589:11:35"
                      },
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "value",
                          "scope": 7219,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bytes32",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bytes32",
                              "type": "bytes32"
                            },
                            "id": 7198,
                            "name": "ElementaryTypeName",
                            "src": "7602:7:35"
                          }
                        ],
                        "id": 7199,
                        "name": "VariableDeclaration",
                        "src": "7602:13:35"
                      },
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "tuple(bytes32,bytes32)",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_struct$_Map_$6837_storage",
                                  "typeString": "struct EnumerableMap.Map storage ref"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7046,
                              "type": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)",
                              "value": "_at"
                            },
                            "id": 7200,
                            "name": "Identifier",
                            "src": "7619:3:35"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "_inner",
                              "referencedDeclaration": 7100,
                              "type": "struct EnumerableMap.Map storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7187,
                                  "type": "struct EnumerableMap.UintToAddressMap storage pointer",
                                  "value": "map"
                                },
                                "id": 7201,
                                "name": "Identifier",
                                "src": "7623:3:35"
                              }
                            ],
                            "id": 7202,
                            "name": "MemberAccess",
                            "src": "7623:10:35"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7189,
                              "type": "uint256",
                              "value": "index"
                            },
                            "id": 7203,
                            "name": "Identifier",
                            "src": "7635:5:35"
                          }
                        ],
                        "id": 7204,
                        "name": "FunctionCall",
                        "src": "7619:22:35"
                      }
                    ],
                    "id": 7205,
                    "name": "VariableDeclarationStatement",
                    "src": "7588:53:35"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 7195
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "tuple(uint256,address payable)"
                        },
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "uint256",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(uint256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint256"
                                    },
                                    "id": 7206,
                                    "name": "ElementaryTypeName",
                                    "src": "7659:7:35"
                                  }
                                ],
                                "id": 7207,
                                "name": "ElementaryTypeNameExpression",
                                "src": "7659:7:35"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7197,
                                  "type": "bytes32",
                                  "value": "key"
                                },
                                "id": 7208,
                                "name": "Identifier",
                                "src": "7667:3:35"
                              }
                            ],
                            "id": 7209,
                            "name": "FunctionCall",
                            "src": "7659:12:35"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "address payable",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(address)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "address"
                                    },
                                    "id": 7210,
                                    "name": "ElementaryTypeName",
                                    "src": "7673:7:35"
                                  }
                                ],
                                "id": 7211,
                                "name": "ElementaryTypeNameExpression",
                                "src": "7673:7:35"
                              },
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "uint256",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(uint256)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "name": "uint256"
                                        },
                                        "id": 7212,
                                        "name": "ElementaryTypeName",
                                        "src": "7681:7:35"
                                      }
                                    ],
                                    "id": 7213,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "7681:7:35"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7199,
                                      "type": "bytes32",
                                      "value": "value"
                                    },
                                    "id": 7214,
                                    "name": "Identifier",
                                    "src": "7689:5:35"
                                  }
                                ],
                                "id": 7215,
                                "name": "FunctionCall",
                                "src": "7681:14:35"
                              }
                            ],
                            "id": 7216,
                            "name": "FunctionCall",
                            "src": "7673:23:35"
                          }
                        ],
                        "id": 7217,
                        "name": "TupleExpression",
                        "src": "7658:39:35"
                      }
                    ],
                    "id": 7218,
                    "name": "Return",
                    "src": "7651:46:35"
                  }
                ],
                "id": 7219,
                "name": "Block",
                "src": "7578:126:35"
              }
            ],
            "id": 7220,
            "name": "FunctionDefinition",
            "src": "7480:224:35"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "get",
              "scope": 7276,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Returns the value associated with `key`.  O(1).\n Requirements:\n - `key` must be in the map."
                },
                "id": 7221,
                "name": "StructuredDocumentation",
                "src": "7710:141:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "map",
                      "scope": 7246,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableMap.UintToAddressMap",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "UintToAddressMap",
                          "referencedDeclaration": 7101,
                          "type": "struct EnumerableMap.UintToAddressMap"
                        },
                        "id": 7222,
                        "name": "UserDefinedTypeName",
                        "src": "7869:16:35"
                      }
                    ],
                    "id": 7223,
                    "name": "VariableDeclaration",
                    "src": "7869:28:35"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "key",
                      "scope": 7246,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 7224,
                        "name": "ElementaryTypeName",
                        "src": "7899:7:35"
                      }
                    ],
                    "id": 7225,
                    "name": "VariableDeclaration",
                    "src": "7899:11:35"
                  }
                ],
                "id": 7226,
                "name": "ParameterList",
                "src": "7868:43:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7246,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 7227,
                        "name": "ElementaryTypeName",
                        "src": "7935:7:35"
                      }
                    ],
                    "id": 7228,
                    "name": "VariableDeclaration",
                    "src": "7935:7:35"
                  }
                ],
                "id": 7229,
                "name": "ParameterList",
                "src": "7934:9:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 7229
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "address payable",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "type": "type(address)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "address"
                                },
                                "id": 7230,
                                "name": "ElementaryTypeName",
                                "src": "7961:7:35"
                              }
                            ],
                            "id": 7231,
                            "name": "ElementaryTypeNameExpression",
                            "src": "7961:7:35"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "uint256",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(uint256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint256"
                                    },
                                    "id": 7232,
                                    "name": "ElementaryTypeName",
                                    "src": "7969:7:35"
                                  }
                                ],
                                "id": 7233,
                                "name": "ElementaryTypeNameExpression",
                                "src": "7969:7:35"
                              },
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "bytes32",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_struct$_Map_$6837_storage",
                                          "typeString": "struct EnumerableMap.Map storage ref"
                                        },
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        7063,
                                        7098
                                      ],
                                      "referencedDeclaration": 7063,
                                      "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)",
                                      "value": "_get"
                                    },
                                    "id": 7234,
                                    "name": "Identifier",
                                    "src": "7977:4:35"
                                  },
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "_inner",
                                      "referencedDeclaration": 7100,
                                      "type": "struct EnumerableMap.Map storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7223,
                                          "type": "struct EnumerableMap.UintToAddressMap storage pointer",
                                          "value": "map"
                                        },
                                        "id": 7235,
                                        "name": "Identifier",
                                        "src": "7982:3:35"
                                      }
                                    ],
                                    "id": 7236,
                                    "name": "MemberAccess",
                                    "src": "7982:10:35"
                                  },
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "tryCall": false,
                                      "type": "bytes32",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(bytes32)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "name": "bytes32"
                                            },
                                            "id": 7237,
                                            "name": "ElementaryTypeName",
                                            "src": "7994:7:35"
                                          }
                                        ],
                                        "id": 7238,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "7994:7:35"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7225,
                                          "type": "uint256",
                                          "value": "key"
                                        },
                                        "id": 7239,
                                        "name": "Identifier",
                                        "src": "8002:3:35"
                                      }
                                    ],
                                    "id": 7240,
                                    "name": "FunctionCall",
                                    "src": "7994:12:35"
                                  }
                                ],
                                "id": 7241,
                                "name": "FunctionCall",
                                "src": "7977:30:35"
                              }
                            ],
                            "id": 7242,
                            "name": "FunctionCall",
                            "src": "7969:39:35"
                          }
                        ],
                        "id": 7243,
                        "name": "FunctionCall",
                        "src": "7961:48:35"
                      }
                    ],
                    "id": 7244,
                    "name": "Return",
                    "src": "7954:55:35"
                  }
                ],
                "id": 7245,
                "name": "Block",
                "src": "7944:72:35"
              }
            ],
            "id": 7246,
            "name": "FunctionDefinition",
            "src": "7856:160:35"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "get",
              "scope": 7276,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Same as {get}, with a custom error message when `key` is not in the map."
                },
                "id": 7247,
                "name": "StructuredDocumentation",
                "src": "8022:96:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "map",
                      "scope": 7275,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableMap.UintToAddressMap",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "UintToAddressMap",
                          "referencedDeclaration": 7101,
                          "type": "struct EnumerableMap.UintToAddressMap"
                        },
                        "id": 7248,
                        "name": "UserDefinedTypeName",
                        "src": "8136:16:35"
                      }
                    ],
                    "id": 7249,
                    "name": "VariableDeclaration",
                    "src": "8136:28:35"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "key",
                      "scope": 7275,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 7250,
                        "name": "ElementaryTypeName",
                        "src": "8166:7:35"
                      }
                    ],
                    "id": 7251,
                    "name": "VariableDeclaration",
                    "src": "8166:11:35"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "errorMessage",
                      "scope": 7275,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "string",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "string",
                          "type": "string"
                        },
                        "id": 7252,
                        "name": "ElementaryTypeName",
                        "src": "8179:6:35"
                      }
                    ],
                    "id": 7253,
                    "name": "VariableDeclaration",
                    "src": "8179:26:35"
                  }
                ],
                "id": 7254,
                "name": "ParameterList",
                "src": "8135:71:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7275,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 7255,
                        "name": "ElementaryTypeName",
                        "src": "8230:7:35"
                      }
                    ],
                    "id": 7256,
                    "name": "VariableDeclaration",
                    "src": "8230:7:35"
                  }
                ],
                "id": 7257,
                "name": "ParameterList",
                "src": "8229:9:35"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 7257
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "address payable",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "type": "type(address)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "address"
                                },
                                "id": 7258,
                                "name": "ElementaryTypeName",
                                "src": "8256:7:35"
                              }
                            ],
                            "id": 7259,
                            "name": "ElementaryTypeNameExpression",
                            "src": "8256:7:35"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "uint256",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(uint256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint256"
                                    },
                                    "id": 7260,
                                    "name": "ElementaryTypeName",
                                    "src": "8264:7:35"
                                  }
                                ],
                                "id": 7261,
                                "name": "ElementaryTypeNameExpression",
                                "src": "8264:7:35"
                              },
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "bytes32",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_struct$_Map_$6837_storage",
                                          "typeString": "struct EnumerableMap.Map storage ref"
                                        },
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        },
                                        {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        7063,
                                        7098
                                      ],
                                      "referencedDeclaration": 7098,
                                      "type": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)",
                                      "value": "_get"
                                    },
                                    "id": 7262,
                                    "name": "Identifier",
                                    "src": "8272:4:35"
                                  },
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "_inner",
                                      "referencedDeclaration": 7100,
                                      "type": "struct EnumerableMap.Map storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7249,
                                          "type": "struct EnumerableMap.UintToAddressMap storage pointer",
                                          "value": "map"
                                        },
                                        "id": 7263,
                                        "name": "Identifier",
                                        "src": "8277:3:35"
                                      }
                                    ],
                                    "id": 7264,
                                    "name": "MemberAccess",
                                    "src": "8277:10:35"
                                  },
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "tryCall": false,
                                      "type": "bytes32",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(bytes32)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "name": "bytes32"
                                            },
                                            "id": 7265,
                                            "name": "ElementaryTypeName",
                                            "src": "8289:7:35"
                                          }
                                        ],
                                        "id": 7266,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "8289:7:35"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7251,
                                          "type": "uint256",
                                          "value": "key"
                                        },
                                        "id": 7267,
                                        "name": "Identifier",
                                        "src": "8297:3:35"
                                      }
                                    ],
                                    "id": 7268,
                                    "name": "FunctionCall",
                                    "src": "8289:12:35"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7253,
                                      "type": "string memory",
                                      "value": "errorMessage"
                                    },
                                    "id": 7269,
                                    "name": "Identifier",
                                    "src": "8303:12:35"
                                  }
                                ],
                                "id": 7270,
                                "name": "FunctionCall",
                                "src": "8272:44:35"
                              }
                            ],
                            "id": 7271,
                            "name": "FunctionCall",
                            "src": "8264:53:35"
                          }
                        ],
                        "id": 7272,
                        "name": "FunctionCall",
                        "src": "8256:62:35"
                      }
                    ],
                    "id": 7273,
                    "name": "Return",
                    "src": "8249:69:35"
                  }
                ],
                "id": 7274,
                "name": "Block",
                "src": "8239:86:35"
              }
            ],
            "id": 7275,
            "name": "FunctionDefinition",
            "src": "8123:202:35"
          }
        ],
        "id": 7276,
        "name": "ContractDefinition",
        "src": "772:7555:35"
      }
    ],
    "id": 7277,
    "name": "SourceUnit",
    "src": "33:8295:35"
  },
  "compiler": {
    "name": "solc",
    "version": "0.7.6+commit.7338295f.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.1",
  "updatedAt": "2021-06-03T23:56:22.371Z",
  "devdoc": {
    "details": "Library for managing an enumerable variant of Solidity's https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`] type. Maps have the following properties: - Entries are added, removed, and checked for existence in constant time (O(1)). - Entries are enumerated in O(n). No guarantees are made on the ordering. ``` contract Example {     // Add the library methods     using EnumerableMap for EnumerableMap.UintToAddressMap;     // Declare a set state variable     EnumerableMap.UintToAddressMap private myMap; } ``` As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are supported.",
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}