{
  "contractName": "EnumerableSet",
  "abi": [],
  "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for managing https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive types. Sets have the following properties: - Elements are added, removed, and checked for existence in constant time (O(1)). - Elements are enumerated in O(n). No guarantees are made on the ordering. ``` contract Example {     // Add the library methods     using EnumerableSet for EnumerableSet.AddressSet;     // Declare a set state variable     EnumerableSet.AddressSet private mySet; } ``` As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`) and `uint256` (`UintSet`) are supported.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/EnumerableSet.sol\":\"EnumerableSet\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/EnumerableSet.sol\":{\"keccak256\":\"0xae0992eb1ec30fd1ecdf2e04a6036decfc9797bf11dc1ec84b546b74318d5ec2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b61f99a64e999682ad7bfbb3a1c762a20a0a5b30f9f2011693fa857969af61f\",\"dweb:/ipfs/QmZystFY76wkWCf7V3yKh3buZuKVKbswiE7y6yU62kk3zi\"]}},\"version\":1}",
  "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205ee0e7b82594236d819f23d5f92a013aeac048b8742b69c45d9411f4676515e164736f6c63430007060033",
  "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205ee0e7b82594236d819f23d5f92a013aeac048b8742b69c45d9411f4676515e164736f6c63430007060033",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [],
  "sourceMap": "753:8598:36:-:0;;;;;;;;;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "753:8598:36:-:0;;;;;;;;",
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Library for managing\n * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n * types.\n *\n * Sets have the following properties:\n *\n * - Elements are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Elements are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n *     // Add the library methods\n *     using EnumerableSet for EnumerableSet.AddressSet;\n *\n *     // Declare a set state variable\n *     EnumerableSet.AddressSet private mySet;\n * }\n * ```\n *\n * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n * and `uint256` (`UintSet`) are supported.\n */\nlibrary EnumerableSet {\n    // To implement this library for multiple types with as little code\n    // repetition as possible, we write it in terms of a generic Set type with\n    // bytes32 values.\n    // The Set implementation uses private functions, and user-facing\n    // implementations (such as AddressSet) are just wrappers around the\n    // underlying Set.\n    // This means that we can only create new EnumerableSets for types that fit\n    // in bytes32.\n\n    struct Set {\n        // Storage of set values\n        bytes32[] _values;\n\n        // Position of the value in the `values` array, plus 1 because index 0\n        // means a value is not in the set.\n        mapping (bytes32 => uint256) _indexes;\n    }\n\n    /**\n     * @dev Add a value to a set. O(1).\n     *\n     * Returns true if the value was added to the set, that is if it was not\n     * already present.\n     */\n    function _add(Set storage set, bytes32 value) private returns (bool) {\n        if (!_contains(set, value)) {\n            set._values.push(value);\n            // The value is stored at length-1, but we add 1 to all indexes\n            // and use 0 as a sentinel value\n            set._indexes[value] = set._values.length;\n            return true;\n        } else {\n            return false;\n        }\n    }\n\n    /**\n     * @dev Removes a value from a set. O(1).\n     *\n     * Returns true if the value was removed from the set, that is if it was\n     * present.\n     */\n    function _remove(Set storage set, bytes32 value) private returns (bool) {\n        // We read and store the value's index to prevent multiple reads from the same storage slot\n        uint256 valueIndex = set._indexes[value];\n\n        if (valueIndex != 0) { // Equivalent to contains(set, value)\n            // To delete an element from the _values array in O(1), we swap the element to delete with the last one in\n            // the array, and then remove the last element (sometimes called as 'swap and pop').\n            // This modifies the order of the array, as noted in {at}.\n\n            uint256 toDeleteIndex = valueIndex - 1;\n            uint256 lastIndex = set._values.length - 1;\n\n            // When the value 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            bytes32 lastvalue = set._values[lastIndex];\n\n            // Move the last value to the index where the value to delete is\n            set._values[toDeleteIndex] = lastvalue;\n            // Update the index for the moved value\n            set._indexes[lastvalue] = toDeleteIndex + 1; // All indexes are 1-based\n\n            // Delete the slot where the moved value was stored\n            set._values.pop();\n\n            // Delete the index for the deleted slot\n            delete set._indexes[value];\n\n            return true;\n        } else {\n            return false;\n        }\n    }\n\n    /**\n     * @dev Returns true if the value is in the set. O(1).\n     */\n    function _contains(Set storage set, bytes32 value) private view returns (bool) {\n        return set._indexes[value] != 0;\n    }\n\n    /**\n     * @dev Returns the number of values on the set. O(1).\n     */\n    function _length(Set storage set) private view returns (uint256) {\n        return set._values.length;\n    }\n\n   /**\n    * @dev Returns the value stored at position `index` in the set. O(1).\n    *\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(Set storage set, uint256 index) private view returns (bytes32) {\n        require(set._values.length > index, \"EnumerableSet: index out of bounds\");\n        return set._values[index];\n    }\n\n    // Bytes32Set\n\n    struct Bytes32Set {\n        Set _inner;\n    }\n\n    /**\n     * @dev Add a value to a set. O(1).\n     *\n     * Returns true if the value was added to the set, that is if it was not\n     * already present.\n     */\n    function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n        return _add(set._inner, value);\n    }\n\n    /**\n     * @dev Removes a value from a set. O(1).\n     *\n     * Returns true if the value was removed from the set, that is if it was\n     * present.\n     */\n    function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n        return _remove(set._inner, value);\n    }\n\n    /**\n     * @dev Returns true if the value is in the set. O(1).\n     */\n    function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {\n        return _contains(set._inner, value);\n    }\n\n    /**\n     * @dev Returns the number of values in the set. O(1).\n     */\n    function length(Bytes32Set storage set) internal view returns (uint256) {\n        return _length(set._inner);\n    }\n\n   /**\n    * @dev Returns the value stored at position `index` in the set. O(1).\n    *\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(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {\n        return _at(set._inner, index);\n    }\n\n    // AddressSet\n\n    struct AddressSet {\n        Set _inner;\n    }\n\n    /**\n     * @dev Add a value to a set. O(1).\n     *\n     * Returns true if the value was added to the set, that is if it was not\n     * already present.\n     */\n    function add(AddressSet storage set, address value) internal returns (bool) {\n        return _add(set._inner, bytes32(uint256(value)));\n    }\n\n    /**\n     * @dev Removes a value from a set. O(1).\n     *\n     * Returns true if the value was removed from the set, that is if it was\n     * present.\n     */\n    function remove(AddressSet storage set, address value) internal returns (bool) {\n        return _remove(set._inner, bytes32(uint256(value)));\n    }\n\n    /**\n     * @dev Returns true if the value is in the set. O(1).\n     */\n    function contains(AddressSet storage set, address value) internal view returns (bool) {\n        return _contains(set._inner, bytes32(uint256(value)));\n    }\n\n    /**\n     * @dev Returns the number of values in the set. O(1).\n     */\n    function length(AddressSet storage set) internal view returns (uint256) {\n        return _length(set._inner);\n    }\n\n   /**\n    * @dev Returns the value stored at position `index` in the set. O(1).\n    *\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(AddressSet storage set, uint256 index) internal view returns (address) {\n        return address(uint256(_at(set._inner, index)));\n    }\n\n\n    // UintSet\n\n    struct UintSet {\n        Set _inner;\n    }\n\n    /**\n     * @dev Add a value to a set. O(1).\n     *\n     * Returns true if the value was added to the set, that is if it was not\n     * already present.\n     */\n    function add(UintSet storage set, uint256 value) internal returns (bool) {\n        return _add(set._inner, bytes32(value));\n    }\n\n    /**\n     * @dev Removes a value from a set. O(1).\n     *\n     * Returns true if the value was removed from the set, that is if it was\n     * present.\n     */\n    function remove(UintSet storage set, uint256 value) internal returns (bool) {\n        return _remove(set._inner, bytes32(value));\n    }\n\n    /**\n     * @dev Returns true if the value is in the set. O(1).\n     */\n    function contains(UintSet storage set, uint256 value) internal view returns (bool) {\n        return _contains(set._inner, bytes32(value));\n    }\n\n    /**\n     * @dev Returns the number of values on the set. O(1).\n     */\n    function length(UintSet storage set) internal view returns (uint256) {\n        return _length(set._inner);\n    }\n\n   /**\n    * @dev Returns the value stored at position `index` in the set. O(1).\n    *\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(UintSet storage set, uint256 index) internal view returns (uint256) {\n        return uint256(_at(set._inner, index));\n    }\n}\n",
  "sourcePath": "@openzeppelin/contracts/utils/EnumerableSet.sol",
  "ast": {
    "absolutePath": "@openzeppelin/contracts/utils/EnumerableSet.sol",
    "exportedSymbols": {
      "EnumerableSet": [
        7756
      ]
    },
    "id": 7757,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 7278,
        "literals": [
          "solidity",
          ">=",
          "0.6",
          ".0",
          "<",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "33:31:36"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "library",
        "documentation": {
          "id": 7279,
          "nodeType": "StructuredDocumentation",
          "src": "66:686:36",
          "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n     // Add the library methods\n     using EnumerableSet for EnumerableSet.AddressSet;\n     // Declare a set state variable\n     EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported."
        },
        "fullyImplemented": true,
        "id": 7756,
        "linearizedBaseContracts": [
          7756
        ],
        "name": "EnumerableSet",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "EnumerableSet.Set",
            "id": 7287,
            "members": [
              {
                "constant": false,
                "id": 7282,
                "mutability": "mutable",
                "name": "_values",
                "nodeType": "VariableDeclaration",
                "scope": 7287,
                "src": "1275:17:36",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                  "typeString": "bytes32[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 7280,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1275:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 7281,
                  "nodeType": "ArrayTypeName",
                  "src": "1275:9:36",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                    "typeString": "bytes32[]"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7286,
                "mutability": "mutable",
                "name": "_indexes",
                "nodeType": "VariableDeclaration",
                "scope": 7287,
                "src": "1426:37:36",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                  "typeString": "mapping(bytes32 => uint256)"
                },
                "typeName": {
                  "id": 7285,
                  "keyType": {
                    "id": 7283,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1435:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "Mapping",
                  "src": "1426:28:36",
                  "typeDescriptions": {
                    "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                    "typeString": "mapping(bytes32 => uint256)"
                  },
                  "valueType": {
                    "id": 7284,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1446:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Set",
            "nodeType": "StructDefinition",
            "scope": 7756,
            "src": "1221:249:36",
            "visibility": "public"
          },
          {
            "body": {
              "id": 7327,
              "nodeType": "Block",
              "src": "1709:335:36",
              "statements": [
                {
                  "condition": {
                    "id": 7301,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "1723:22:36",
                    "subExpression": {
                      "arguments": [
                        {
                          "id": 7298,
                          "name": "set",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7290,
                          "src": "1734:3:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                            "typeString": "struct EnumerableSet.Set storage pointer"
                          }
                        },
                        {
                          "id": 7299,
                          "name": "value",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7292,
                          "src": "1739:5:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                            "typeString": "struct EnumerableSet.Set storage pointer"
                          },
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        ],
                        "id": 7297,
                        "name": "_contains",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7426,
                        "src": "1724:9:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$7287_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                          "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"
                        }
                      },
                      "id": 7300,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1724:21:36",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 7325,
                    "nodeType": "Block",
                    "src": "2001:37:36",
                    "statements": [
                      {
                        "expression": {
                          "hexValue": "66616c7365",
                          "id": 7323,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2022:5:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 7296,
                        "id": 7324,
                        "nodeType": "Return",
                        "src": "2015:12:36"
                      }
                    ]
                  },
                  "id": 7326,
                  "nodeType": "IfStatement",
                  "src": "1719:319:36",
                  "trueBody": {
                    "id": 7322,
                    "nodeType": "Block",
                    "src": "1747:248:36",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 7307,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7292,
                              "src": "1778:5:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            ],
                            "expression": {
                              "expression": {
                                "id": 7302,
                                "name": "set",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7290,
                                "src": "1761:3:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                                  "typeString": "struct EnumerableSet.Set storage pointer"
                                }
                              },
                              "id": 7305,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_values",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7282,
                              "src": "1761:11:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                "typeString": "bytes32[] storage ref"
                              }
                            },
                            "id": 7306,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "push",
                            "nodeType": "MemberAccess",
                            "src": "1761:16:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$__$",
                              "typeString": "function (bytes32)"
                            }
                          },
                          "id": 7308,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1761:23:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 7309,
                        "nodeType": "ExpressionStatement",
                        "src": "1761:23:36"
                      },
                      {
                        "expression": {
                          "id": 7318,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "expression": {
                                "id": 7310,
                                "name": "set",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7290,
                                "src": "1919:3:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                                  "typeString": "struct EnumerableSet.Set storage pointer"
                                }
                              },
                              "id": 7313,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_indexes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7286,
                              "src": "1919:12:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                "typeString": "mapping(bytes32 => uint256)"
                              }
                            },
                            "id": 7314,
                            "indexExpression": {
                              "id": 7312,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7292,
                              "src": "1932:5:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "1919:19:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "expression": {
                              "expression": {
                                "id": 7315,
                                "name": "set",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7290,
                                "src": "1941:3:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                                  "typeString": "struct EnumerableSet.Set storage pointer"
                                }
                              },
                              "id": 7316,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_values",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7282,
                              "src": "1941:11:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                "typeString": "bytes32[] storage ref"
                              }
                            },
                            "id": 7317,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "src": "1941:18:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "1919:40:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 7319,
                        "nodeType": "ExpressionStatement",
                        "src": "1919:40:36"
                      },
                      {
                        "expression": {
                          "hexValue": "74727565",
                          "id": 7320,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1980:4:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        "functionReturnParameters": 7296,
                        "id": 7321,
                        "nodeType": "Return",
                        "src": "1973:11:36"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 7288,
              "nodeType": "StructuredDocumentation",
              "src": "1476:159:36",
              "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."
            },
            "id": 7328,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_add",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7293,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7290,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 7328,
                  "src": "1654:15:36",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                    "typeString": "struct EnumerableSet.Set"
                  },
                  "typeName": {
                    "id": 7289,
                    "name": "Set",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7287,
                    "src": "1654:3:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                      "typeString": "struct EnumerableSet.Set"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7292,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 7328,
                  "src": "1671:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7291,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1671:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1653:32:36"
            },
            "returnParameters": {
              "id": 7296,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7295,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7328,
                  "src": "1703:4:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 7294,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1703:4:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1702:6:36"
            },
            "scope": 7756,
            "src": "1640:404:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "private"
          },
          {
            "body": {
              "id": 7407,
              "nodeType": "Block",
              "src": "2284:1440:36",
              "statements": [
                {
                  "assignments": [
                    7339
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7339,
                      "mutability": "mutable",
                      "name": "valueIndex",
                      "nodeType": "VariableDeclaration",
                      "scope": 7407,
                      "src": "2394:18:36",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 7338,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2394:7:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7344,
                  "initialValue": {
                    "baseExpression": {
                      "expression": {
                        "id": 7340,
                        "name": "set",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7331,
                        "src": "2415:3:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                          "typeString": "struct EnumerableSet.Set storage pointer"
                        }
                      },
                      "id": 7341,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "_indexes",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7286,
                      "src": "2415:12:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                        "typeString": "mapping(bytes32 => uint256)"
                      }
                    },
                    "id": 7343,
                    "indexExpression": {
                      "id": 7342,
                      "name": "value",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7333,
                      "src": "2428:5:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "2415:19:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2394:40:36"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 7347,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 7345,
                      "name": "valueIndex",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7339,
                      "src": "2449:10:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 7346,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2463:1:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "2449:15:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 7405,
                    "nodeType": "Block",
                    "src": "3681:37:36",
                    "statements": [
                      {
                        "expression": {
                          "hexValue": "66616c7365",
                          "id": 7403,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3702:5:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "functionReturnParameters": 7337,
                        "id": 7404,
                        "nodeType": "Return",
                        "src": "3695:12:36"
                      }
                    ]
                  },
                  "id": 7406,
                  "nodeType": "IfStatement",
                  "src": "2445:1273:36",
                  "trueBody": {
                    "id": 7402,
                    "nodeType": "Block",
                    "src": "2466:1209:36",
                    "statements": [
                      {
                        "assignments": [
                          7349
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 7349,
                            "mutability": "mutable",
                            "name": "toDeleteIndex",
                            "nodeType": "VariableDeclaration",
                            "scope": 7402,
                            "src": "2806:21:36",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 7348,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "2806:7:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 7353,
                        "initialValue": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 7352,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 7350,
                            "name": "valueIndex",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7339,
                            "src": "2830:10:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "hexValue": "31",
                            "id": 7351,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2843:1:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "1"
                          },
                          "src": "2830:14:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2806:38:36"
                      },
                      {
                        "assignments": [
                          7355
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 7355,
                            "mutability": "mutable",
                            "name": "lastIndex",
                            "nodeType": "VariableDeclaration",
                            "scope": 7402,
                            "src": "2858:17:36",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 7354,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "2858:7:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 7361,
                        "initialValue": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 7360,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "expression": {
                                "id": 7356,
                                "name": "set",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7331,
                                "src": "2878:3:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                                  "typeString": "struct EnumerableSet.Set storage pointer"
                                }
                              },
                              "id": 7357,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_values",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7282,
                              "src": "2878:11:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                "typeString": "bytes32[] storage ref"
                              }
                            },
                            "id": 7358,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "src": "2878:18:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "hexValue": "31",
                            "id": 7359,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2899:1:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "1"
                          },
                          "src": "2878:22:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2858:42:36"
                      },
                      {
                        "assignments": [
                          7363
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 7363,
                            "mutability": "mutable",
                            "name": "lastvalue",
                            "nodeType": "VariableDeclaration",
                            "scope": 7402,
                            "src": "3140:17:36",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "typeName": {
                              "id": 7362,
                              "name": "bytes32",
                              "nodeType": "ElementaryTypeName",
                              "src": "3140:7:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 7368,
                        "initialValue": {
                          "baseExpression": {
                            "expression": {
                              "id": 7364,
                              "name": "set",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7331,
                              "src": "3160:3:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                                "typeString": "struct EnumerableSet.Set storage pointer"
                              }
                            },
                            "id": 7365,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "_values",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7282,
                            "src": "3160:11:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                              "typeString": "bytes32[] storage ref"
                            }
                          },
                          "id": 7367,
                          "indexExpression": {
                            "id": 7366,
                            "name": "lastIndex",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7355,
                            "src": "3172:9:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "3160:22:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "3140:42:36"
                      },
                      {
                        "expression": {
                          "id": 7375,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "expression": {
                                "id": 7369,
                                "name": "set",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7331,
                                "src": "3274:3:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                                  "typeString": "struct EnumerableSet.Set storage pointer"
                                }
                              },
                              "id": 7372,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_values",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7282,
                              "src": "3274:11:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                "typeString": "bytes32[] storage ref"
                              }
                            },
                            "id": 7373,
                            "indexExpression": {
                              "id": 7371,
                              "name": "toDeleteIndex",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7349,
                              "src": "3286:13:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "3274:26:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 7374,
                            "name": "lastvalue",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7363,
                            "src": "3303:9:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "3274:38:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 7376,
                        "nodeType": "ExpressionStatement",
                        "src": "3274:38:36"
                      },
                      {
                        "expression": {
                          "id": 7385,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "expression": {
                                "id": 7377,
                                "name": "set",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7331,
                                "src": "3378:3:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                                  "typeString": "struct EnumerableSet.Set storage pointer"
                                }
                              },
                              "id": 7380,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_indexes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7286,
                              "src": "3378:12:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                "typeString": "mapping(bytes32 => uint256)"
                              }
                            },
                            "id": 7381,
                            "indexExpression": {
                              "id": 7379,
                              "name": "lastvalue",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7363,
                              "src": "3391:9:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "3378:23:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 7384,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 7382,
                              "name": "toDeleteIndex",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7349,
                              "src": "3404:13:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "hexValue": "31",
                              "id": 7383,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3420:1:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "3404:17:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "3378:43:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 7386,
                        "nodeType": "ExpressionStatement",
                        "src": "3378:43:36"
                      },
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "expression": {
                                "id": 7387,
                                "name": "set",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7331,
                                "src": "3527:3:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                                  "typeString": "struct EnumerableSet.Set storage pointer"
                                }
                              },
                              "id": 7390,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_values",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7282,
                              "src": "3527:11:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                                "typeString": "bytes32[] storage ref"
                              }
                            },
                            "id": 7391,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "pop",
                            "nodeType": "MemberAccess",
                            "src": "3527:15:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$",
                              "typeString": "function ()"
                            }
                          },
                          "id": 7392,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3527:17:36",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 7393,
                        "nodeType": "ExpressionStatement",
                        "src": "3527:17:36"
                      },
                      {
                        "expression": {
                          "id": 7398,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "delete",
                          "prefix": true,
                          "src": "3612:26:36",
                          "subExpression": {
                            "baseExpression": {
                              "expression": {
                                "id": 7394,
                                "name": "set",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7331,
                                "src": "3619:3:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                                  "typeString": "struct EnumerableSet.Set storage pointer"
                                }
                              },
                              "id": 7395,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "_indexes",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7286,
                              "src": "3619:12:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                                "typeString": "mapping(bytes32 => uint256)"
                              }
                            },
                            "id": 7397,
                            "indexExpression": {
                              "id": 7396,
                              "name": "value",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7333,
                              "src": "3632:5:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "3619:19:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 7399,
                        "nodeType": "ExpressionStatement",
                        "src": "3612:26:36"
                      },
                      {
                        "expression": {
                          "hexValue": "74727565",
                          "id": 7400,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3660:4:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        "functionReturnParameters": 7337,
                        "id": 7401,
                        "nodeType": "Return",
                        "src": "3653:11:36"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 7329,
              "nodeType": "StructuredDocumentation",
              "src": "2050:157:36",
              "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."
            },
            "id": 7408,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_remove",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7334,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7331,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 7408,
                  "src": "2229:15:36",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                    "typeString": "struct EnumerableSet.Set"
                  },
                  "typeName": {
                    "id": 7330,
                    "name": "Set",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7287,
                    "src": "2229:3:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                      "typeString": "struct EnumerableSet.Set"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7333,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 7408,
                  "src": "2246:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7332,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2246:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2228:32:36"
            },
            "returnParameters": {
              "id": 7337,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7336,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7408,
                  "src": "2278:4:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 7335,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2278:4:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2277:6:36"
            },
            "scope": 7756,
            "src": "2212:1512:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "private"
          },
          {
            "body": {
              "id": 7425,
              "nodeType": "Block",
              "src": "3884:48:36",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 7423,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "baseExpression": {
                        "expression": {
                          "id": 7418,
                          "name": "set",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7411,
                          "src": "3901:3:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                            "typeString": "struct EnumerableSet.Set storage pointer"
                          }
                        },
                        "id": 7419,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_indexes",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7286,
                        "src": "3901:12:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
                          "typeString": "mapping(bytes32 => uint256)"
                        }
                      },
                      "id": 7421,
                      "indexExpression": {
                        "id": 7420,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7413,
                        "src": "3914:5:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "3901:19:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 7422,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3924:1:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "3901:24:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 7417,
                  "id": 7424,
                  "nodeType": "Return",
                  "src": "3894:31:36"
                }
              ]
            },
            "documentation": {
              "id": 7409,
              "nodeType": "StructuredDocumentation",
              "src": "3730:70:36",
              "text": " @dev Returns true if the value is in the set. O(1)."
            },
            "id": 7426,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_contains",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7414,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7411,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 7426,
                  "src": "3824:15:36",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                    "typeString": "struct EnumerableSet.Set"
                  },
                  "typeName": {
                    "id": 7410,
                    "name": "Set",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7287,
                    "src": "3824:3:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                      "typeString": "struct EnumerableSet.Set"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7413,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 7426,
                  "src": "3841:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7412,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3841:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3823:32:36"
            },
            "returnParameters": {
              "id": 7417,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7416,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7426,
                  "src": "3878:4:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 7415,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3878:4:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3877:6:36"
            },
            "scope": 7756,
            "src": "3805:127:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "private"
          },
          {
            "body": {
              "id": 7438,
              "nodeType": "Block",
              "src": "4078:42:36",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "expression": {
                        "id": 7434,
                        "name": "set",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7429,
                        "src": "4095:3:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                          "typeString": "struct EnumerableSet.Set storage pointer"
                        }
                      },
                      "id": 7435,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "_values",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7282,
                      "src": "4095:11:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                        "typeString": "bytes32[] storage ref"
                      }
                    },
                    "id": 7436,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "src": "4095:18:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 7433,
                  "id": 7437,
                  "nodeType": "Return",
                  "src": "4088:25:36"
                }
              ]
            },
            "documentation": {
              "id": 7427,
              "nodeType": "StructuredDocumentation",
              "src": "3938:70:36",
              "text": " @dev Returns the number of values on the set. O(1)."
            },
            "id": 7439,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_length",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7430,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7429,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 7439,
                  "src": "4030:15:36",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                    "typeString": "struct EnumerableSet.Set"
                  },
                  "typeName": {
                    "id": 7428,
                    "name": "Set",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7287,
                    "src": "4030:3:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                      "typeString": "struct EnumerableSet.Set"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4029:17:36"
            },
            "returnParameters": {
              "id": 7433,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7432,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7439,
                  "src": "4069:7:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7431,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4069:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4068:9:36"
            },
            "scope": 7756,
            "src": "4013:107:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "private"
          },
          {
            "body": {
              "id": 7463,
              "nodeType": "Block",
              "src": "4528:125:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7454,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "expression": {
                              "id": 7450,
                              "name": "set",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7442,
                              "src": "4546:3:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                                "typeString": "struct EnumerableSet.Set storage pointer"
                              }
                            },
                            "id": 7451,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "_values",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7282,
                            "src": "4546:11:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                              "typeString": "bytes32[] storage ref"
                            }
                          },
                          "id": 7452,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "4546:18:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "id": 7453,
                          "name": "index",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7444,
                          "src": "4567:5:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "4546:26:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473",
                        "id": 7455,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4574:36:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb",
                          "typeString": "literal_string \"EnumerableSet: index out of bounds\""
                        },
                        "value": "EnumerableSet: index out of bounds"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb",
                          "typeString": "literal_string \"EnumerableSet: index out of bounds\""
                        }
                      ],
                      "id": 7449,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "4538:7:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 7456,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4538:73:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7457,
                  "nodeType": "ExpressionStatement",
                  "src": "4538:73:36"
                },
                {
                  "expression": {
                    "baseExpression": {
                      "expression": {
                        "id": 7458,
                        "name": "set",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7442,
                        "src": "4628:3:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                          "typeString": "struct EnumerableSet.Set storage pointer"
                        }
                      },
                      "id": 7459,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "_values",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7282,
                      "src": "4628:11:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$dyn_storage",
                        "typeString": "bytes32[] storage ref"
                      }
                    },
                    "id": 7461,
                    "indexExpression": {
                      "id": 7460,
                      "name": "index",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7444,
                      "src": "4640:5:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4628:18:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 7448,
                  "id": 7462,
                  "nodeType": "Return",
                  "src": "4621:25:36"
                }
              ]
            },
            "documentation": {
              "id": 7440,
              "nodeType": "StructuredDocumentation",
              "src": "4125:322:36",
              "text": " @dev Returns the value 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": 7464,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_at",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7445,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7442,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 7464,
                  "src": "4465:15:36",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                    "typeString": "struct EnumerableSet.Set"
                  },
                  "typeName": {
                    "id": 7441,
                    "name": "Set",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7287,
                    "src": "4465:3:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                      "typeString": "struct EnumerableSet.Set"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7444,
                  "mutability": "mutable",
                  "name": "index",
                  "nodeType": "VariableDeclaration",
                  "scope": 7464,
                  "src": "4482:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7443,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4482:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4464:32:36"
            },
            "returnParameters": {
              "id": 7448,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7447,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7464,
                  "src": "4519:7:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7446,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4519:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4518:9:36"
            },
            "scope": 7756,
            "src": "4452:201:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "private"
          },
          {
            "canonicalName": "EnumerableSet.Bytes32Set",
            "id": 7467,
            "members": [
              {
                "constant": false,
                "id": 7466,
                "mutability": "mutable",
                "name": "_inner",
                "nodeType": "VariableDeclaration",
                "scope": 7467,
                "src": "4706:10:36",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                  "typeString": "struct EnumerableSet.Set"
                },
                "typeName": {
                  "id": 7465,
                  "name": "Set",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 7287,
                  "src": "4706:3:36",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                    "typeString": "struct EnumerableSet.Set"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Bytes32Set",
            "nodeType": "StructDefinition",
            "scope": 7756,
            "src": "4678:45:36",
            "visibility": "public"
          },
          {
            "body": {
              "id": 7483,
              "nodeType": "Block",
              "src": "4969:47:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 7478,
                          "name": "set",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7470,
                          "src": "4991:3:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes32Set_$7467_storage_ptr",
                            "typeString": "struct EnumerableSet.Bytes32Set storage pointer"
                          }
                        },
                        "id": 7479,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7466,
                        "src": "4991:10:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$7287_storage",
                          "typeString": "struct EnumerableSet.Set storage ref"
                        }
                      },
                      {
                        "id": 7480,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7472,
                        "src": "5003:5:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Set_$7287_storage",
                          "typeString": "struct EnumerableSet.Set storage ref"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 7477,
                      "name": "_add",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7328,
                      "src": "4986:4:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$7287_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 7481,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4986:23:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 7476,
                  "id": 7482,
                  "nodeType": "Return",
                  "src": "4979:30:36"
                }
              ]
            },
            "documentation": {
              "id": 7468,
              "nodeType": "StructuredDocumentation",
              "src": "4729:159:36",
              "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."
            },
            "id": 7484,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "add",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7473,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7470,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 7484,
                  "src": "4906:22:36",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes32Set_$7467_storage_ptr",
                    "typeString": "struct EnumerableSet.Bytes32Set"
                  },
                  "typeName": {
                    "id": 7469,
                    "name": "Bytes32Set",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7467,
                    "src": "4906:10:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes32Set_$7467_storage_ptr",
                      "typeString": "struct EnumerableSet.Bytes32Set"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7472,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 7484,
                  "src": "4930:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7471,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4930:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4905:39:36"
            },
            "returnParameters": {
              "id": 7476,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7475,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7484,
                  "src": "4963:4:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 7474,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4963:4:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4962:6:36"
            },
            "scope": 7756,
            "src": "4893:123:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7500,
              "nodeType": "Block",
              "src": "5263:50:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 7495,
                          "name": "set",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7487,
                          "src": "5288:3:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes32Set_$7467_storage_ptr",
                            "typeString": "struct EnumerableSet.Bytes32Set storage pointer"
                          }
                        },
                        "id": 7496,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7466,
                        "src": "5288:10:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$7287_storage",
                          "typeString": "struct EnumerableSet.Set storage ref"
                        }
                      },
                      {
                        "id": 7497,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7489,
                        "src": "5300:5:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Set_$7287_storage",
                          "typeString": "struct EnumerableSet.Set storage ref"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 7494,
                      "name": "_remove",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7408,
                      "src": "5280:7:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$7287_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 7498,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5280:26:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 7493,
                  "id": 7499,
                  "nodeType": "Return",
                  "src": "5273:33:36"
                }
              ]
            },
            "documentation": {
              "id": 7485,
              "nodeType": "StructuredDocumentation",
              "src": "5022:157:36",
              "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."
            },
            "id": 7501,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "remove",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7490,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7487,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 7501,
                  "src": "5200:22:36",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes32Set_$7467_storage_ptr",
                    "typeString": "struct EnumerableSet.Bytes32Set"
                  },
                  "typeName": {
                    "id": 7486,
                    "name": "Bytes32Set",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7467,
                    "src": "5200:10:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes32Set_$7467_storage_ptr",
                      "typeString": "struct EnumerableSet.Bytes32Set"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7489,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 7501,
                  "src": "5224:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7488,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5224:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5199:39:36"
            },
            "returnParameters": {
              "id": 7493,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7492,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7501,
                  "src": "5257:4:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 7491,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5257:4:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5256:6:36"
            },
            "scope": 7756,
            "src": "5184:129:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7517,
              "nodeType": "Block",
              "src": "5480:52:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 7512,
                          "name": "set",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7504,
                          "src": "5507:3:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes32Set_$7467_storage_ptr",
                            "typeString": "struct EnumerableSet.Bytes32Set storage pointer"
                          }
                        },
                        "id": 7513,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7466,
                        "src": "5507:10:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$7287_storage",
                          "typeString": "struct EnumerableSet.Set storage ref"
                        }
                      },
                      {
                        "id": 7514,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7506,
                        "src": "5519:5:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Set_$7287_storage",
                          "typeString": "struct EnumerableSet.Set storage ref"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 7511,
                      "name": "_contains",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7426,
                      "src": "5497:9:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$7287_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"
                      }
                    },
                    "id": 7515,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5497:28:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 7510,
                  "id": 7516,
                  "nodeType": "Return",
                  "src": "5490:35:36"
                }
              ]
            },
            "documentation": {
              "id": 7502,
              "nodeType": "StructuredDocumentation",
              "src": "5319:70:36",
              "text": " @dev Returns true if the value is in the set. O(1)."
            },
            "id": 7518,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "contains",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7507,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7504,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 7518,
                  "src": "5412:22:36",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes32Set_$7467_storage_ptr",
                    "typeString": "struct EnumerableSet.Bytes32Set"
                  },
                  "typeName": {
                    "id": 7503,
                    "name": "Bytes32Set",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7467,
                    "src": "5412:10:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes32Set_$7467_storage_ptr",
                      "typeString": "struct EnumerableSet.Bytes32Set"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7506,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 7518,
                  "src": "5436:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7505,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5436:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5411:39:36"
            },
            "returnParameters": {
              "id": 7510,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7509,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7518,
                  "src": "5474:4:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 7508,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5474:4:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5473:6:36"
            },
            "scope": 7756,
            "src": "5394:138:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7531,
              "nodeType": "Block",
              "src": "5685:43:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 7527,
                          "name": "set",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7521,
                          "src": "5710:3:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes32Set_$7467_storage_ptr",
                            "typeString": "struct EnumerableSet.Bytes32Set storage pointer"
                          }
                        },
                        "id": 7528,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7466,
                        "src": "5710:10:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$7287_storage",
                          "typeString": "struct EnumerableSet.Set storage ref"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Set_$7287_storage",
                          "typeString": "struct EnumerableSet.Set storage ref"
                        }
                      ],
                      "id": 7526,
                      "name": "_length",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7439,
                      "src": "5702:7:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$7287_storage_ptr_$returns$_t_uint256_$",
                        "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)"
                      }
                    },
                    "id": 7529,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5702:19:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 7525,
                  "id": 7530,
                  "nodeType": "Return",
                  "src": "5695:26:36"
                }
              ]
            },
            "documentation": {
              "id": 7519,
              "nodeType": "StructuredDocumentation",
              "src": "5538:70:36",
              "text": " @dev Returns the number of values in the set. O(1)."
            },
            "id": 7532,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "length",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7522,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7521,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 7532,
                  "src": "5629:22:36",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes32Set_$7467_storage_ptr",
                    "typeString": "struct EnumerableSet.Bytes32Set"
                  },
                  "typeName": {
                    "id": 7520,
                    "name": "Bytes32Set",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7467,
                    "src": "5629:10:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes32Set_$7467_storage_ptr",
                      "typeString": "struct EnumerableSet.Bytes32Set"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5628:24:36"
            },
            "returnParameters": {
              "id": 7525,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7524,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7532,
                  "src": "5676:7:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7523,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5676:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5675:9:36"
            },
            "scope": 7756,
            "src": "5613:115:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7548,
              "nodeType": "Block",
              "src": "6143:46:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 7543,
                          "name": "set",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7535,
                          "src": "6164:3:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bytes32Set_$7467_storage_ptr",
                            "typeString": "struct EnumerableSet.Bytes32Set storage pointer"
                          }
                        },
                        "id": 7544,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7466,
                        "src": "6164:10:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$7287_storage",
                          "typeString": "struct EnumerableSet.Set storage ref"
                        }
                      },
                      {
                        "id": 7545,
                        "name": "index",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7537,
                        "src": "6176:5:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Set_$7287_storage",
                          "typeString": "struct EnumerableSet.Set storage ref"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 7542,
                      "name": "_at",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7464,
                      "src": "6160:3:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$7287_storage_ptr_$_t_uint256_$returns$_t_bytes32_$",
                        "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"
                      }
                    },
                    "id": 7546,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6160:22:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 7541,
                  "id": 7547,
                  "nodeType": "Return",
                  "src": "6153:29:36"
                }
              ]
            },
            "documentation": {
              "id": 7533,
              "nodeType": "StructuredDocumentation",
              "src": "5733:322:36",
              "text": " @dev Returns the value 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": 7549,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "at",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7538,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7535,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 7549,
                  "src": "6072:22:36",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bytes32Set_$7467_storage_ptr",
                    "typeString": "struct EnumerableSet.Bytes32Set"
                  },
                  "typeName": {
                    "id": 7534,
                    "name": "Bytes32Set",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7467,
                    "src": "6072:10:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bytes32Set_$7467_storage_ptr",
                      "typeString": "struct EnumerableSet.Bytes32Set"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7537,
                  "mutability": "mutable",
                  "name": "index",
                  "nodeType": "VariableDeclaration",
                  "scope": 7549,
                  "src": "6096:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7536,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6096:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6071:39:36"
            },
            "returnParameters": {
              "id": 7541,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7540,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7549,
                  "src": "6134:7:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 7539,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6134:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6133:9:36"
            },
            "scope": 7756,
            "src": "6060:129:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "canonicalName": "EnumerableSet.AddressSet",
            "id": 7552,
            "members": [
              {
                "constant": false,
                "id": 7551,
                "mutability": "mutable",
                "name": "_inner",
                "nodeType": "VariableDeclaration",
                "scope": 7552,
                "src": "6242:10:36",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                  "typeString": "struct EnumerableSet.Set"
                },
                "typeName": {
                  "id": 7550,
                  "name": "Set",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 7287,
                  "src": "6242:3:36",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                    "typeString": "struct EnumerableSet.Set"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "AddressSet",
            "nodeType": "StructDefinition",
            "scope": 7756,
            "src": "6214:45:36",
            "visibility": "public"
          },
          {
            "body": {
              "id": 7574,
              "nodeType": "Block",
              "src": "6505:65:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 7563,
                          "name": "set",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7555,
                          "src": "6527:3:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_AddressSet_$7552_storage_ptr",
                            "typeString": "struct EnumerableSet.AddressSet storage pointer"
                          }
                        },
                        "id": 7564,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7551,
                        "src": "6527:10:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$7287_storage",
                          "typeString": "struct EnumerableSet.Set storage ref"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "id": 7569,
                                "name": "value",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7557,
                                "src": "6555:5:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "id": 7568,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "6547:7:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 7567,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "6547:7:36",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 7570,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6547:14:36",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 7566,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "6539:7:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 7565,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "6539:7:36",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 7571,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6539:23:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Set_$7287_storage",
                          "typeString": "struct EnumerableSet.Set storage ref"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 7562,
                      "name": "_add",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7328,
                      "src": "6522:4:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$7287_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 7572,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6522:41:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 7561,
                  "id": 7573,
                  "nodeType": "Return",
                  "src": "6515:48:36"
                }
              ]
            },
            "documentation": {
              "id": 7553,
              "nodeType": "StructuredDocumentation",
              "src": "6265:159:36",
              "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."
            },
            "id": 7575,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "add",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7558,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7555,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 7575,
                  "src": "6442:22:36",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_AddressSet_$7552_storage_ptr",
                    "typeString": "struct EnumerableSet.AddressSet"
                  },
                  "typeName": {
                    "id": 7554,
                    "name": "AddressSet",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7552,
                    "src": "6442:10:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_AddressSet_$7552_storage_ptr",
                      "typeString": "struct EnumerableSet.AddressSet"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7557,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 7575,
                  "src": "6466:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7556,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6466:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6441:39:36"
            },
            "returnParameters": {
              "id": 7561,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7560,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7575,
                  "src": "6499:4:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 7559,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6499:4:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6498:6:36"
            },
            "scope": 7756,
            "src": "6429:141:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7597,
              "nodeType": "Block",
              "src": "6817:68:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 7586,
                          "name": "set",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7578,
                          "src": "6842:3:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_AddressSet_$7552_storage_ptr",
                            "typeString": "struct EnumerableSet.AddressSet storage pointer"
                          }
                        },
                        "id": 7587,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7551,
                        "src": "6842:10:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$7287_storage",
                          "typeString": "struct EnumerableSet.Set storage ref"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "id": 7592,
                                "name": "value",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7580,
                                "src": "6870:5:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "id": 7591,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "6862:7:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 7590,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "6862:7:36",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 7593,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6862:14:36",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 7589,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "6854:7:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 7588,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "6854:7:36",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 7594,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "6854:23:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Set_$7287_storage",
                          "typeString": "struct EnumerableSet.Set storage ref"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 7585,
                      "name": "_remove",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7408,
                      "src": "6834:7:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$7287_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 7595,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6834:44:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 7584,
                  "id": 7596,
                  "nodeType": "Return",
                  "src": "6827:51:36"
                }
              ]
            },
            "documentation": {
              "id": 7576,
              "nodeType": "StructuredDocumentation",
              "src": "6576:157:36",
              "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."
            },
            "id": 7598,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "remove",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7581,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7578,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 7598,
                  "src": "6754:22:36",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_AddressSet_$7552_storage_ptr",
                    "typeString": "struct EnumerableSet.AddressSet"
                  },
                  "typeName": {
                    "id": 7577,
                    "name": "AddressSet",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7552,
                    "src": "6754:10:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_AddressSet_$7552_storage_ptr",
                      "typeString": "struct EnumerableSet.AddressSet"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7580,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 7598,
                  "src": "6778:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7579,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6778:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6753:39:36"
            },
            "returnParameters": {
              "id": 7584,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7583,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7598,
                  "src": "6811:4:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 7582,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6811:4:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6810:6:36"
            },
            "scope": 7756,
            "src": "6738:147:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7620,
              "nodeType": "Block",
              "src": "7052:70:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 7609,
                          "name": "set",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7601,
                          "src": "7079:3:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_AddressSet_$7552_storage_ptr",
                            "typeString": "struct EnumerableSet.AddressSet storage pointer"
                          }
                        },
                        "id": 7610,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7551,
                        "src": "7079:10:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$7287_storage",
                          "typeString": "struct EnumerableSet.Set storage ref"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "id": 7615,
                                "name": "value",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7603,
                                "src": "7107:5:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "id": 7614,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7099:7:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 7613,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "7099:7:36",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 7616,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7099:14:36",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 7612,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7091:7:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 7611,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "7091:7:36",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 7617,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7091:23:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Set_$7287_storage",
                          "typeString": "struct EnumerableSet.Set storage ref"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 7608,
                      "name": "_contains",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7426,
                      "src": "7069:9:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$7287_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"
                      }
                    },
                    "id": 7618,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7069:46:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 7607,
                  "id": 7619,
                  "nodeType": "Return",
                  "src": "7062:53:36"
                }
              ]
            },
            "documentation": {
              "id": 7599,
              "nodeType": "StructuredDocumentation",
              "src": "6891:70:36",
              "text": " @dev Returns true if the value is in the set. O(1)."
            },
            "id": 7621,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "contains",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7604,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7601,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 7621,
                  "src": "6984:22:36",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_AddressSet_$7552_storage_ptr",
                    "typeString": "struct EnumerableSet.AddressSet"
                  },
                  "typeName": {
                    "id": 7600,
                    "name": "AddressSet",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7552,
                    "src": "6984:10:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_AddressSet_$7552_storage_ptr",
                      "typeString": "struct EnumerableSet.AddressSet"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7603,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 7621,
                  "src": "7008:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7602,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7008:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6983:39:36"
            },
            "returnParameters": {
              "id": 7607,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7606,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7621,
                  "src": "7046:4:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 7605,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "7046:4:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7045:6:36"
            },
            "scope": 7756,
            "src": "6966:156:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7634,
              "nodeType": "Block",
              "src": "7275:43:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 7630,
                          "name": "set",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7624,
                          "src": "7300:3:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_AddressSet_$7552_storage_ptr",
                            "typeString": "struct EnumerableSet.AddressSet storage pointer"
                          }
                        },
                        "id": 7631,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7551,
                        "src": "7300:10:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$7287_storage",
                          "typeString": "struct EnumerableSet.Set storage ref"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Set_$7287_storage",
                          "typeString": "struct EnumerableSet.Set storage ref"
                        }
                      ],
                      "id": 7629,
                      "name": "_length",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7439,
                      "src": "7292:7:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$7287_storage_ptr_$returns$_t_uint256_$",
                        "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)"
                      }
                    },
                    "id": 7632,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7292:19:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 7628,
                  "id": 7633,
                  "nodeType": "Return",
                  "src": "7285:26:36"
                }
              ]
            },
            "documentation": {
              "id": 7622,
              "nodeType": "StructuredDocumentation",
              "src": "7128:70:36",
              "text": " @dev Returns the number of values in the set. O(1)."
            },
            "id": 7635,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "length",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7625,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7624,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 7635,
                  "src": "7219:22:36",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_AddressSet_$7552_storage_ptr",
                    "typeString": "struct EnumerableSet.AddressSet"
                  },
                  "typeName": {
                    "id": 7623,
                    "name": "AddressSet",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7552,
                    "src": "7219:10:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_AddressSet_$7552_storage_ptr",
                      "typeString": "struct EnumerableSet.AddressSet"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7218:24:36"
            },
            "returnParameters": {
              "id": 7628,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7627,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7635,
                  "src": "7266:7:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7626,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7266:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7265:9:36"
            },
            "scope": 7756,
            "src": "7203:115:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7657,
              "nodeType": "Block",
              "src": "7733:64:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "expression": {
                                  "id": 7650,
                                  "name": "set",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7638,
                                  "src": "7770:3:36",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_AddressSet_$7552_storage_ptr",
                                    "typeString": "struct EnumerableSet.AddressSet storage pointer"
                                  }
                                },
                                "id": 7651,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "_inner",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7551,
                                "src": "7770:10:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Set_$7287_storage",
                                  "typeString": "struct EnumerableSet.Set storage ref"
                                }
                              },
                              {
                                "id": 7652,
                                "name": "index",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7640,
                                "src": "7782:5:36",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_struct$_Set_$7287_storage",
                                  "typeString": "struct EnumerableSet.Set storage ref"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 7649,
                              "name": "_at",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7464,
                              "src": "7766:3:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$7287_storage_ptr_$_t_uint256_$returns$_t_bytes32_$",
                                "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"
                              }
                            },
                            "id": 7653,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7766:22:36",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 7648,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7758:7:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 7647,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7758:7:36",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 7654,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7758:31:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 7646,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "7750:7:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": {
                        "id": 7645,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "7750:7:36",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 7655,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7750:40:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "functionReturnParameters": 7644,
                  "id": 7656,
                  "nodeType": "Return",
                  "src": "7743:47:36"
                }
              ]
            },
            "documentation": {
              "id": 7636,
              "nodeType": "StructuredDocumentation",
              "src": "7323:322:36",
              "text": " @dev Returns the value 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": 7658,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "at",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7641,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7638,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 7658,
                  "src": "7662:22:36",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_AddressSet_$7552_storage_ptr",
                    "typeString": "struct EnumerableSet.AddressSet"
                  },
                  "typeName": {
                    "id": 7637,
                    "name": "AddressSet",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7552,
                    "src": "7662:10:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_AddressSet_$7552_storage_ptr",
                      "typeString": "struct EnumerableSet.AddressSet"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7640,
                  "mutability": "mutable",
                  "name": "index",
                  "nodeType": "VariableDeclaration",
                  "scope": 7658,
                  "src": "7686:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7639,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7686:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7661:39:36"
            },
            "returnParameters": {
              "id": 7644,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7643,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7658,
                  "src": "7724:7:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 7642,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7724:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7723:9:36"
            },
            "scope": 7756,
            "src": "7650:147:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "canonicalName": "EnumerableSet.UintSet",
            "id": 7661,
            "members": [
              {
                "constant": false,
                "id": 7660,
                "mutability": "mutable",
                "name": "_inner",
                "nodeType": "VariableDeclaration",
                "scope": 7661,
                "src": "7845:10:36",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                  "typeString": "struct EnumerableSet.Set"
                },
                "typeName": {
                  "id": 7659,
                  "name": "Set",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 7287,
                  "src": "7845:3:36",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Set_$7287_storage_ptr",
                    "typeString": "struct EnumerableSet.Set"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "UintSet",
            "nodeType": "StructDefinition",
            "scope": 7756,
            "src": "7820:42:36",
            "visibility": "public"
          },
          {
            "body": {
              "id": 7680,
              "nodeType": "Block",
              "src": "8105:56:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 7672,
                          "name": "set",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7664,
                          "src": "8127:3:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_UintSet_$7661_storage_ptr",
                            "typeString": "struct EnumerableSet.UintSet storage pointer"
                          }
                        },
                        "id": 7673,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7660,
                        "src": "8127:10:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$7287_storage",
                          "typeString": "struct EnumerableSet.Set storage ref"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 7676,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7666,
                            "src": "8147:5:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 7675,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "8139:7:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 7674,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "8139:7:36",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 7677,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8139:14:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Set_$7287_storage",
                          "typeString": "struct EnumerableSet.Set storage ref"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 7671,
                      "name": "_add",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7328,
                      "src": "8122:4:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$7287_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 7678,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8122:32:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 7670,
                  "id": 7679,
                  "nodeType": "Return",
                  "src": "8115:39:36"
                }
              ]
            },
            "documentation": {
              "id": 7662,
              "nodeType": "StructuredDocumentation",
              "src": "7868:159:36",
              "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."
            },
            "id": 7681,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "add",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7667,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7664,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 7681,
                  "src": "8045:19:36",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UintSet_$7661_storage_ptr",
                    "typeString": "struct EnumerableSet.UintSet"
                  },
                  "typeName": {
                    "id": 7663,
                    "name": "UintSet",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7661,
                    "src": "8045:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UintSet_$7661_storage_ptr",
                      "typeString": "struct EnumerableSet.UintSet"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7666,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 7681,
                  "src": "8066:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7665,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8066:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8044:36:36"
            },
            "returnParameters": {
              "id": 7670,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7669,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7681,
                  "src": "8099:4:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 7668,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8099:4:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8098:6:36"
            },
            "scope": 7756,
            "src": "8032:129:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7700,
              "nodeType": "Block",
              "src": "8405:59:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 7692,
                          "name": "set",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7684,
                          "src": "8430:3:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_UintSet_$7661_storage_ptr",
                            "typeString": "struct EnumerableSet.UintSet storage pointer"
                          }
                        },
                        "id": 7693,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7660,
                        "src": "8430:10:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$7287_storage",
                          "typeString": "struct EnumerableSet.Set storage ref"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 7696,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7686,
                            "src": "8450:5:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 7695,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "8442:7:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 7694,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "8442:7:36",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 7697,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8442:14:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Set_$7287_storage",
                          "typeString": "struct EnumerableSet.Set storage ref"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 7691,
                      "name": "_remove",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7408,
                      "src": "8422:7:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$7287_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"
                      }
                    },
                    "id": 7698,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8422:35:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 7690,
                  "id": 7699,
                  "nodeType": "Return",
                  "src": "8415:42:36"
                }
              ]
            },
            "documentation": {
              "id": 7682,
              "nodeType": "StructuredDocumentation",
              "src": "8167:157:36",
              "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."
            },
            "id": 7701,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "remove",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7687,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7684,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 7701,
                  "src": "8345:19:36",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UintSet_$7661_storage_ptr",
                    "typeString": "struct EnumerableSet.UintSet"
                  },
                  "typeName": {
                    "id": 7683,
                    "name": "UintSet",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7661,
                    "src": "8345:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UintSet_$7661_storage_ptr",
                      "typeString": "struct EnumerableSet.UintSet"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7686,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 7701,
                  "src": "8366:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7685,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8366:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8344:36:36"
            },
            "returnParameters": {
              "id": 7690,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7689,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7701,
                  "src": "8399:4:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 7688,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8399:4:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8398:6:36"
            },
            "scope": 7756,
            "src": "8329:135:36",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7720,
              "nodeType": "Block",
              "src": "8628:61:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 7712,
                          "name": "set",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7704,
                          "src": "8655:3:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_UintSet_$7661_storage_ptr",
                            "typeString": "struct EnumerableSet.UintSet storage pointer"
                          }
                        },
                        "id": 7713,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7660,
                        "src": "8655:10:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$7287_storage",
                          "typeString": "struct EnumerableSet.Set storage ref"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 7716,
                            "name": "value",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7706,
                            "src": "8675:5:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 7715,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "8667:7:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_bytes32_$",
                            "typeString": "type(bytes32)"
                          },
                          "typeName": {
                            "id": 7714,
                            "name": "bytes32",
                            "nodeType": "ElementaryTypeName",
                            "src": "8667:7:36",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 7717,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "8667:14:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Set_$7287_storage",
                          "typeString": "struct EnumerableSet.Set storage ref"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 7711,
                      "name": "_contains",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7426,
                      "src": "8645:9:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$7287_storage_ptr_$_t_bytes32_$returns$_t_bool_$",
                        "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"
                      }
                    },
                    "id": 7718,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8645:37:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 7710,
                  "id": 7719,
                  "nodeType": "Return",
                  "src": "8638:44:36"
                }
              ]
            },
            "documentation": {
              "id": 7702,
              "nodeType": "StructuredDocumentation",
              "src": "8470:70:36",
              "text": " @dev Returns true if the value is in the set. O(1)."
            },
            "id": 7721,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "contains",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7707,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7704,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 7721,
                  "src": "8563:19:36",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UintSet_$7661_storage_ptr",
                    "typeString": "struct EnumerableSet.UintSet"
                  },
                  "typeName": {
                    "id": 7703,
                    "name": "UintSet",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7661,
                    "src": "8563:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UintSet_$7661_storage_ptr",
                      "typeString": "struct EnumerableSet.UintSet"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7706,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 7721,
                  "src": "8584:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7705,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8584:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8562:36:36"
            },
            "returnParameters": {
              "id": 7710,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7709,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7721,
                  "src": "8622:4:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 7708,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8622:4:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8621:6:36"
            },
            "scope": 7756,
            "src": "8545:144:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7734,
              "nodeType": "Block",
              "src": "8839:43:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 7730,
                          "name": "set",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7724,
                          "src": "8864:3:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_UintSet_$7661_storage_ptr",
                            "typeString": "struct EnumerableSet.UintSet storage pointer"
                          }
                        },
                        "id": 7731,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "_inner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7660,
                        "src": "8864:10:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Set_$7287_storage",
                          "typeString": "struct EnumerableSet.Set storage ref"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_Set_$7287_storage",
                          "typeString": "struct EnumerableSet.Set storage ref"
                        }
                      ],
                      "id": 7729,
                      "name": "_length",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7439,
                      "src": "8856:7:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$7287_storage_ptr_$returns$_t_uint256_$",
                        "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)"
                      }
                    },
                    "id": 7732,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8856:19:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 7728,
                  "id": 7733,
                  "nodeType": "Return",
                  "src": "8849:26:36"
                }
              ]
            },
            "documentation": {
              "id": 7722,
              "nodeType": "StructuredDocumentation",
              "src": "8695:70:36",
              "text": " @dev Returns the number of values on the set. O(1)."
            },
            "id": 7735,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "length",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7725,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7724,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 7735,
                  "src": "8786:19:36",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UintSet_$7661_storage_ptr",
                    "typeString": "struct EnumerableSet.UintSet"
                  },
                  "typeName": {
                    "id": 7723,
                    "name": "UintSet",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7661,
                    "src": "8786:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UintSet_$7661_storage_ptr",
                      "typeString": "struct EnumerableSet.UintSet"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8785:21:36"
            },
            "returnParameters": {
              "id": 7728,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7727,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7735,
                  "src": "8830:7:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7726,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8830:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8829:9:36"
            },
            "scope": 7756,
            "src": "8770:112:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7754,
              "nodeType": "Block",
              "src": "9294:55:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "expression": {
                              "id": 7748,
                              "name": "set",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7738,
                              "src": "9323:3:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_UintSet_$7661_storage_ptr",
                                "typeString": "struct EnumerableSet.UintSet storage pointer"
                              }
                            },
                            "id": 7749,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "_inner",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7660,
                            "src": "9323:10:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Set_$7287_storage",
                              "typeString": "struct EnumerableSet.Set storage ref"
                            }
                          },
                          {
                            "id": 7750,
                            "name": "index",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7740,
                            "src": "9335:5:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_struct$_Set_$7287_storage",
                              "typeString": "struct EnumerableSet.Set storage ref"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 7747,
                          "name": "_at",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7464,
                          "src": "9319:3:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$7287_storage_ptr_$_t_uint256_$returns$_t_bytes32_$",
                            "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"
                          }
                        },
                        "id": 7751,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "9319:22:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 7746,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "9311:7:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint256_$",
                        "typeString": "type(uint256)"
                      },
                      "typeName": {
                        "id": 7745,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "9311:7:36",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 7752,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9311:31:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 7744,
                  "id": 7753,
                  "nodeType": "Return",
                  "src": "9304:38:36"
                }
              ]
            },
            "documentation": {
              "id": 7736,
              "nodeType": "StructuredDocumentation",
              "src": "8887:322:36",
              "text": " @dev Returns the value 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": 7755,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "at",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7741,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7738,
                  "mutability": "mutable",
                  "name": "set",
                  "nodeType": "VariableDeclaration",
                  "scope": 7755,
                  "src": "9226:19:36",
                  "stateVariable": false,
                  "storageLocation": "storage",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_UintSet_$7661_storage_ptr",
                    "typeString": "struct EnumerableSet.UintSet"
                  },
                  "typeName": {
                    "id": 7737,
                    "name": "UintSet",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7661,
                    "src": "9226:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_UintSet_$7661_storage_ptr",
                      "typeString": "struct EnumerableSet.UintSet"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7740,
                  "mutability": "mutable",
                  "name": "index",
                  "nodeType": "VariableDeclaration",
                  "scope": 7755,
                  "src": "9247:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7739,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9247:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9225:36:36"
            },
            "returnParameters": {
              "id": 7744,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7743,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7755,
                  "src": "9285:7:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7742,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9285:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9284:9:36"
            },
            "scope": 7756,
            "src": "9214:135:36",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "scope": 7757,
        "src": "753:8598:36"
      }
    ],
    "src": "33:9319:36"
  },
  "legacyAST": {
    "attributes": {
      "absolutePath": "@openzeppelin/contracts/utils/EnumerableSet.sol",
      "exportedSymbols": {
        "EnumerableSet": [
          7756
        ]
      },
      "license": "MIT"
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            ">=",
            "0.6",
            ".0",
            "<",
            "0.8",
            ".0"
          ]
        },
        "id": 7278,
        "name": "PragmaDirective",
        "src": "33:31:36"
      },
      {
        "attributes": {
          "abstract": false,
          "baseContracts": [
            null
          ],
          "contractDependencies": [
            null
          ],
          "contractKind": "library",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            7756
          ],
          "name": "EnumerableSet",
          "scope": 7757
        },
        "children": [
          {
            "attributes": {
              "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n     // Add the library methods\n     using EnumerableSet for EnumerableSet.AddressSet;\n     // Declare a set state variable\n     EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported."
            },
            "id": 7279,
            "name": "StructuredDocumentation",
            "src": "66:686:36"
          },
          {
            "attributes": {
              "canonicalName": "EnumerableSet.Set",
              "name": "Set",
              "scope": 7756,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "_values",
                  "scope": 7287,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bytes32[]",
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "type": "bytes32[]"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7280,
                        "name": "ElementaryTypeName",
                        "src": "1275:7:36"
                      }
                    ],
                    "id": 7281,
                    "name": "ArrayTypeName",
                    "src": "1275:9:36"
                  }
                ],
                "id": 7282,
                "name": "VariableDeclaration",
                "src": "1275:17:36"
              },
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "_indexes",
                  "scope": 7287,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "mapping(bytes32 => uint256)",
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "type": "mapping(bytes32 => uint256)"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7283,
                        "name": "ElementaryTypeName",
                        "src": "1435:7:36"
                      },
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 7284,
                        "name": "ElementaryTypeName",
                        "src": "1446:7:36"
                      }
                    ],
                    "id": 7285,
                    "name": "Mapping",
                    "src": "1426:28:36"
                  }
                ],
                "id": 7286,
                "name": "VariableDeclaration",
                "src": "1426:37:36"
              }
            ],
            "id": 7287,
            "name": "StructDefinition",
            "src": "1221:249:36"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "_add",
              "scope": 7756,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "private"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."
                },
                "id": 7288,
                "name": "StructuredDocumentation",
                "src": "1476:159:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "set",
                      "scope": 7328,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableSet.Set",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "Set",
                          "referencedDeclaration": 7287,
                          "type": "struct EnumerableSet.Set"
                        },
                        "id": 7289,
                        "name": "UserDefinedTypeName",
                        "src": "1654:3:36"
                      }
                    ],
                    "id": 7290,
                    "name": "VariableDeclaration",
                    "src": "1654:15:36"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "value",
                      "scope": 7328,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7291,
                        "name": "ElementaryTypeName",
                        "src": "1671:7:36"
                      }
                    ],
                    "id": 7292,
                    "name": "VariableDeclaration",
                    "src": "1671:13:36"
                  }
                ],
                "id": 7293,
                "name": "ParameterList",
                "src": "1653:32:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7328,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 7294,
                        "name": "ElementaryTypeName",
                        "src": "1703:4:36"
                      }
                    ],
                    "id": 7295,
                    "name": "VariableDeclaration",
                    "src": "1703:4:36"
                  }
                ],
                "id": 7296,
                "name": "ParameterList",
                "src": "1702:6:36"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!",
                          "prefix": true,
                          "type": "bool"
                        },
                        "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$_Set_$7287_storage_ptr",
                                      "typeString": "struct EnumerableSet.Set storage pointer"
                                    },
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7426,
                                  "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)",
                                  "value": "_contains"
                                },
                                "id": 7297,
                                "name": "Identifier",
                                "src": "1724:9:36"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7290,
                                  "type": "struct EnumerableSet.Set storage pointer",
                                  "value": "set"
                                },
                                "id": 7298,
                                "name": "Identifier",
                                "src": "1734:3:36"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7292,
                                  "type": "bytes32",
                                  "value": "value"
                                },
                                "id": 7299,
                                "name": "Identifier",
                                "src": "1739:5:36"
                              }
                            ],
                            "id": 7300,
                            "name": "FunctionCall",
                            "src": "1724:21:36"
                          }
                        ],
                        "id": 7301,
                        "name": "UnaryOperation",
                        "src": "1723:22:36"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "tuple()",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "push",
                                      "type": "function (bytes32)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "_values",
                                          "referencedDeclaration": 7282,
                                          "type": "bytes32[] storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7290,
                                              "type": "struct EnumerableSet.Set storage pointer",
                                              "value": "set"
                                            },
                                            "id": 7302,
                                            "name": "Identifier",
                                            "src": "1761:3:36"
                                          }
                                        ],
                                        "id": 7305,
                                        "name": "MemberAccess",
                                        "src": "1761:11:36"
                                      }
                                    ],
                                    "id": 7306,
                                    "name": "MemberAccess",
                                    "src": "1761:16:36"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7292,
                                      "type": "bytes32",
                                      "value": "value"
                                    },
                                    "id": 7307,
                                    "name": "Identifier",
                                    "src": "1778:5:36"
                                  }
                                ],
                                "id": 7308,
                                "name": "FunctionCall",
                                "src": "1761:23:36"
                              }
                            ],
                            "id": 7309,
                            "name": "ExpressionStatement",
                            "src": "1761:23:36"
                          },
                          {
                            "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": 7286,
                                          "type": "mapping(bytes32 => uint256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7290,
                                              "type": "struct EnumerableSet.Set storage pointer",
                                              "value": "set"
                                            },
                                            "id": 7310,
                                            "name": "Identifier",
                                            "src": "1919:3:36"
                                          }
                                        ],
                                        "id": 7313,
                                        "name": "MemberAccess",
                                        "src": "1919:12:36"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7292,
                                          "type": "bytes32",
                                          "value": "value"
                                        },
                                        "id": 7312,
                                        "name": "Identifier",
                                        "src": "1932:5:36"
                                      }
                                    ],
                                    "id": 7314,
                                    "name": "IndexAccess",
                                    "src": "1919:19:36"
                                  },
                                  {
                                    "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": "_values",
                                          "referencedDeclaration": 7282,
                                          "type": "bytes32[] storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7290,
                                              "type": "struct EnumerableSet.Set storage pointer",
                                              "value": "set"
                                            },
                                            "id": 7315,
                                            "name": "Identifier",
                                            "src": "1941:3:36"
                                          }
                                        ],
                                        "id": 7316,
                                        "name": "MemberAccess",
                                        "src": "1941:11:36"
                                      }
                                    ],
                                    "id": 7317,
                                    "name": "MemberAccess",
                                    "src": "1941:18:36"
                                  }
                                ],
                                "id": 7318,
                                "name": "Assignment",
                                "src": "1919:40:36"
                              }
                            ],
                            "id": 7319,
                            "name": "ExpressionStatement",
                            "src": "1919:40:36"
                          },
                          {
                            "attributes": {
                              "functionReturnParameters": 7296
                            },
                            "children": [
                              {
                                "attributes": {
                                  "hexvalue": "74727565",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "bool",
                                  "type": "bool",
                                  "value": "true"
                                },
                                "id": 7320,
                                "name": "Literal",
                                "src": "1980:4:36"
                              }
                            ],
                            "id": 7321,
                            "name": "Return",
                            "src": "1973:11:36"
                          }
                        ],
                        "id": 7322,
                        "name": "Block",
                        "src": "1747:248:36"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "functionReturnParameters": 7296
                            },
                            "children": [
                              {
                                "attributes": {
                                  "hexvalue": "66616c7365",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "bool",
                                  "type": "bool",
                                  "value": "false"
                                },
                                "id": 7323,
                                "name": "Literal",
                                "src": "2022:5:36"
                              }
                            ],
                            "id": 7324,
                            "name": "Return",
                            "src": "2015:12:36"
                          }
                        ],
                        "id": 7325,
                        "name": "Block",
                        "src": "2001:37:36"
                      }
                    ],
                    "id": 7326,
                    "name": "IfStatement",
                    "src": "1719:319:36"
                  }
                ],
                "id": 7327,
                "name": "Block",
                "src": "1709:335:36"
              }
            ],
            "id": 7328,
            "name": "FunctionDefinition",
            "src": "1640:404:36"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "_remove",
              "scope": 7756,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "private"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."
                },
                "id": 7329,
                "name": "StructuredDocumentation",
                "src": "2050:157:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "set",
                      "scope": 7408,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableSet.Set",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "Set",
                          "referencedDeclaration": 7287,
                          "type": "struct EnumerableSet.Set"
                        },
                        "id": 7330,
                        "name": "UserDefinedTypeName",
                        "src": "2229:3:36"
                      }
                    ],
                    "id": 7331,
                    "name": "VariableDeclaration",
                    "src": "2229:15:36"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "value",
                      "scope": 7408,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7332,
                        "name": "ElementaryTypeName",
                        "src": "2246:7:36"
                      }
                    ],
                    "id": 7333,
                    "name": "VariableDeclaration",
                    "src": "2246:13:36"
                  }
                ],
                "id": 7334,
                "name": "ParameterList",
                "src": "2228:32:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7408,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 7335,
                        "name": "ElementaryTypeName",
                        "src": "2278:4:36"
                      }
                    ],
                    "id": 7336,
                    "name": "VariableDeclaration",
                    "src": "2278:4:36"
                  }
                ],
                "id": 7337,
                "name": "ParameterList",
                "src": "2277:6:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        7339
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "valueIndex",
                          "scope": 7407,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 7338,
                            "name": "ElementaryTypeName",
                            "src": "2394:7:36"
                          }
                        ],
                        "id": 7339,
                        "name": "VariableDeclaration",
                        "src": "2394:18:36"
                      },
                      {
                        "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": 7286,
                              "type": "mapping(bytes32 => uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7331,
                                  "type": "struct EnumerableSet.Set storage pointer",
                                  "value": "set"
                                },
                                "id": 7340,
                                "name": "Identifier",
                                "src": "2415:3:36"
                              }
                            ],
                            "id": 7341,
                            "name": "MemberAccess",
                            "src": "2415:12:36"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7333,
                              "type": "bytes32",
                              "value": "value"
                            },
                            "id": 7342,
                            "name": "Identifier",
                            "src": "2428:5:36"
                          }
                        ],
                        "id": 7343,
                        "name": "IndexAccess",
                        "src": "2415:19:36"
                      }
                    ],
                    "id": 7344,
                    "name": "VariableDeclarationStatement",
                    "src": "2394:40:36"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7339,
                              "type": "uint256",
                              "value": "valueIndex"
                            },
                            "id": 7345,
                            "name": "Identifier",
                            "src": "2449:10:36"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 7346,
                            "name": "Literal",
                            "src": "2463:1:36"
                          }
                        ],
                        "id": 7347,
                        "name": "BinaryOperation",
                        "src": "2449:15:36"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "assignments": [
                                7349
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "toDeleteIndex",
                                  "scope": 7402,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint256",
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint256",
                                      "type": "uint256"
                                    },
                                    "id": 7348,
                                    "name": "ElementaryTypeName",
                                    "src": "2806:7:36"
                                  }
                                ],
                                "id": 7349,
                                "name": "VariableDeclaration",
                                "src": "2806:21:36"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "-",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7339,
                                      "type": "uint256",
                                      "value": "valueIndex"
                                    },
                                    "id": 7350,
                                    "name": "Identifier",
                                    "src": "2830:10:36"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "31",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 1",
                                      "value": "1"
                                    },
                                    "id": 7351,
                                    "name": "Literal",
                                    "src": "2843:1:36"
                                  }
                                ],
                                "id": 7352,
                                "name": "BinaryOperation",
                                "src": "2830:14:36"
                              }
                            ],
                            "id": 7353,
                            "name": "VariableDeclarationStatement",
                            "src": "2806:38:36"
                          },
                          {
                            "attributes": {
                              "assignments": [
                                7355
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "lastIndex",
                                  "scope": 7402,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint256",
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint256",
                                      "type": "uint256"
                                    },
                                    "id": 7354,
                                    "name": "ElementaryTypeName",
                                    "src": "2858:7:36"
                                  }
                                ],
                                "id": 7355,
                                "name": "VariableDeclaration",
                                "src": "2858:17:36"
                              },
                              {
                                "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": "_values",
                                          "referencedDeclaration": 7282,
                                          "type": "bytes32[] storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7331,
                                              "type": "struct EnumerableSet.Set storage pointer",
                                              "value": "set"
                                            },
                                            "id": 7356,
                                            "name": "Identifier",
                                            "src": "2878:3:36"
                                          }
                                        ],
                                        "id": 7357,
                                        "name": "MemberAccess",
                                        "src": "2878:11:36"
                                      }
                                    ],
                                    "id": 7358,
                                    "name": "MemberAccess",
                                    "src": "2878:18:36"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "31",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 1",
                                      "value": "1"
                                    },
                                    "id": 7359,
                                    "name": "Literal",
                                    "src": "2899:1:36"
                                  }
                                ],
                                "id": 7360,
                                "name": "BinaryOperation",
                                "src": "2878:22:36"
                              }
                            ],
                            "id": 7361,
                            "name": "VariableDeclarationStatement",
                            "src": "2858:42:36"
                          },
                          {
                            "attributes": {
                              "assignments": [
                                7363
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "lastvalue",
                                  "scope": 7402,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "bytes32",
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "bytes32",
                                      "type": "bytes32"
                                    },
                                    "id": 7362,
                                    "name": "ElementaryTypeName",
                                    "src": "3140:7:36"
                                  }
                                ],
                                "id": 7363,
                                "name": "VariableDeclaration",
                                "src": "3140:17:36"
                              },
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "bytes32"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "_values",
                                      "referencedDeclaration": 7282,
                                      "type": "bytes32[] storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7331,
                                          "type": "struct EnumerableSet.Set storage pointer",
                                          "value": "set"
                                        },
                                        "id": 7364,
                                        "name": "Identifier",
                                        "src": "3160:3:36"
                                      }
                                    ],
                                    "id": 7365,
                                    "name": "MemberAccess",
                                    "src": "3160:11:36"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7355,
                                      "type": "uint256",
                                      "value": "lastIndex"
                                    },
                                    "id": 7366,
                                    "name": "Identifier",
                                    "src": "3172:9:36"
                                  }
                                ],
                                "id": 7367,
                                "name": "IndexAccess",
                                "src": "3160:22:36"
                              }
                            ],
                            "id": 7368,
                            "name": "VariableDeclarationStatement",
                            "src": "3140:42:36"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "bytes32"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "type": "bytes32"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": true,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "_values",
                                          "referencedDeclaration": 7282,
                                          "type": "bytes32[] storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7331,
                                              "type": "struct EnumerableSet.Set storage pointer",
                                              "value": "set"
                                            },
                                            "id": 7369,
                                            "name": "Identifier",
                                            "src": "3274:3:36"
                                          }
                                        ],
                                        "id": 7372,
                                        "name": "MemberAccess",
                                        "src": "3274:11:36"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7349,
                                          "type": "uint256",
                                          "value": "toDeleteIndex"
                                        },
                                        "id": 7371,
                                        "name": "Identifier",
                                        "src": "3286:13:36"
                                      }
                                    ],
                                    "id": 7373,
                                    "name": "IndexAccess",
                                    "src": "3274:26:36"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7363,
                                      "type": "bytes32",
                                      "value": "lastvalue"
                                    },
                                    "id": 7374,
                                    "name": "Identifier",
                                    "src": "3303:9:36"
                                  }
                                ],
                                "id": 7375,
                                "name": "Assignment",
                                "src": "3274:38:36"
                              }
                            ],
                            "id": 7376,
                            "name": "ExpressionStatement",
                            "src": "3274:38:36"
                          },
                          {
                            "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": 7286,
                                          "type": "mapping(bytes32 => uint256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7331,
                                              "type": "struct EnumerableSet.Set storage pointer",
                                              "value": "set"
                                            },
                                            "id": 7377,
                                            "name": "Identifier",
                                            "src": "3378:3:36"
                                          }
                                        ],
                                        "id": 7380,
                                        "name": "MemberAccess",
                                        "src": "3378:12:36"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7363,
                                          "type": "bytes32",
                                          "value": "lastvalue"
                                        },
                                        "id": 7379,
                                        "name": "Identifier",
                                        "src": "3391:9:36"
                                      }
                                    ],
                                    "id": 7381,
                                    "name": "IndexAccess",
                                    "src": "3378:23:36"
                                  },
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "+",
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7349,
                                          "type": "uint256",
                                          "value": "toDeleteIndex"
                                        },
                                        "id": 7382,
                                        "name": "Identifier",
                                        "src": "3404:13:36"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 7383,
                                        "name": "Literal",
                                        "src": "3420:1:36"
                                      }
                                    ],
                                    "id": 7384,
                                    "name": "BinaryOperation",
                                    "src": "3404:17:36"
                                  }
                                ],
                                "id": 7385,
                                "name": "Assignment",
                                "src": "3378:43:36"
                              }
                            ],
                            "id": 7386,
                            "name": "ExpressionStatement",
                            "src": "3378:43:36"
                          },
                          {
                            "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": "_values",
                                          "referencedDeclaration": 7282,
                                          "type": "bytes32[] storage ref"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7331,
                                              "type": "struct EnumerableSet.Set storage pointer",
                                              "value": "set"
                                            },
                                            "id": 7387,
                                            "name": "Identifier",
                                            "src": "3527:3:36"
                                          }
                                        ],
                                        "id": 7390,
                                        "name": "MemberAccess",
                                        "src": "3527:11:36"
                                      }
                                    ],
                                    "id": 7391,
                                    "name": "MemberAccess",
                                    "src": "3527:15:36"
                                  }
                                ],
                                "id": 7392,
                                "name": "FunctionCall",
                                "src": "3527:17:36"
                              }
                            ],
                            "id": 7393,
                            "name": "ExpressionStatement",
                            "src": "3527:17:36"
                          },
                          {
                            "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": 7286,
                                          "type": "mapping(bytes32 => uint256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7331,
                                              "type": "struct EnumerableSet.Set storage pointer",
                                              "value": "set"
                                            },
                                            "id": 7394,
                                            "name": "Identifier",
                                            "src": "3619:3:36"
                                          }
                                        ],
                                        "id": 7395,
                                        "name": "MemberAccess",
                                        "src": "3619:12:36"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7333,
                                          "type": "bytes32",
                                          "value": "value"
                                        },
                                        "id": 7396,
                                        "name": "Identifier",
                                        "src": "3632:5:36"
                                      }
                                    ],
                                    "id": 7397,
                                    "name": "IndexAccess",
                                    "src": "3619:19:36"
                                  }
                                ],
                                "id": 7398,
                                "name": "UnaryOperation",
                                "src": "3612:26:36"
                              }
                            ],
                            "id": 7399,
                            "name": "ExpressionStatement",
                            "src": "3612:26:36"
                          },
                          {
                            "attributes": {
                              "functionReturnParameters": 7337
                            },
                            "children": [
                              {
                                "attributes": {
                                  "hexvalue": "74727565",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "bool",
                                  "type": "bool",
                                  "value": "true"
                                },
                                "id": 7400,
                                "name": "Literal",
                                "src": "3660:4:36"
                              }
                            ],
                            "id": 7401,
                            "name": "Return",
                            "src": "3653:11:36"
                          }
                        ],
                        "id": 7402,
                        "name": "Block",
                        "src": "2466:1209:36"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "functionReturnParameters": 7337
                            },
                            "children": [
                              {
                                "attributes": {
                                  "hexvalue": "66616c7365",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "bool",
                                  "type": "bool",
                                  "value": "false"
                                },
                                "id": 7403,
                                "name": "Literal",
                                "src": "3702:5:36"
                              }
                            ],
                            "id": 7404,
                            "name": "Return",
                            "src": "3695:12:36"
                          }
                        ],
                        "id": 7405,
                        "name": "Block",
                        "src": "3681:37:36"
                      }
                    ],
                    "id": 7406,
                    "name": "IfStatement",
                    "src": "2445:1273:36"
                  }
                ],
                "id": 7407,
                "name": "Block",
                "src": "2284:1440:36"
              }
            ],
            "id": 7408,
            "name": "FunctionDefinition",
            "src": "2212:1512:36"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "_contains",
              "scope": 7756,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "private"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Returns true if the value is in the set. O(1)."
                },
                "id": 7409,
                "name": "StructuredDocumentation",
                "src": "3730:70:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "set",
                      "scope": 7426,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableSet.Set",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "Set",
                          "referencedDeclaration": 7287,
                          "type": "struct EnumerableSet.Set"
                        },
                        "id": 7410,
                        "name": "UserDefinedTypeName",
                        "src": "3824:3:36"
                      }
                    ],
                    "id": 7411,
                    "name": "VariableDeclaration",
                    "src": "3824:15:36"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "value",
                      "scope": 7426,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7412,
                        "name": "ElementaryTypeName",
                        "src": "3841:7:36"
                      }
                    ],
                    "id": 7413,
                    "name": "VariableDeclaration",
                    "src": "3841:13:36"
                  }
                ],
                "id": 7414,
                "name": "ParameterList",
                "src": "3823:32:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7426,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 7415,
                        "name": "ElementaryTypeName",
                        "src": "3878:4:36"
                      }
                    ],
                    "id": 7416,
                    "name": "VariableDeclaration",
                    "src": "3878:4:36"
                  }
                ],
                "id": 7417,
                "name": "ParameterList",
                "src": "3877:6:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 7417
                    },
                    "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": 7286,
                                  "type": "mapping(bytes32 => uint256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7411,
                                      "type": "struct EnumerableSet.Set storage pointer",
                                      "value": "set"
                                    },
                                    "id": 7418,
                                    "name": "Identifier",
                                    "src": "3901:3:36"
                                  }
                                ],
                                "id": 7419,
                                "name": "MemberAccess",
                                "src": "3901:12:36"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7413,
                                  "type": "bytes32",
                                  "value": "value"
                                },
                                "id": 7420,
                                "name": "Identifier",
                                "src": "3914:5:36"
                              }
                            ],
                            "id": 7421,
                            "name": "IndexAccess",
                            "src": "3901:19:36"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 7422,
                            "name": "Literal",
                            "src": "3924:1:36"
                          }
                        ],
                        "id": 7423,
                        "name": "BinaryOperation",
                        "src": "3901:24:36"
                      }
                    ],
                    "id": 7424,
                    "name": "Return",
                    "src": "3894:31:36"
                  }
                ],
                "id": 7425,
                "name": "Block",
                "src": "3884:48:36"
              }
            ],
            "id": 7426,
            "name": "FunctionDefinition",
            "src": "3805:127:36"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "_length",
              "scope": 7756,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "private"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Returns the number of values on the set. O(1)."
                },
                "id": 7427,
                "name": "StructuredDocumentation",
                "src": "3938:70:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "set",
                      "scope": 7439,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableSet.Set",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "Set",
                          "referencedDeclaration": 7287,
                          "type": "struct EnumerableSet.Set"
                        },
                        "id": 7428,
                        "name": "UserDefinedTypeName",
                        "src": "4030:3:36"
                      }
                    ],
                    "id": 7429,
                    "name": "VariableDeclaration",
                    "src": "4030:15:36"
                  }
                ],
                "id": 7430,
                "name": "ParameterList",
                "src": "4029:17:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7439,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 7431,
                        "name": "ElementaryTypeName",
                        "src": "4069:7:36"
                      }
                    ],
                    "id": 7432,
                    "name": "VariableDeclaration",
                    "src": "4069:7:36"
                  }
                ],
                "id": 7433,
                "name": "ParameterList",
                "src": "4068:9:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 7433
                    },
                    "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": "_values",
                              "referencedDeclaration": 7282,
                              "type": "bytes32[] storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7429,
                                  "type": "struct EnumerableSet.Set storage pointer",
                                  "value": "set"
                                },
                                "id": 7434,
                                "name": "Identifier",
                                "src": "4095:3:36"
                              }
                            ],
                            "id": 7435,
                            "name": "MemberAccess",
                            "src": "4095:11:36"
                          }
                        ],
                        "id": 7436,
                        "name": "MemberAccess",
                        "src": "4095:18:36"
                      }
                    ],
                    "id": 7437,
                    "name": "Return",
                    "src": "4088:25:36"
                  }
                ],
                "id": 7438,
                "name": "Block",
                "src": "4078:42:36"
              }
            ],
            "id": 7439,
            "name": "FunctionDefinition",
            "src": "4013:107:36"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "_at",
              "scope": 7756,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "private"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Returns the value 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": 7440,
                "name": "StructuredDocumentation",
                "src": "4125:322:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "set",
                      "scope": 7464,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableSet.Set",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "Set",
                          "referencedDeclaration": 7287,
                          "type": "struct EnumerableSet.Set"
                        },
                        "id": 7441,
                        "name": "UserDefinedTypeName",
                        "src": "4465:3:36"
                      }
                    ],
                    "id": 7442,
                    "name": "VariableDeclaration",
                    "src": "4465:15:36"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "index",
                      "scope": 7464,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 7443,
                        "name": "ElementaryTypeName",
                        "src": "4482:7:36"
                      }
                    ],
                    "id": 7444,
                    "name": "VariableDeclaration",
                    "src": "4482:13:36"
                  }
                ],
                "id": 7445,
                "name": "ParameterList",
                "src": "4464:32:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7464,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7446,
                        "name": "ElementaryTypeName",
                        "src": "4519:7:36"
                      }
                    ],
                    "id": 7447,
                    "name": "VariableDeclaration",
                    "src": "4519:7:36"
                  }
                ],
                "id": 7448,
                "name": "ParameterList",
                "src": "4518:9:36"
              },
              {
                "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_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb",
                                  "typeString": "literal_string \"EnumerableSet: index out of bounds\""
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool,string memory) pure",
                              "value": "require"
                            },
                            "id": 7449,
                            "name": "Identifier",
                            "src": "4538:7:36"
                          },
                          {
                            "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": "_values",
                                      "referencedDeclaration": 7282,
                                      "type": "bytes32[] storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7442,
                                          "type": "struct EnumerableSet.Set storage pointer",
                                          "value": "set"
                                        },
                                        "id": 7450,
                                        "name": "Identifier",
                                        "src": "4546:3:36"
                                      }
                                    ],
                                    "id": 7451,
                                    "name": "MemberAccess",
                                    "src": "4546:11:36"
                                  }
                                ],
                                "id": 7452,
                                "name": "MemberAccess",
                                "src": "4546:18:36"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7444,
                                  "type": "uint256",
                                  "value": "index"
                                },
                                "id": 7453,
                                "name": "Identifier",
                                "src": "4567:5:36"
                              }
                            ],
                            "id": 7454,
                            "name": "BinaryOperation",
                            "src": "4546:26:36"
                          },
                          {
                            "attributes": {
                              "hexvalue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "string",
                              "type": "literal_string \"EnumerableSet: index out of bounds\"",
                              "value": "EnumerableSet: index out of bounds"
                            },
                            "id": 7455,
                            "name": "Literal",
                            "src": "4574:36:36"
                          }
                        ],
                        "id": 7456,
                        "name": "FunctionCall",
                        "src": "4538:73:36"
                      }
                    ],
                    "id": 7457,
                    "name": "ExpressionStatement",
                    "src": "4538:73:36"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 7448
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "bytes32"
                        },
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "_values",
                              "referencedDeclaration": 7282,
                              "type": "bytes32[] storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7442,
                                  "type": "struct EnumerableSet.Set storage pointer",
                                  "value": "set"
                                },
                                "id": 7458,
                                "name": "Identifier",
                                "src": "4628:3:36"
                              }
                            ],
                            "id": 7459,
                            "name": "MemberAccess",
                            "src": "4628:11:36"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7444,
                              "type": "uint256",
                              "value": "index"
                            },
                            "id": 7460,
                            "name": "Identifier",
                            "src": "4640:5:36"
                          }
                        ],
                        "id": 7461,
                        "name": "IndexAccess",
                        "src": "4628:18:36"
                      }
                    ],
                    "id": 7462,
                    "name": "Return",
                    "src": "4621:25:36"
                  }
                ],
                "id": 7463,
                "name": "Block",
                "src": "4528:125:36"
              }
            ],
            "id": 7464,
            "name": "FunctionDefinition",
            "src": "4452:201:36"
          },
          {
            "attributes": {
              "canonicalName": "EnumerableSet.Bytes32Set",
              "name": "Bytes32Set",
              "scope": 7756,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "_inner",
                  "scope": 7467,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "struct EnumerableSet.Set",
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "Set",
                      "referencedDeclaration": 7287,
                      "type": "struct EnumerableSet.Set"
                    },
                    "id": 7465,
                    "name": "UserDefinedTypeName",
                    "src": "4706:3:36"
                  }
                ],
                "id": 7466,
                "name": "VariableDeclaration",
                "src": "4706:10:36"
              }
            ],
            "id": 7467,
            "name": "StructDefinition",
            "src": "4678:45:36"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "add",
              "scope": 7756,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."
                },
                "id": 7468,
                "name": "StructuredDocumentation",
                "src": "4729:159:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "set",
                      "scope": 7484,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableSet.Bytes32Set",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "Bytes32Set",
                          "referencedDeclaration": 7467,
                          "type": "struct EnumerableSet.Bytes32Set"
                        },
                        "id": 7469,
                        "name": "UserDefinedTypeName",
                        "src": "4906:10:36"
                      }
                    ],
                    "id": 7470,
                    "name": "VariableDeclaration",
                    "src": "4906:22:36"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "value",
                      "scope": 7484,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7471,
                        "name": "ElementaryTypeName",
                        "src": "4930:7:36"
                      }
                    ],
                    "id": 7472,
                    "name": "VariableDeclaration",
                    "src": "4930:13:36"
                  }
                ],
                "id": 7473,
                "name": "ParameterList",
                "src": "4905:39:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7484,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 7474,
                        "name": "ElementaryTypeName",
                        "src": "4963:4:36"
                      }
                    ],
                    "id": 7475,
                    "name": "VariableDeclaration",
                    "src": "4963:4:36"
                  }
                ],
                "id": 7476,
                "name": "ParameterList",
                "src": "4962:6:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 7476
                    },
                    "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$_Set_$7287_storage",
                                  "typeString": "struct EnumerableSet.Set storage ref"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7328,
                              "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)",
                              "value": "_add"
                            },
                            "id": 7477,
                            "name": "Identifier",
                            "src": "4986:4:36"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "_inner",
                              "referencedDeclaration": 7466,
                              "type": "struct EnumerableSet.Set storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7470,
                                  "type": "struct EnumerableSet.Bytes32Set storage pointer",
                                  "value": "set"
                                },
                                "id": 7478,
                                "name": "Identifier",
                                "src": "4991:3:36"
                              }
                            ],
                            "id": 7479,
                            "name": "MemberAccess",
                            "src": "4991:10:36"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7472,
                              "type": "bytes32",
                              "value": "value"
                            },
                            "id": 7480,
                            "name": "Identifier",
                            "src": "5003:5:36"
                          }
                        ],
                        "id": 7481,
                        "name": "FunctionCall",
                        "src": "4986:23:36"
                      }
                    ],
                    "id": 7482,
                    "name": "Return",
                    "src": "4979:30:36"
                  }
                ],
                "id": 7483,
                "name": "Block",
                "src": "4969:47:36"
              }
            ],
            "id": 7484,
            "name": "FunctionDefinition",
            "src": "4893:123:36"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "remove",
              "scope": 7756,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."
                },
                "id": 7485,
                "name": "StructuredDocumentation",
                "src": "5022:157:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "set",
                      "scope": 7501,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableSet.Bytes32Set",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "Bytes32Set",
                          "referencedDeclaration": 7467,
                          "type": "struct EnumerableSet.Bytes32Set"
                        },
                        "id": 7486,
                        "name": "UserDefinedTypeName",
                        "src": "5200:10:36"
                      }
                    ],
                    "id": 7487,
                    "name": "VariableDeclaration",
                    "src": "5200:22:36"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "value",
                      "scope": 7501,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7488,
                        "name": "ElementaryTypeName",
                        "src": "5224:7:36"
                      }
                    ],
                    "id": 7489,
                    "name": "VariableDeclaration",
                    "src": "5224:13:36"
                  }
                ],
                "id": 7490,
                "name": "ParameterList",
                "src": "5199:39:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7501,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 7491,
                        "name": "ElementaryTypeName",
                        "src": "5257:4:36"
                      }
                    ],
                    "id": 7492,
                    "name": "VariableDeclaration",
                    "src": "5257:4:36"
                  }
                ],
                "id": 7493,
                "name": "ParameterList",
                "src": "5256:6:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 7493
                    },
                    "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$_Set_$7287_storage",
                                  "typeString": "struct EnumerableSet.Set storage ref"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7408,
                              "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)",
                              "value": "_remove"
                            },
                            "id": 7494,
                            "name": "Identifier",
                            "src": "5280:7:36"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "_inner",
                              "referencedDeclaration": 7466,
                              "type": "struct EnumerableSet.Set storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7487,
                                  "type": "struct EnumerableSet.Bytes32Set storage pointer",
                                  "value": "set"
                                },
                                "id": 7495,
                                "name": "Identifier",
                                "src": "5288:3:36"
                              }
                            ],
                            "id": 7496,
                            "name": "MemberAccess",
                            "src": "5288:10:36"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7489,
                              "type": "bytes32",
                              "value": "value"
                            },
                            "id": 7497,
                            "name": "Identifier",
                            "src": "5300:5:36"
                          }
                        ],
                        "id": 7498,
                        "name": "FunctionCall",
                        "src": "5280:26:36"
                      }
                    ],
                    "id": 7499,
                    "name": "Return",
                    "src": "5273:33:36"
                  }
                ],
                "id": 7500,
                "name": "Block",
                "src": "5263:50:36"
              }
            ],
            "id": 7501,
            "name": "FunctionDefinition",
            "src": "5184:129:36"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "contains",
              "scope": 7756,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Returns true if the value is in the set. O(1)."
                },
                "id": 7502,
                "name": "StructuredDocumentation",
                "src": "5319:70:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "set",
                      "scope": 7518,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableSet.Bytes32Set",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "Bytes32Set",
                          "referencedDeclaration": 7467,
                          "type": "struct EnumerableSet.Bytes32Set"
                        },
                        "id": 7503,
                        "name": "UserDefinedTypeName",
                        "src": "5412:10:36"
                      }
                    ],
                    "id": 7504,
                    "name": "VariableDeclaration",
                    "src": "5412:22:36"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "value",
                      "scope": 7518,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7505,
                        "name": "ElementaryTypeName",
                        "src": "5436:7:36"
                      }
                    ],
                    "id": 7506,
                    "name": "VariableDeclaration",
                    "src": "5436:13:36"
                  }
                ],
                "id": 7507,
                "name": "ParameterList",
                "src": "5411:39:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7518,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 7508,
                        "name": "ElementaryTypeName",
                        "src": "5474:4:36"
                      }
                    ],
                    "id": 7509,
                    "name": "VariableDeclaration",
                    "src": "5474:4:36"
                  }
                ],
                "id": 7510,
                "name": "ParameterList",
                "src": "5473:6:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 7510
                    },
                    "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$_Set_$7287_storage",
                                  "typeString": "struct EnumerableSet.Set storage ref"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7426,
                              "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)",
                              "value": "_contains"
                            },
                            "id": 7511,
                            "name": "Identifier",
                            "src": "5497:9:36"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "_inner",
                              "referencedDeclaration": 7466,
                              "type": "struct EnumerableSet.Set storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7504,
                                  "type": "struct EnumerableSet.Bytes32Set storage pointer",
                                  "value": "set"
                                },
                                "id": 7512,
                                "name": "Identifier",
                                "src": "5507:3:36"
                              }
                            ],
                            "id": 7513,
                            "name": "MemberAccess",
                            "src": "5507:10:36"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7506,
                              "type": "bytes32",
                              "value": "value"
                            },
                            "id": 7514,
                            "name": "Identifier",
                            "src": "5519:5:36"
                          }
                        ],
                        "id": 7515,
                        "name": "FunctionCall",
                        "src": "5497:28:36"
                      }
                    ],
                    "id": 7516,
                    "name": "Return",
                    "src": "5490:35:36"
                  }
                ],
                "id": 7517,
                "name": "Block",
                "src": "5480:52:36"
              }
            ],
            "id": 7518,
            "name": "FunctionDefinition",
            "src": "5394:138:36"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "length",
              "scope": 7756,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Returns the number of values in the set. O(1)."
                },
                "id": 7519,
                "name": "StructuredDocumentation",
                "src": "5538:70:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "set",
                      "scope": 7532,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableSet.Bytes32Set",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "Bytes32Set",
                          "referencedDeclaration": 7467,
                          "type": "struct EnumerableSet.Bytes32Set"
                        },
                        "id": 7520,
                        "name": "UserDefinedTypeName",
                        "src": "5629:10:36"
                      }
                    ],
                    "id": 7521,
                    "name": "VariableDeclaration",
                    "src": "5629:22:36"
                  }
                ],
                "id": 7522,
                "name": "ParameterList",
                "src": "5628:24:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7532,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 7523,
                        "name": "ElementaryTypeName",
                        "src": "5676:7:36"
                      }
                    ],
                    "id": 7524,
                    "name": "VariableDeclaration",
                    "src": "5676:7:36"
                  }
                ],
                "id": 7525,
                "name": "ParameterList",
                "src": "5675:9:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 7525
                    },
                    "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$_Set_$7287_storage",
                                  "typeString": "struct EnumerableSet.Set storage ref"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7439,
                              "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)",
                              "value": "_length"
                            },
                            "id": 7526,
                            "name": "Identifier",
                            "src": "5702:7:36"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "_inner",
                              "referencedDeclaration": 7466,
                              "type": "struct EnumerableSet.Set storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7521,
                                  "type": "struct EnumerableSet.Bytes32Set storage pointer",
                                  "value": "set"
                                },
                                "id": 7527,
                                "name": "Identifier",
                                "src": "5710:3:36"
                              }
                            ],
                            "id": 7528,
                            "name": "MemberAccess",
                            "src": "5710:10:36"
                          }
                        ],
                        "id": 7529,
                        "name": "FunctionCall",
                        "src": "5702:19:36"
                      }
                    ],
                    "id": 7530,
                    "name": "Return",
                    "src": "5695:26:36"
                  }
                ],
                "id": 7531,
                "name": "Block",
                "src": "5685:43:36"
              }
            ],
            "id": 7532,
            "name": "FunctionDefinition",
            "src": "5613:115:36"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "at",
              "scope": 7756,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Returns the value 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": 7533,
                "name": "StructuredDocumentation",
                "src": "5733:322:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "set",
                      "scope": 7549,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableSet.Bytes32Set",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "Bytes32Set",
                          "referencedDeclaration": 7467,
                          "type": "struct EnumerableSet.Bytes32Set"
                        },
                        "id": 7534,
                        "name": "UserDefinedTypeName",
                        "src": "6072:10:36"
                      }
                    ],
                    "id": 7535,
                    "name": "VariableDeclaration",
                    "src": "6072:22:36"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "index",
                      "scope": 7549,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 7536,
                        "name": "ElementaryTypeName",
                        "src": "6096:7:36"
                      }
                    ],
                    "id": 7537,
                    "name": "VariableDeclaration",
                    "src": "6096:13:36"
                  }
                ],
                "id": 7538,
                "name": "ParameterList",
                "src": "6071:39:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7549,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 7539,
                        "name": "ElementaryTypeName",
                        "src": "6134:7:36"
                      }
                    ],
                    "id": 7540,
                    "name": "VariableDeclaration",
                    "src": "6134:7:36"
                  }
                ],
                "id": 7541,
                "name": "ParameterList",
                "src": "6133:9:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 7541
                    },
                    "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$_Set_$7287_storage",
                                  "typeString": "struct EnumerableSet.Set storage ref"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7464,
                              "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)",
                              "value": "_at"
                            },
                            "id": 7542,
                            "name": "Identifier",
                            "src": "6160:3:36"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "_inner",
                              "referencedDeclaration": 7466,
                              "type": "struct EnumerableSet.Set storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7535,
                                  "type": "struct EnumerableSet.Bytes32Set storage pointer",
                                  "value": "set"
                                },
                                "id": 7543,
                                "name": "Identifier",
                                "src": "6164:3:36"
                              }
                            ],
                            "id": 7544,
                            "name": "MemberAccess",
                            "src": "6164:10:36"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7537,
                              "type": "uint256",
                              "value": "index"
                            },
                            "id": 7545,
                            "name": "Identifier",
                            "src": "6176:5:36"
                          }
                        ],
                        "id": 7546,
                        "name": "FunctionCall",
                        "src": "6160:22:36"
                      }
                    ],
                    "id": 7547,
                    "name": "Return",
                    "src": "6153:29:36"
                  }
                ],
                "id": 7548,
                "name": "Block",
                "src": "6143:46:36"
              }
            ],
            "id": 7549,
            "name": "FunctionDefinition",
            "src": "6060:129:36"
          },
          {
            "attributes": {
              "canonicalName": "EnumerableSet.AddressSet",
              "name": "AddressSet",
              "scope": 7756,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "_inner",
                  "scope": 7552,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "struct EnumerableSet.Set",
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "Set",
                      "referencedDeclaration": 7287,
                      "type": "struct EnumerableSet.Set"
                    },
                    "id": 7550,
                    "name": "UserDefinedTypeName",
                    "src": "6242:3:36"
                  }
                ],
                "id": 7551,
                "name": "VariableDeclaration",
                "src": "6242:10:36"
              }
            ],
            "id": 7552,
            "name": "StructDefinition",
            "src": "6214:45:36"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "add",
              "scope": 7756,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."
                },
                "id": 7553,
                "name": "StructuredDocumentation",
                "src": "6265:159:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "set",
                      "scope": 7575,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableSet.AddressSet",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "AddressSet",
                          "referencedDeclaration": 7552,
                          "type": "struct EnumerableSet.AddressSet"
                        },
                        "id": 7554,
                        "name": "UserDefinedTypeName",
                        "src": "6442:10:36"
                      }
                    ],
                    "id": 7555,
                    "name": "VariableDeclaration",
                    "src": "6442:22:36"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "value",
                      "scope": 7575,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 7556,
                        "name": "ElementaryTypeName",
                        "src": "6466:7:36"
                      }
                    ],
                    "id": 7557,
                    "name": "VariableDeclaration",
                    "src": "6466:13:36"
                  }
                ],
                "id": 7558,
                "name": "ParameterList",
                "src": "6441:39:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7575,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 7559,
                        "name": "ElementaryTypeName",
                        "src": "6499:4:36"
                      }
                    ],
                    "id": 7560,
                    "name": "VariableDeclaration",
                    "src": "6499:4:36"
                  }
                ],
                "id": 7561,
                "name": "ParameterList",
                "src": "6498:6:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 7561
                    },
                    "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$_Set_$7287_storage",
                                  "typeString": "struct EnumerableSet.Set storage ref"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7328,
                              "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)",
                              "value": "_add"
                            },
                            "id": 7562,
                            "name": "Identifier",
                            "src": "6522:4:36"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "_inner",
                              "referencedDeclaration": 7551,
                              "type": "struct EnumerableSet.Set storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7555,
                                  "type": "struct EnumerableSet.AddressSet storage pointer",
                                  "value": "set"
                                },
                                "id": 7563,
                                "name": "Identifier",
                                "src": "6527:3:36"
                              }
                            ],
                            "id": 7564,
                            "name": "MemberAccess",
                            "src": "6527:10:36"
                          },
                          {
                            "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": 7565,
                                    "name": "ElementaryTypeName",
                                    "src": "6539:7:36"
                                  }
                                ],
                                "id": 7566,
                                "name": "ElementaryTypeNameExpression",
                                "src": "6539:7:36"
                              },
                              {
                                "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": 7567,
                                        "name": "ElementaryTypeName",
                                        "src": "6547:7:36"
                                      }
                                    ],
                                    "id": 7568,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "6547:7:36"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7557,
                                      "type": "address",
                                      "value": "value"
                                    },
                                    "id": 7569,
                                    "name": "Identifier",
                                    "src": "6555:5:36"
                                  }
                                ],
                                "id": 7570,
                                "name": "FunctionCall",
                                "src": "6547:14:36"
                              }
                            ],
                            "id": 7571,
                            "name": "FunctionCall",
                            "src": "6539:23:36"
                          }
                        ],
                        "id": 7572,
                        "name": "FunctionCall",
                        "src": "6522:41:36"
                      }
                    ],
                    "id": 7573,
                    "name": "Return",
                    "src": "6515:48:36"
                  }
                ],
                "id": 7574,
                "name": "Block",
                "src": "6505:65:36"
              }
            ],
            "id": 7575,
            "name": "FunctionDefinition",
            "src": "6429:141:36"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "remove",
              "scope": 7756,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."
                },
                "id": 7576,
                "name": "StructuredDocumentation",
                "src": "6576:157:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "set",
                      "scope": 7598,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableSet.AddressSet",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "AddressSet",
                          "referencedDeclaration": 7552,
                          "type": "struct EnumerableSet.AddressSet"
                        },
                        "id": 7577,
                        "name": "UserDefinedTypeName",
                        "src": "6754:10:36"
                      }
                    ],
                    "id": 7578,
                    "name": "VariableDeclaration",
                    "src": "6754:22:36"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "value",
                      "scope": 7598,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 7579,
                        "name": "ElementaryTypeName",
                        "src": "6778:7:36"
                      }
                    ],
                    "id": 7580,
                    "name": "VariableDeclaration",
                    "src": "6778:13:36"
                  }
                ],
                "id": 7581,
                "name": "ParameterList",
                "src": "6753:39:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7598,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 7582,
                        "name": "ElementaryTypeName",
                        "src": "6811:4:36"
                      }
                    ],
                    "id": 7583,
                    "name": "VariableDeclaration",
                    "src": "6811:4:36"
                  }
                ],
                "id": 7584,
                "name": "ParameterList",
                "src": "6810:6:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 7584
                    },
                    "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$_Set_$7287_storage",
                                  "typeString": "struct EnumerableSet.Set storage ref"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7408,
                              "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)",
                              "value": "_remove"
                            },
                            "id": 7585,
                            "name": "Identifier",
                            "src": "6834:7:36"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "_inner",
                              "referencedDeclaration": 7551,
                              "type": "struct EnumerableSet.Set storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7578,
                                  "type": "struct EnumerableSet.AddressSet storage pointer",
                                  "value": "set"
                                },
                                "id": 7586,
                                "name": "Identifier",
                                "src": "6842:3:36"
                              }
                            ],
                            "id": 7587,
                            "name": "MemberAccess",
                            "src": "6842:10:36"
                          },
                          {
                            "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": 7588,
                                    "name": "ElementaryTypeName",
                                    "src": "6854:7:36"
                                  }
                                ],
                                "id": 7589,
                                "name": "ElementaryTypeNameExpression",
                                "src": "6854:7:36"
                              },
                              {
                                "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": 7590,
                                        "name": "ElementaryTypeName",
                                        "src": "6862:7:36"
                                      }
                                    ],
                                    "id": 7591,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "6862:7:36"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7580,
                                      "type": "address",
                                      "value": "value"
                                    },
                                    "id": 7592,
                                    "name": "Identifier",
                                    "src": "6870:5:36"
                                  }
                                ],
                                "id": 7593,
                                "name": "FunctionCall",
                                "src": "6862:14:36"
                              }
                            ],
                            "id": 7594,
                            "name": "FunctionCall",
                            "src": "6854:23:36"
                          }
                        ],
                        "id": 7595,
                        "name": "FunctionCall",
                        "src": "6834:44:36"
                      }
                    ],
                    "id": 7596,
                    "name": "Return",
                    "src": "6827:51:36"
                  }
                ],
                "id": 7597,
                "name": "Block",
                "src": "6817:68:36"
              }
            ],
            "id": 7598,
            "name": "FunctionDefinition",
            "src": "6738:147:36"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "contains",
              "scope": 7756,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Returns true if the value is in the set. O(1)."
                },
                "id": 7599,
                "name": "StructuredDocumentation",
                "src": "6891:70:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "set",
                      "scope": 7621,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableSet.AddressSet",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "AddressSet",
                          "referencedDeclaration": 7552,
                          "type": "struct EnumerableSet.AddressSet"
                        },
                        "id": 7600,
                        "name": "UserDefinedTypeName",
                        "src": "6984:10:36"
                      }
                    ],
                    "id": 7601,
                    "name": "VariableDeclaration",
                    "src": "6984:22:36"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "value",
                      "scope": 7621,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 7602,
                        "name": "ElementaryTypeName",
                        "src": "7008:7:36"
                      }
                    ],
                    "id": 7603,
                    "name": "VariableDeclaration",
                    "src": "7008:13:36"
                  }
                ],
                "id": 7604,
                "name": "ParameterList",
                "src": "6983:39:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7621,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 7605,
                        "name": "ElementaryTypeName",
                        "src": "7046:4:36"
                      }
                    ],
                    "id": 7606,
                    "name": "VariableDeclaration",
                    "src": "7046:4:36"
                  }
                ],
                "id": 7607,
                "name": "ParameterList",
                "src": "7045:6:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 7607
                    },
                    "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$_Set_$7287_storage",
                                  "typeString": "struct EnumerableSet.Set storage ref"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7426,
                              "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)",
                              "value": "_contains"
                            },
                            "id": 7608,
                            "name": "Identifier",
                            "src": "7069:9:36"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "_inner",
                              "referencedDeclaration": 7551,
                              "type": "struct EnumerableSet.Set storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7601,
                                  "type": "struct EnumerableSet.AddressSet storage pointer",
                                  "value": "set"
                                },
                                "id": 7609,
                                "name": "Identifier",
                                "src": "7079:3:36"
                              }
                            ],
                            "id": 7610,
                            "name": "MemberAccess",
                            "src": "7079:10:36"
                          },
                          {
                            "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": 7611,
                                    "name": "ElementaryTypeName",
                                    "src": "7091:7:36"
                                  }
                                ],
                                "id": 7612,
                                "name": "ElementaryTypeNameExpression",
                                "src": "7091:7:36"
                              },
                              {
                                "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": 7613,
                                        "name": "ElementaryTypeName",
                                        "src": "7099:7:36"
                                      }
                                    ],
                                    "id": 7614,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "7099:7:36"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7603,
                                      "type": "address",
                                      "value": "value"
                                    },
                                    "id": 7615,
                                    "name": "Identifier",
                                    "src": "7107:5:36"
                                  }
                                ],
                                "id": 7616,
                                "name": "FunctionCall",
                                "src": "7099:14:36"
                              }
                            ],
                            "id": 7617,
                            "name": "FunctionCall",
                            "src": "7091:23:36"
                          }
                        ],
                        "id": 7618,
                        "name": "FunctionCall",
                        "src": "7069:46:36"
                      }
                    ],
                    "id": 7619,
                    "name": "Return",
                    "src": "7062:53:36"
                  }
                ],
                "id": 7620,
                "name": "Block",
                "src": "7052:70:36"
              }
            ],
            "id": 7621,
            "name": "FunctionDefinition",
            "src": "6966:156:36"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "length",
              "scope": 7756,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Returns the number of values in the set. O(1)."
                },
                "id": 7622,
                "name": "StructuredDocumentation",
                "src": "7128:70:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "set",
                      "scope": 7635,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableSet.AddressSet",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "AddressSet",
                          "referencedDeclaration": 7552,
                          "type": "struct EnumerableSet.AddressSet"
                        },
                        "id": 7623,
                        "name": "UserDefinedTypeName",
                        "src": "7219:10:36"
                      }
                    ],
                    "id": 7624,
                    "name": "VariableDeclaration",
                    "src": "7219:22:36"
                  }
                ],
                "id": 7625,
                "name": "ParameterList",
                "src": "7218:24:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7635,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 7626,
                        "name": "ElementaryTypeName",
                        "src": "7266:7:36"
                      }
                    ],
                    "id": 7627,
                    "name": "VariableDeclaration",
                    "src": "7266:7:36"
                  }
                ],
                "id": 7628,
                "name": "ParameterList",
                "src": "7265:9:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 7628
                    },
                    "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$_Set_$7287_storage",
                                  "typeString": "struct EnumerableSet.Set storage ref"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7439,
                              "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)",
                              "value": "_length"
                            },
                            "id": 7629,
                            "name": "Identifier",
                            "src": "7292:7:36"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "_inner",
                              "referencedDeclaration": 7551,
                              "type": "struct EnumerableSet.Set storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7624,
                                  "type": "struct EnumerableSet.AddressSet storage pointer",
                                  "value": "set"
                                },
                                "id": 7630,
                                "name": "Identifier",
                                "src": "7300:3:36"
                              }
                            ],
                            "id": 7631,
                            "name": "MemberAccess",
                            "src": "7300:10:36"
                          }
                        ],
                        "id": 7632,
                        "name": "FunctionCall",
                        "src": "7292:19:36"
                      }
                    ],
                    "id": 7633,
                    "name": "Return",
                    "src": "7285:26:36"
                  }
                ],
                "id": 7634,
                "name": "Block",
                "src": "7275:43:36"
              }
            ],
            "id": 7635,
            "name": "FunctionDefinition",
            "src": "7203:115:36"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "at",
              "scope": 7756,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Returns the value 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": 7636,
                "name": "StructuredDocumentation",
                "src": "7323:322:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "set",
                      "scope": 7658,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableSet.AddressSet",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "AddressSet",
                          "referencedDeclaration": 7552,
                          "type": "struct EnumerableSet.AddressSet"
                        },
                        "id": 7637,
                        "name": "UserDefinedTypeName",
                        "src": "7662:10:36"
                      }
                    ],
                    "id": 7638,
                    "name": "VariableDeclaration",
                    "src": "7662:22:36"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "index",
                      "scope": 7658,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 7639,
                        "name": "ElementaryTypeName",
                        "src": "7686:7:36"
                      }
                    ],
                    "id": 7640,
                    "name": "VariableDeclaration",
                    "src": "7686:13:36"
                  }
                ],
                "id": 7641,
                "name": "ParameterList",
                "src": "7661:39:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7658,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 7642,
                        "name": "ElementaryTypeName",
                        "src": "7724:7:36"
                      }
                    ],
                    "id": 7643,
                    "name": "VariableDeclaration",
                    "src": "7724:7:36"
                  }
                ],
                "id": 7644,
                "name": "ParameterList",
                "src": "7723:9:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 7644
                    },
                    "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": 7645,
                                "name": "ElementaryTypeName",
                                "src": "7750:7:36"
                              }
                            ],
                            "id": 7646,
                            "name": "ElementaryTypeNameExpression",
                            "src": "7750:7:36"
                          },
                          {
                            "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": 7647,
                                    "name": "ElementaryTypeName",
                                    "src": "7758:7:36"
                                  }
                                ],
                                "id": 7648,
                                "name": "ElementaryTypeNameExpression",
                                "src": "7758:7:36"
                              },
                              {
                                "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$_Set_$7287_storage",
                                          "typeString": "struct EnumerableSet.Set storage ref"
                                        },
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7464,
                                      "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)",
                                      "value": "_at"
                                    },
                                    "id": 7649,
                                    "name": "Identifier",
                                    "src": "7766:3:36"
                                  },
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "_inner",
                                      "referencedDeclaration": 7551,
                                      "type": "struct EnumerableSet.Set storage ref"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7638,
                                          "type": "struct EnumerableSet.AddressSet storage pointer",
                                          "value": "set"
                                        },
                                        "id": 7650,
                                        "name": "Identifier",
                                        "src": "7770:3:36"
                                      }
                                    ],
                                    "id": 7651,
                                    "name": "MemberAccess",
                                    "src": "7770:10:36"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7640,
                                      "type": "uint256",
                                      "value": "index"
                                    },
                                    "id": 7652,
                                    "name": "Identifier",
                                    "src": "7782:5:36"
                                  }
                                ],
                                "id": 7653,
                                "name": "FunctionCall",
                                "src": "7766:22:36"
                              }
                            ],
                            "id": 7654,
                            "name": "FunctionCall",
                            "src": "7758:31:36"
                          }
                        ],
                        "id": 7655,
                        "name": "FunctionCall",
                        "src": "7750:40:36"
                      }
                    ],
                    "id": 7656,
                    "name": "Return",
                    "src": "7743:47:36"
                  }
                ],
                "id": 7657,
                "name": "Block",
                "src": "7733:64:36"
              }
            ],
            "id": 7658,
            "name": "FunctionDefinition",
            "src": "7650:147:36"
          },
          {
            "attributes": {
              "canonicalName": "EnumerableSet.UintSet",
              "name": "UintSet",
              "scope": 7756,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "_inner",
                  "scope": 7661,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "struct EnumerableSet.Set",
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "Set",
                      "referencedDeclaration": 7287,
                      "type": "struct EnumerableSet.Set"
                    },
                    "id": 7659,
                    "name": "UserDefinedTypeName",
                    "src": "7845:3:36"
                  }
                ],
                "id": 7660,
                "name": "VariableDeclaration",
                "src": "7845:10:36"
              }
            ],
            "id": 7661,
            "name": "StructDefinition",
            "src": "7820:42:36"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "add",
              "scope": 7756,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."
                },
                "id": 7662,
                "name": "StructuredDocumentation",
                "src": "7868:159:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "set",
                      "scope": 7681,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableSet.UintSet",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "UintSet",
                          "referencedDeclaration": 7661,
                          "type": "struct EnumerableSet.UintSet"
                        },
                        "id": 7663,
                        "name": "UserDefinedTypeName",
                        "src": "8045:7:36"
                      }
                    ],
                    "id": 7664,
                    "name": "VariableDeclaration",
                    "src": "8045:19:36"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "value",
                      "scope": 7681,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 7665,
                        "name": "ElementaryTypeName",
                        "src": "8066:7:36"
                      }
                    ],
                    "id": 7666,
                    "name": "VariableDeclaration",
                    "src": "8066:13:36"
                  }
                ],
                "id": 7667,
                "name": "ParameterList",
                "src": "8044:36:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7681,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 7668,
                        "name": "ElementaryTypeName",
                        "src": "8099:4:36"
                      }
                    ],
                    "id": 7669,
                    "name": "VariableDeclaration",
                    "src": "8099:4:36"
                  }
                ],
                "id": 7670,
                "name": "ParameterList",
                "src": "8098:6:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 7670
                    },
                    "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$_Set_$7287_storage",
                                  "typeString": "struct EnumerableSet.Set storage ref"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7328,
                              "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)",
                              "value": "_add"
                            },
                            "id": 7671,
                            "name": "Identifier",
                            "src": "8122:4:36"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "_inner",
                              "referencedDeclaration": 7660,
                              "type": "struct EnumerableSet.Set storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7664,
                                  "type": "struct EnumerableSet.UintSet storage pointer",
                                  "value": "set"
                                },
                                "id": 7672,
                                "name": "Identifier",
                                "src": "8127:3:36"
                              }
                            ],
                            "id": 7673,
                            "name": "MemberAccess",
                            "src": "8127:10:36"
                          },
                          {
                            "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": 7674,
                                    "name": "ElementaryTypeName",
                                    "src": "8139:7:36"
                                  }
                                ],
                                "id": 7675,
                                "name": "ElementaryTypeNameExpression",
                                "src": "8139:7:36"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7666,
                                  "type": "uint256",
                                  "value": "value"
                                },
                                "id": 7676,
                                "name": "Identifier",
                                "src": "8147:5:36"
                              }
                            ],
                            "id": 7677,
                            "name": "FunctionCall",
                            "src": "8139:14:36"
                          }
                        ],
                        "id": 7678,
                        "name": "FunctionCall",
                        "src": "8122:32:36"
                      }
                    ],
                    "id": 7679,
                    "name": "Return",
                    "src": "8115:39:36"
                  }
                ],
                "id": 7680,
                "name": "Block",
                "src": "8105:56:36"
              }
            ],
            "id": 7681,
            "name": "FunctionDefinition",
            "src": "8032:129:36"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "remove",
              "scope": 7756,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."
                },
                "id": 7682,
                "name": "StructuredDocumentation",
                "src": "8167:157:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "set",
                      "scope": 7701,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableSet.UintSet",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "UintSet",
                          "referencedDeclaration": 7661,
                          "type": "struct EnumerableSet.UintSet"
                        },
                        "id": 7683,
                        "name": "UserDefinedTypeName",
                        "src": "8345:7:36"
                      }
                    ],
                    "id": 7684,
                    "name": "VariableDeclaration",
                    "src": "8345:19:36"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "value",
                      "scope": 7701,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 7685,
                        "name": "ElementaryTypeName",
                        "src": "8366:7:36"
                      }
                    ],
                    "id": 7686,
                    "name": "VariableDeclaration",
                    "src": "8366:13:36"
                  }
                ],
                "id": 7687,
                "name": "ParameterList",
                "src": "8344:36:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7701,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 7688,
                        "name": "ElementaryTypeName",
                        "src": "8399:4:36"
                      }
                    ],
                    "id": 7689,
                    "name": "VariableDeclaration",
                    "src": "8399:4:36"
                  }
                ],
                "id": 7690,
                "name": "ParameterList",
                "src": "8398:6:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 7690
                    },
                    "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$_Set_$7287_storage",
                                  "typeString": "struct EnumerableSet.Set storage ref"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7408,
                              "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)",
                              "value": "_remove"
                            },
                            "id": 7691,
                            "name": "Identifier",
                            "src": "8422:7:36"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "_inner",
                              "referencedDeclaration": 7660,
                              "type": "struct EnumerableSet.Set storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7684,
                                  "type": "struct EnumerableSet.UintSet storage pointer",
                                  "value": "set"
                                },
                                "id": 7692,
                                "name": "Identifier",
                                "src": "8430:3:36"
                              }
                            ],
                            "id": 7693,
                            "name": "MemberAccess",
                            "src": "8430:10:36"
                          },
                          {
                            "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": 7694,
                                    "name": "ElementaryTypeName",
                                    "src": "8442:7:36"
                                  }
                                ],
                                "id": 7695,
                                "name": "ElementaryTypeNameExpression",
                                "src": "8442:7:36"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7686,
                                  "type": "uint256",
                                  "value": "value"
                                },
                                "id": 7696,
                                "name": "Identifier",
                                "src": "8450:5:36"
                              }
                            ],
                            "id": 7697,
                            "name": "FunctionCall",
                            "src": "8442:14:36"
                          }
                        ],
                        "id": 7698,
                        "name": "FunctionCall",
                        "src": "8422:35:36"
                      }
                    ],
                    "id": 7699,
                    "name": "Return",
                    "src": "8415:42:36"
                  }
                ],
                "id": 7700,
                "name": "Block",
                "src": "8405:59:36"
              }
            ],
            "id": 7701,
            "name": "FunctionDefinition",
            "src": "8329:135:36"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "contains",
              "scope": 7756,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Returns true if the value is in the set. O(1)."
                },
                "id": 7702,
                "name": "StructuredDocumentation",
                "src": "8470:70:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "set",
                      "scope": 7721,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableSet.UintSet",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "UintSet",
                          "referencedDeclaration": 7661,
                          "type": "struct EnumerableSet.UintSet"
                        },
                        "id": 7703,
                        "name": "UserDefinedTypeName",
                        "src": "8563:7:36"
                      }
                    ],
                    "id": 7704,
                    "name": "VariableDeclaration",
                    "src": "8563:19:36"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "value",
                      "scope": 7721,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 7705,
                        "name": "ElementaryTypeName",
                        "src": "8584:7:36"
                      }
                    ],
                    "id": 7706,
                    "name": "VariableDeclaration",
                    "src": "8584:13:36"
                  }
                ],
                "id": 7707,
                "name": "ParameterList",
                "src": "8562:36:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7721,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 7708,
                        "name": "ElementaryTypeName",
                        "src": "8622:4:36"
                      }
                    ],
                    "id": 7709,
                    "name": "VariableDeclaration",
                    "src": "8622:4:36"
                  }
                ],
                "id": 7710,
                "name": "ParameterList",
                "src": "8621:6:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 7710
                    },
                    "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$_Set_$7287_storage",
                                  "typeString": "struct EnumerableSet.Set storage ref"
                                },
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7426,
                              "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)",
                              "value": "_contains"
                            },
                            "id": 7711,
                            "name": "Identifier",
                            "src": "8645:9:36"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "_inner",
                              "referencedDeclaration": 7660,
                              "type": "struct EnumerableSet.Set storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7704,
                                  "type": "struct EnumerableSet.UintSet storage pointer",
                                  "value": "set"
                                },
                                "id": 7712,
                                "name": "Identifier",
                                "src": "8655:3:36"
                              }
                            ],
                            "id": 7713,
                            "name": "MemberAccess",
                            "src": "8655:10:36"
                          },
                          {
                            "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": 7714,
                                    "name": "ElementaryTypeName",
                                    "src": "8667:7:36"
                                  }
                                ],
                                "id": 7715,
                                "name": "ElementaryTypeNameExpression",
                                "src": "8667:7:36"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7706,
                                  "type": "uint256",
                                  "value": "value"
                                },
                                "id": 7716,
                                "name": "Identifier",
                                "src": "8675:5:36"
                              }
                            ],
                            "id": 7717,
                            "name": "FunctionCall",
                            "src": "8667:14:36"
                          }
                        ],
                        "id": 7718,
                        "name": "FunctionCall",
                        "src": "8645:37:36"
                      }
                    ],
                    "id": 7719,
                    "name": "Return",
                    "src": "8638:44:36"
                  }
                ],
                "id": 7720,
                "name": "Block",
                "src": "8628:61:36"
              }
            ],
            "id": 7721,
            "name": "FunctionDefinition",
            "src": "8545:144:36"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "length",
              "scope": 7756,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Returns the number of values on the set. O(1)."
                },
                "id": 7722,
                "name": "StructuredDocumentation",
                "src": "8695:70:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "set",
                      "scope": 7735,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableSet.UintSet",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "UintSet",
                          "referencedDeclaration": 7661,
                          "type": "struct EnumerableSet.UintSet"
                        },
                        "id": 7723,
                        "name": "UserDefinedTypeName",
                        "src": "8786:7:36"
                      }
                    ],
                    "id": 7724,
                    "name": "VariableDeclaration",
                    "src": "8786:19:36"
                  }
                ],
                "id": 7725,
                "name": "ParameterList",
                "src": "8785:21:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7735,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 7726,
                        "name": "ElementaryTypeName",
                        "src": "8830:7:36"
                      }
                    ],
                    "id": 7727,
                    "name": "VariableDeclaration",
                    "src": "8830:7:36"
                  }
                ],
                "id": 7728,
                "name": "ParameterList",
                "src": "8829:9:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 7728
                    },
                    "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$_Set_$7287_storage",
                                  "typeString": "struct EnumerableSet.Set storage ref"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7439,
                              "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)",
                              "value": "_length"
                            },
                            "id": 7729,
                            "name": "Identifier",
                            "src": "8856:7:36"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "_inner",
                              "referencedDeclaration": 7660,
                              "type": "struct EnumerableSet.Set storage ref"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7724,
                                  "type": "struct EnumerableSet.UintSet storage pointer",
                                  "value": "set"
                                },
                                "id": 7730,
                                "name": "Identifier",
                                "src": "8864:3:36"
                              }
                            ],
                            "id": 7731,
                            "name": "MemberAccess",
                            "src": "8864:10:36"
                          }
                        ],
                        "id": 7732,
                        "name": "FunctionCall",
                        "src": "8856:19:36"
                      }
                    ],
                    "id": 7733,
                    "name": "Return",
                    "src": "8849:26:36"
                  }
                ],
                "id": 7734,
                "name": "Block",
                "src": "8839:43:36"
              }
            ],
            "id": 7735,
            "name": "FunctionDefinition",
            "src": "8770:112:36"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "at",
              "scope": 7756,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " @dev Returns the value 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": 7736,
                "name": "StructuredDocumentation",
                "src": "8887:322:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "set",
                      "scope": 7755,
                      "stateVariable": false,
                      "storageLocation": "storage",
                      "type": "struct EnumerableSet.UintSet",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "UintSet",
                          "referencedDeclaration": 7661,
                          "type": "struct EnumerableSet.UintSet"
                        },
                        "id": 7737,
                        "name": "UserDefinedTypeName",
                        "src": "9226:7:36"
                      }
                    ],
                    "id": 7738,
                    "name": "VariableDeclaration",
                    "src": "9226:19:36"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "index",
                      "scope": 7755,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 7739,
                        "name": "ElementaryTypeName",
                        "src": "9247:7:36"
                      }
                    ],
                    "id": 7740,
                    "name": "VariableDeclaration",
                    "src": "9247:13:36"
                  }
                ],
                "id": 7741,
                "name": "ParameterList",
                "src": "9225:36:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7755,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 7742,
                        "name": "ElementaryTypeName",
                        "src": "9285:7:36"
                      }
                    ],
                    "id": 7743,
                    "name": "VariableDeclaration",
                    "src": "9285:7:36"
                  }
                ],
                "id": 7744,
                "name": "ParameterList",
                "src": "9284:9:36"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 7744
                    },
                    "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": 7745,
                                "name": "ElementaryTypeName",
                                "src": "9311:7:36"
                              }
                            ],
                            "id": 7746,
                            "name": "ElementaryTypeNameExpression",
                            "src": "9311:7:36"
                          },
                          {
                            "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$_Set_$7287_storage",
                                      "typeString": "struct EnumerableSet.Set storage ref"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7464,
                                  "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)",
                                  "value": "_at"
                                },
                                "id": 7747,
                                "name": "Identifier",
                                "src": "9319:3:36"
                              },
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "_inner",
                                  "referencedDeclaration": 7660,
                                  "type": "struct EnumerableSet.Set storage ref"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7738,
                                      "type": "struct EnumerableSet.UintSet storage pointer",
                                      "value": "set"
                                    },
                                    "id": 7748,
                                    "name": "Identifier",
                                    "src": "9323:3:36"
                                  }
                                ],
                                "id": 7749,
                                "name": "MemberAccess",
                                "src": "9323:10:36"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7740,
                                  "type": "uint256",
                                  "value": "index"
                                },
                                "id": 7750,
                                "name": "Identifier",
                                "src": "9335:5:36"
                              }
                            ],
                            "id": 7751,
                            "name": "FunctionCall",
                            "src": "9319:22:36"
                          }
                        ],
                        "id": 7752,
                        "name": "FunctionCall",
                        "src": "9311:31:36"
                      }
                    ],
                    "id": 7753,
                    "name": "Return",
                    "src": "9304:38:36"
                  }
                ],
                "id": 7754,
                "name": "Block",
                "src": "9294:55:36"
              }
            ],
            "id": 7755,
            "name": "FunctionDefinition",
            "src": "9214:135:36"
          }
        ],
        "id": 7756,
        "name": "ContractDefinition",
        "src": "753:8598:36"
      }
    ],
    "id": 7757,
    "name": "SourceUnit",
    "src": "33:9319:36"
  },
  "compiler": {
    "name": "solc",
    "version": "0.7.6+commit.7338295f.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.1",
  "updatedAt": "2021-06-03T23:56:22.377Z",
  "devdoc": {
    "details": "Library for managing https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive types. Sets have the following properties: - Elements are added, removed, and checked for existence in constant time (O(1)). - Elements are enumerated in O(n). No guarantees are made on the ordering. ``` contract Example {     // Add the library methods     using EnumerableSet for EnumerableSet.AddressSet;     // Declare a set state variable     EnumerableSet.AddressSet private mySet; } ``` As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`) and `uint256` (`UintSet`) are supported.",
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}