{
  "manifestVersion": "3.2",
  "admin": {
    "address": "0x07aA73f07CB86608309a25a41bb02455296ED28B",
    "txHash": "0x1aad0fc81017a4a12ce168c08ef50e97ed9ccd713a209b0fee0bebf894c646b3"
  },
  "proxies": [
    {
      "address": "0x8795608346Eb475E42e69F1281008AEAa522479D",
      "txHash": "0x626662cdb0902646dd70d3ef50abb00c12614d8e572b175f2e45a40a73d4954e",
      "kind": "transparent"
    }
  ],
  "impls": {
    "0d797e2700f6709b90e0002137bd5fafa5a5728f405046d27d3e8bc86468034c": {
      "address": "0x03fBB4F0D28f27c33b99F1b80aF679F20cb5E159",
      "txHash": "0x29e5822d8e44151228816dcf989fb50c9940c163f8eb884393acf4391daf6462",
      "layout": {
        "solcVersion": "0.8.12",
        "storage": [
          {
            "label": "_initialized",
            "offset": 0,
            "slot": "0",
            "type": "t_uint8",
            "contract": "Initializable",
            "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:62",
            "retypedFrom": "bool"
          },
          {
            "label": "_initializing",
            "offset": 1,
            "slot": "0",
            "type": "t_bool",
            "contract": "Initializable",
            "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:67"
          },
          {
            "label": "__gap",
            "offset": 0,
            "slot": "1",
            "type": "t_array(t_uint256)50_storage",
            "contract": "ContextUpgradeable",
            "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:36"
          },
          {
            "label": "__gap",
            "offset": 0,
            "slot": "51",
            "type": "t_array(t_uint256)50_storage",
            "contract": "ERC165Upgradeable",
            "src": "@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol:41"
          },
          {
            "label": "_name",
            "offset": 0,
            "slot": "101",
            "type": "t_string_storage",
            "contract": "ERC721Upgradeable",
            "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:25"
          },
          {
            "label": "_symbol",
            "offset": 0,
            "slot": "102",
            "type": "t_string_storage",
            "contract": "ERC721Upgradeable",
            "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:28"
          },
          {
            "label": "_owners",
            "offset": 0,
            "slot": "103",
            "type": "t_mapping(t_uint256,t_address)",
            "contract": "ERC721Upgradeable",
            "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:31"
          },
          {
            "label": "_balances",
            "offset": 0,
            "slot": "104",
            "type": "t_mapping(t_address,t_uint256)",
            "contract": "ERC721Upgradeable",
            "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:34"
          },
          {
            "label": "_tokenApprovals",
            "offset": 0,
            "slot": "105",
            "type": "t_mapping(t_uint256,t_address)",
            "contract": "ERC721Upgradeable",
            "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:37"
          },
          {
            "label": "_operatorApprovals",
            "offset": 0,
            "slot": "106",
            "type": "t_mapping(t_address,t_mapping(t_address,t_bool))",
            "contract": "ERC721Upgradeable",
            "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:40"
          },
          {
            "label": "__gap",
            "offset": 0,
            "slot": "107",
            "type": "t_array(t_uint256)44_storage",
            "contract": "ERC721Upgradeable",
            "src": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol:514"
          },
          {
            "label": "_collectionRolesCounter",
            "offset": 0,
            "slot": "151",
            "type": "t_mapping(t_enum(CollectionRoles)3958,t_uint256)",
            "contract": "FleekAccessControl",
            "src": "contracts/FleekAccessControl.sol:58"
          },
          {
            "label": "_collectionRoles",
            "offset": 0,
            "slot": "152",
            "type": "t_mapping(t_enum(CollectionRoles)3958,t_mapping(t_address,t_bool))",
            "contract": "FleekAccessControl",
            "src": "contracts/FleekAccessControl.sol:63"
          },
          {
            "label": "_tokenRolesVersion",
            "offset": 0,
            "slot": "153",
            "type": "t_mapping(t_uint256,t_uint256)",
            "contract": "FleekAccessControl",
            "src": "contracts/FleekAccessControl.sol:70"
          },
          {
            "label": "_tokenRoles",
            "offset": 0,
            "slot": "154",
            "type": "t_mapping(t_uint256,t_mapping(t_uint256,t_mapping(t_enum(TokenRoles)3960,t_mapping(t_address,t_bool))))",
            "contract": "FleekAccessControl",
            "src": "contracts/FleekAccessControl.sol:75"
          },
          {
            "label": "__gap",
            "offset": 0,
            "slot": "155",
            "type": "t_array(t_uint256)49_storage",
            "contract": "FleekAccessControl",
            "src": "contracts/FleekAccessControl.sol:178"
          },
          {
            "label": "_paused",
            "offset": 0,
            "slot": "204",
            "type": "t_bool",
            "contract": "FleekPausable",
            "src": "contracts/FleekPausable.sol:23"
          },
          {
            "label": "_canPause",
            "offset": 1,
            "slot": "204",
            "type": "t_bool",
            "contract": "FleekPausable",
            "src": "contracts/FleekPausable.sol:24"
          },
          {
            "label": "__gap",
            "offset": 0,
            "slot": "205",
            "type": "t_array(t_uint256)49_storage",
            "contract": "FleekPausable",
            "src": "contracts/FleekPausable.sol:133"
          },
          {
            "label": "_billings",
            "offset": 0,
            "slot": "254",
            "type": "t_mapping(t_enum(Billing)4925,t_uint256)",
            "contract": "FleekBilling",
            "src": "contracts/FleekBilling.sol:31"
          },
          {
            "label": "__gap",
            "offset": 0,
            "slot": "255",
            "type": "t_array(t_uint256)49_storage",
            "contract": "FleekBilling",
            "src": "contracts/FleekBilling.sol:81"
          },
          {
            "label": "_accessPoints",
            "offset": 0,
            "slot": "304",
            "type": "t_mapping(t_string_memory_ptr,t_struct(AccessPoint)4457_storage)",
            "contract": "FleekAccessPoints",
            "src": "contracts/FleekAccessPoints.sol:64"
          },
          {
            "label": "_autoApproval",
            "offset": 0,
            "slot": "305",
            "type": "t_mapping(t_uint256,t_bool)",
            "contract": "FleekAccessPoints",
            "src": "contracts/FleekAccessPoints.sol:66"
          },
          {
            "label": "__gap",
            "offset": 0,
            "slot": "306",
            "type": "t_array(t_uint256)49_storage",
            "contract": "FleekAccessPoints",
            "src": "contracts/FleekAccessPoints.sol:211"
          },
          {
            "label": "_appIds",
            "offset": 0,
            "slot": "355",
            "type": "t_uint256",
            "contract": "FleekERC721",
            "src": "contracts/FleekERC721.sol:51"
          },
          {
            "label": "_apps",
            "offset": 0,
            "slot": "356",
            "type": "t_mapping(t_uint256,t_struct(Token)6538_storage)",
            "contract": "FleekERC721",
            "src": "contracts/FleekERC721.sol:52"
          },
          {
            "label": "_tokenVerifier",
            "offset": 0,
            "slot": "357",
            "type": "t_mapping(t_uint256,t_address)",
            "contract": "FleekERC721",
            "src": "contracts/FleekERC721.sol:53"
          }
        ],
        "types": {
          "t_address": {
            "label": "address",
            "numberOfBytes": "20"
          },
          "t_array(t_uint256)44_storage": {
            "label": "uint256[44]",
            "numberOfBytes": "1408"
          },
          "t_array(t_uint256)49_storage": {
            "label": "uint256[49]",
            "numberOfBytes": "1568"
          },
          "t_array(t_uint256)50_storage": {
            "label": "uint256[50]",
            "numberOfBytes": "1600"
          },
          "t_bool": {
            "label": "bool",
            "numberOfBytes": "1"
          },
          "t_enum(AccessPointCreationStatus)4443": {
            "label": "enum FleekAccessPoints.AccessPointCreationStatus",
            "members": [
              "DRAFT",
              "APPROVED",
              "REJECTED",
              "REMOVED"
            ],
            "numberOfBytes": "1"
          },
          "t_enum(Billing)4925": {
            "label": "enum FleekBilling.Billing",
            "members": [
              "Mint",
              "AddAccessPoint"
            ],
            "numberOfBytes": "1"
          },
          "t_enum(CollectionRoles)3958": {
            "label": "enum FleekAccessControl.CollectionRoles",
            "members": [
              "Owner",
              "Verifier"
            ],
            "numberOfBytes": "1"
          },
          "t_enum(TokenRoles)3960": {
            "label": "enum FleekAccessControl.TokenRoles",
            "members": [
              "Controller"
            ],
            "numberOfBytes": "1"
          },
          "t_mapping(t_address,t_bool)": {
            "label": "mapping(address => bool)",
            "numberOfBytes": "32"
          },
          "t_mapping(t_address,t_mapping(t_address,t_bool))": {
            "label": "mapping(address => mapping(address => bool))",
            "numberOfBytes": "32"
          },
          "t_mapping(t_address,t_uint256)": {
            "label": "mapping(address => uint256)",
            "numberOfBytes": "32"
          },
          "t_mapping(t_enum(Billing)4925,t_uint256)": {
            "label": "mapping(enum FleekBilling.Billing => uint256)",
            "numberOfBytes": "32"
          },
          "t_mapping(t_enum(CollectionRoles)3958,t_mapping(t_address,t_bool))": {
            "label": "mapping(enum FleekAccessControl.CollectionRoles => mapping(address => bool))",
            "numberOfBytes": "32"
          },
          "t_mapping(t_enum(CollectionRoles)3958,t_uint256)": {
            "label": "mapping(enum FleekAccessControl.CollectionRoles => uint256)",
            "numberOfBytes": "32"
          },
          "t_mapping(t_enum(TokenRoles)3960,t_mapping(t_address,t_bool))": {
            "label": "mapping(enum FleekAccessControl.TokenRoles => mapping(address => bool))",
            "numberOfBytes": "32"
          },
          "t_mapping(t_string_memory_ptr,t_struct(AccessPoint)4457_storage)": {
            "label": "mapping(string => struct FleekAccessPoints.AccessPoint)",
            "numberOfBytes": "32"
          },
          "t_mapping(t_uint256,t_address)": {
            "label": "mapping(uint256 => address)",
            "numberOfBytes": "32"
          },
          "t_mapping(t_uint256,t_bool)": {
            "label": "mapping(uint256 => bool)",
            "numberOfBytes": "32"
          },
          "t_mapping(t_uint256,t_mapping(t_enum(TokenRoles)3960,t_mapping(t_address,t_bool)))": {
            "label": "mapping(uint256 => mapping(enum FleekAccessControl.TokenRoles => mapping(address => bool)))",
            "numberOfBytes": "32"
          },
          "t_mapping(t_uint256,t_mapping(t_uint256,t_mapping(t_enum(TokenRoles)3960,t_mapping(t_address,t_bool))))": {
            "label": "mapping(uint256 => mapping(uint256 => mapping(enum FleekAccessControl.TokenRoles => mapping(address => bool))))",
            "numberOfBytes": "32"
          },
          "t_mapping(t_uint256,t_struct(Build)6518_storage)": {
            "label": "mapping(uint256 => struct IERCX.Build)",
            "numberOfBytes": "32"
          },
          "t_mapping(t_uint256,t_struct(Token)6538_storage)": {
            "label": "mapping(uint256 => struct IERCX.Token)",
            "numberOfBytes": "32"
          },
          "t_mapping(t_uint256,t_uint256)": {
            "label": "mapping(uint256 => uint256)",
            "numberOfBytes": "32"
          },
          "t_string_memory_ptr": {
            "label": "string",
            "numberOfBytes": "32"
          },
          "t_string_storage": {
            "label": "string",
            "numberOfBytes": "32"
          },
          "t_struct(AccessPoint)4457_storage": {
            "label": "struct FleekAccessPoints.AccessPoint",
            "members": [
              {
                "label": "tokenId",
                "type": "t_uint256",
                "offset": 0,
                "slot": "0"
              },
              {
                "label": "score",
                "type": "t_uint256",
                "offset": 0,
                "slot": "1"
              },
              {
                "label": "contentVerified",
                "type": "t_bool",
                "offset": 0,
                "slot": "2"
              },
              {
                "label": "nameVerified",
                "type": "t_bool",
                "offset": 1,
                "slot": "2"
              },
              {
                "label": "owner",
                "type": "t_address",
                "offset": 2,
                "slot": "2"
              },
              {
                "label": "status",
                "type": "t_enum(AccessPointCreationStatus)4443",
                "offset": 22,
                "slot": "2"
              }
            ],
            "numberOfBytes": "96"
          },
          "t_struct(Build)6518_storage": {
            "label": "struct IERCX.Build",
            "members": [
              {
                "label": "commitHash",
                "type": "t_string_storage",
                "offset": 0,
                "slot": "0"
              },
              {
                "label": "gitRepository",
                "type": "t_string_storage",
                "offset": 0,
                "slot": "1"
              }
            ],
            "numberOfBytes": "64"
          },
          "t_struct(Token)6538_storage": {
            "label": "struct IERCX.Token",
            "members": [
              {
                "label": "name",
                "type": "t_string_storage",
                "offset": 0,
                "slot": "0"
              },
              {
                "label": "description",
                "type": "t_string_storage",
                "offset": 0,
                "slot": "1"
              },
              {
                "label": "externalURL",
                "type": "t_string_storage",
                "offset": 0,
                "slot": "2"
              },
              {
                "label": "ENS",
                "type": "t_string_storage",
                "offset": 0,
                "slot": "3"
              },
              {
                "label": "logo",
                "type": "t_string_storage",
                "offset": 0,
                "slot": "4"
              },
              {
                "label": "color",
                "type": "t_uint24",
                "offset": 0,
                "slot": "5"
              },
              {
                "label": "currentBuild",
                "type": "t_uint256",
                "offset": 0,
                "slot": "6"
              },
              {
                "label": "builds",
                "type": "t_mapping(t_uint256,t_struct(Build)6518_storage)",
                "offset": 0,
                "slot": "7"
              }
            ],
            "numberOfBytes": "256"
          },
          "t_uint24": {
            "label": "uint24",
            "numberOfBytes": "3"
          },
          "t_uint256": {
            "label": "uint256",
            "numberOfBytes": "32"
          },
          "t_uint8": {
            "label": "uint8",
            "numberOfBytes": "1"
          }
        }
      }
    }
  }
}
