{
    "Function": "supportsInterface",
    "File": "contracts/lib/openzeppelin-contracts/contracts/governance/Governor.sol",
    "Parent Contracts": [
        "contracts/lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol",
        "contracts/lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol",
        "contracts/lib/openzeppelin-contracts/contracts/governance/IGovernor.sol",
        "contracts/lib/openzeppelin-contracts/contracts/utils/cryptography/draft-EIP712.sol",
        "contracts/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol",
        "contracts/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol",
        "contracts/lib/openzeppelin-contracts/contracts/utils/Context.sol"
    ],
    "High-Level Calls": [],
    "Internal Calls": [
        "supportsInterface",
        "type()",
        "type()",
        "type()"
    ],
    "Library Calls": [],
    "Low-Level Calls": [],
    "Code": "function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC165) returns (bool) {\n        // In addition to the current interfaceId, also support previous version of the interfaceId that did not\n        // include the castVoteWithReasonAndParams() function as standard\n        return\n            interfaceId ==\n            (type(IGovernor).interfaceId ^\n                this.castVoteWithReasonAndParams.selector ^\n                this.castVoteWithReasonAndParamsBySig.selector ^\n                this.getVotesWithParams.selector) ||\n            interfaceId == type(IGovernor).interfaceId ||\n            interfaceId == type(IERC1155Receiver).interfaceId ||\n            super.supportsInterface(interfaceId);\n    }"
}