{
  "compiler": {
    "version": "0.8.27+commit.40a35a09"
  },
  "language": "Solidity",
  "output": {
    "abi": [
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "target",
            "type": "address"
          }
        ],
        "type": "error",
        "name": "AddressEmptyCode"
      },
      {
        "inputs": [
          {
            "internalType": "uint256[2]",
            "name": "",
            "type": "uint256[2]"
          }
        ],
        "type": "error",
        "name": "AlreadyRegistered"
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "implementation",
            "type": "address"
          }
        ],
        "type": "error",
        "name": "ERC1967InvalidImplementation"
      },
      {
        "inputs": [],
        "type": "error",
        "name": "ERC1967NonPayable"
      },
      {
        "inputs": [],
        "type": "error",
        "name": "FailedCall"
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "addr",
            "type": "address"
          }
        ],
        "type": "error",
        "name": "IdentityNotRegistered"
      },
      {
        "inputs": [],
        "type": "error",
        "name": "InvalidInitialization"
      },
      {
        "inputs": [],
        "type": "error",
        "name": "NotInitializing"
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "owner",
            "type": "address"
          }
        ],
        "type": "error",
        "name": "OwnableInvalidOwner"
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "account",
            "type": "address"
          }
        ],
        "type": "error",
        "name": "OwnableUnauthorizedAccount"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "utxo",
            "type": "uint256"
          }
        ],
        "type": "error",
        "name": "UTXOAlreadyOwned"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "utxo",
            "type": "uint256"
          }
        ],
        "type": "error",
        "name": "UTXOAlreadySpent"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "maxAllowed",
            "type": "uint256"
          }
        ],
        "type": "error",
        "name": "UTXOArrayTooLarge"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "utxo",
            "type": "uint256"
          }
        ],
        "type": "error",
        "name": "UTXODuplicate"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "utxo",
            "type": "uint256"
          }
        ],
        "type": "error",
        "name": "UTXONotMinted"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "root",
            "type": "uint256"
          }
        ],
        "type": "error",
        "name": "UTXORootNotFound"
      },
      {
        "inputs": [],
        "type": "error",
        "name": "UUPSUnauthorizedCallContext"
      },
      {
        "inputs": [
          {
            "internalType": "bytes32",
            "name": "slot",
            "type": "bytes32"
          }
        ],
        "type": "error",
        "name": "UUPSUnsupportedProxiableUUID"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "maxAllowed",
            "type": "uint256"
          }
        ],
        "type": "error",
        "name": "WithdrawArrayTooLarge"
      },
      {
        "inputs": [
          {
            "internalType": "uint256[2]",
            "name": "publicKey",
            "type": "uint256[2]",
            "indexed": false
          }
        ],
        "type": "event",
        "name": "IdentityRegistered",
        "anonymous": false
      },
      {
        "inputs": [
          {
            "internalType": "uint64",
            "name": "version",
            "type": "uint64",
            "indexed": false
          }
        ],
        "type": "event",
        "name": "Initialized",
        "anonymous": false
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "previousOwner",
            "type": "address",
            "indexed": true
          },
          {
            "internalType": "address",
            "name": "newOwner",
            "type": "address",
            "indexed": true
          }
        ],
        "type": "event",
        "name": "OwnershipTransferred",
        "anonymous": false
      },
      {
        "inputs": [
          {
            "internalType": "uint256[]",
            "name": "outputs",
            "type": "uint256[]",
            "indexed": false
          },
          {
            "internalType": "address",
            "name": "submitter",
            "type": "address",
            "indexed": true
          },
          {
            "internalType": "bytes",
            "name": "data",
            "type": "bytes",
            "indexed": false
          }
        ],
        "type": "event",
        "name": "UTXOMint",
        "anonymous": false
      },
      {
        "inputs": [
          {
            "internalType": "uint256[]",
            "name": "inputs",
            "type": "uint256[]",
            "indexed": false
          },
          {
            "internalType": "uint256[]",
            "name": "outputs",
            "type": "uint256[]",
            "indexed": false
          },
          {
            "internalType": "uint256",
            "name": "encryptionNonce",
            "type": "uint256",
            "indexed": false
          },
          {
            "internalType": "uint256[2]",
            "name": "ecdhPublicKey",
            "type": "uint256[2]",
            "indexed": false
          },
          {
            "internalType": "uint256[]",
            "name": "encryptedValues",
            "type": "uint256[]",
            "indexed": false
          },
          {
            "internalType": "address",
            "name": "submitter",
            "type": "address",
            "indexed": true
          },
          {
            "internalType": "bytes",
            "name": "data",
            "type": "bytes",
            "indexed": false
          }
        ],
        "type": "event",
        "name": "UTXOTransferWithEncryptedValues",
        "anonymous": false
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "implementation",
            "type": "address",
            "indexed": true
          }
        ],
        "type": "event",
        "name": "Upgraded",
        "anonymous": false
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "UPGRADE_INTERFACE_VERSION",
        "outputs": [
          {
            "internalType": "string",
            "name": "",
            "type": "string"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "contract Groth16Verifier_CheckHashesValue",
            "name": "_depositVerifier",
            "type": "address"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "__ZetoFungible_init"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "amount",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "utxo",
            "type": "uint256"
          },
          {
            "internalType": "struct Commonlib.Proof",
            "name": "proof",
            "type": "tuple",
            "components": [
              {
                "internalType": "uint256[2]",
                "name": "pA",
                "type": "uint256[2]"
              },
              {
                "internalType": "uint256[2][2]",
                "name": "pB",
                "type": "uint256[2][2]"
              },
              {
                "internalType": "uint256[2]",
                "name": "pC",
                "type": "uint256[2]"
              }
            ]
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "_deposit"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "amount",
            "type": "uint256"
          },
          {
            "internalType": "uint256[]",
            "name": "nullifiers",
            "type": "uint256[]"
          },
          {
            "internalType": "uint256",
            "name": "output",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "root",
            "type": "uint256"
          },
          {
            "internalType": "struct Commonlib.Proof",
            "name": "proof",
            "type": "tuple",
            "components": [
              {
                "internalType": "uint256[2]",
                "name": "pA",
                "type": "uint256[2]"
              },
              {
                "internalType": "uint256[2][2]",
                "name": "pB",
                "type": "uint256[2][2]"
              },
              {
                "internalType": "uint256[2]",
                "name": "pC",
                "type": "uint256[2]"
              }
            ]
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "_withdrawWithNullifiers"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "amount",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "utxo",
            "type": "uint256"
          },
          {
            "internalType": "struct Commonlib.Proof",
            "name": "proof",
            "type": "tuple",
            "components": [
              {
                "internalType": "uint256[2]",
                "name": "pA",
                "type": "uint256[2]"
              },
              {
                "internalType": "uint256[2][2]",
                "name": "pB",
                "type": "uint256[2][2]"
              },
              {
                "internalType": "uint256[2]",
                "name": "pC",
                "type": "uint256[2]"
              }
            ]
          },
          {
            "internalType": "bytes",
            "name": "data",
            "type": "bytes"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "deposit"
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "getIdentitiesRoot",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "",
            "type": "uint256"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "getRoot",
        "outputs": [
          {
            "internalType": "uint256",
            "name": "",
            "type": "uint256"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "initialOwner",
            "type": "address"
          },
          {
            "internalType": "contract Groth16Verifier_AnonEncNullifierKyc",
            "name": "_verifier",
            "type": "address"
          },
          {
            "internalType": "contract Groth16Verifier_CheckHashesValue",
            "name": "_depositVerifier",
            "type": "address"
          },
          {
            "internalType": "contract Groth16Verifier_CheckNullifierValue",
            "name": "_withdrawVerifier",
            "type": "address"
          },
          {
            "internalType": "contract Groth16Verifier_AnonEncNullifierKycBatch",
            "name": "_batchVerifier",
            "type": "address"
          },
          {
            "internalType": "contract Groth16Verifier_CheckNullifierValueBatch",
            "name": "_batchWithdrawVerifier",
            "type": "address"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "initialize"
      },
      {
        "inputs": [
          {
            "internalType": "uint256[2]",
            "name": "publicKey",
            "type": "uint256[2]"
          }
        ],
        "stateMutability": "view",
        "type": "function",
        "name": "isRegistered",
        "outputs": [
          {
            "internalType": "bool",
            "name": "",
            "type": "bool"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "struct Commonlib.Proof",
            "name": "proof",
            "type": "tuple",
            "components": [
              {
                "internalType": "uint256[2]",
                "name": "pA",
                "type": "uint256[2]"
              },
              {
                "internalType": "uint256[2][2]",
                "name": "pB",
                "type": "uint256[2][2]"
              },
              {
                "internalType": "uint256[2]",
                "name": "pC",
                "type": "uint256[2]"
              }
            ]
          },
          {
            "internalType": "address",
            "name": "delegate",
            "type": "address"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "lockProof"
      },
      {
        "inputs": [
          {
            "internalType": "uint256[]",
            "name": "utxos",
            "type": "uint256[]"
          },
          {
            "internalType": "bytes",
            "name": "data",
            "type": "bytes"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "mint"
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "owner",
        "outputs": [
          {
            "internalType": "address",
            "name": "",
            "type": "address"
          }
        ]
      },
      {
        "inputs": [],
        "stateMutability": "view",
        "type": "function",
        "name": "proxiableUUID",
        "outputs": [
          {
            "internalType": "bytes32",
            "name": "",
            "type": "bytes32"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "uint256[2]",
            "name": "publicKey",
            "type": "uint256[2]"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "register"
      },
      {
        "inputs": [],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "renounceOwnership"
      },
      {
        "inputs": [
          {
            "internalType": "contract IERC20",
            "name": "_erc20",
            "type": "address"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "setERC20"
      },
      {
        "inputs": [
          {
            "internalType": "uint256[]",
            "name": "nullifiers",
            "type": "uint256[]"
          },
          {
            "internalType": "uint256[]",
            "name": "outputs",
            "type": "uint256[]"
          },
          {
            "internalType": "uint256",
            "name": "root",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "encryptionNonce",
            "type": "uint256"
          },
          {
            "internalType": "uint256[2]",
            "name": "ecdhPublicKey",
            "type": "uint256[2]"
          },
          {
            "internalType": "uint256[]",
            "name": "encryptedValues",
            "type": "uint256[]"
          },
          {
            "internalType": "struct Commonlib.Proof",
            "name": "proof",
            "type": "tuple",
            "components": [
              {
                "internalType": "uint256[2]",
                "name": "pA",
                "type": "uint256[2]"
              },
              {
                "internalType": "uint256[2][2]",
                "name": "pB",
                "type": "uint256[2][2]"
              },
              {
                "internalType": "uint256[2]",
                "name": "pC",
                "type": "uint256[2]"
              }
            ]
          },
          {
            "internalType": "bytes",
            "name": "data",
            "type": "bytes"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "transfer",
        "outputs": [
          {
            "internalType": "bool",
            "name": "",
            "type": "bool"
          }
        ]
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "newOwner",
            "type": "address"
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "transferOwnership"
      },
      {
        "inputs": [
          {
            "internalType": "address",
            "name": "newImplementation",
            "type": "address"
          },
          {
            "internalType": "bytes",
            "name": "data",
            "type": "bytes"
          }
        ],
        "stateMutability": "payable",
        "type": "function",
        "name": "upgradeToAndCall"
      },
      {
        "inputs": [
          {
            "internalType": "uint256",
            "name": "amount",
            "type": "uint256"
          },
          {
            "internalType": "uint256[]",
            "name": "nullifiers",
            "type": "uint256[]"
          },
          {
            "internalType": "uint256",
            "name": "output",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "root",
            "type": "uint256"
          },
          {
            "internalType": "struct Commonlib.Proof",
            "name": "proof",
            "type": "tuple",
            "components": [
              {
                "internalType": "uint256[2]",
                "name": "pA",
                "type": "uint256[2]"
              },
              {
                "internalType": "uint256[2][2]",
                "name": "pB",
                "type": "uint256[2][2]"
              },
              {
                "internalType": "uint256[2]",
                "name": "pC",
                "type": "uint256[2]"
              }
            ]
          }
        ],
        "stateMutability": "nonpayable",
        "type": "function",
        "name": "withdraw"
      }
    ],
    "devdoc": {
      "kind": "dev",
      "methods": {
        "isRegistered(uint256[2])": {
          "details": "returns whether the given public key is registered",
          "params": {
            "publicKey": "The Babyjubjub public key to check"
          },
          "returns": {
            "_0": "bool whether the given public key is included in the registry"
          }
        },
        "owner()": {
          "details": "Returns the address of the current owner."
        },
        "proxiableUUID()": {
          "details": "Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."
        },
        "renounceOwnership()": {
          "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."
        },
        "transfer(uint256[],uint256[],uint256,uint256,uint256[2],uint256[],(uint256[2],uint256[2][2],uint256[2]),bytes)": {
          "details": "the main function of the contract, which transfers values from one account (represented by Babyjubjub public keys)      to one or more receiver accounts (also represented by Babyjubjub public keys). One of the two nullifiers may be zero      if the transaction only needs one UTXO to be spent. Equally one of the two outputs may be zero if the transaction      only needs to create one new UTXO.",
          "params": {
            "nullifiers": "Array of nullifiers that are secretly bound to UTXOs to be spent by the transaction.",
            "outputs": "Array of new UTXOs to generate, for future transactions to spend.",
            "proof": "A zero knowledge proof that the submitter is authorized to spend the inputs, and      that the outputs are valid in terms of obeying mass conservation rules. Emits a {UTXOTransferWithEncryptedValues} event.",
            "root": "The root hash of the Sparse Merkle Tree that contains the nullifiers."
          }
        },
        "transferOwnership(address)": {
          "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
        },
        "upgradeToAndCall(address,bytes)": {
          "custom:oz-upgrades-unsafe-allow-reachable": "delegatecall",
          "details": "Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."
        }
      },
      "version": 1
    },
    "userdoc": {
      "kind": "user",
      "methods": {},
      "version": 1
    }
  },
  "settings": {
    "remappings": [
      "@iden3/=node_modules/@iden3/",
      "@openzeppelin/=node_modules/@openzeppelin/",
      "eth-gas-reporter/=node_modules/eth-gas-reporter/",
      "forge-std/=lib/forge-std/src/",
      "hardhat/=node_modules/hardhat/"
    ],
    "optimizer": {
      "enabled": true,
      "runs": 10000
    },
    "metadata": {
      "bytecodeHash": "ipfs"
    },
    "compilationTarget": {
      "contracts/zeto_anon_enc_nullifier_kyc.sol": "Zeto_AnonEncNullifierKyc"
    },
    "evmVersion": "cancun",
    "libraries": {},
    "viaIR": true
  },
  "sources": {
    "contracts/lib/common.sol": {
      "keccak256": "0x41a6c108b95ddee950755303e6e59bceca9c55d518cc7e4ca6e8f5badfe490cb",
      "urls": [
        "bzz-raw://c6865168ec6355ee85c6ce11d17c7c1bc57baec729de7cdbb9d6e8d860f70957",
        "dweb:/ipfs/QmXysx5oVKrSzoAvhzQCQs5bx1p5T5LeuJW6DtvgT7pXnV"
      ],
      "license": "Apache-2.0"
    },
    "contracts/lib/interfaces/izeto_base.sol": {
      "keccak256": "0x6829d76623badc1a0acd73795c7cefbcacf786429cd0d12444d07a1e0c940cb9",
      "urls": [
        "bzz-raw://6af5c33bf1664f565ab34aadf603fc8c0713551e0413284f09069db2e12ad152",
        "dweb:/ipfs/QmfCHhUyz5B4uhEBLXkKFRLUz61Pn6PaX9Pfwjo27jFyVN"
      ],
      "license": "Apache-2.0"
    },
    "contracts/lib/interfaces/izeto_encrypted.sol": {
      "keccak256": "0x41c7b49560c51da8de517d307b807367d1fd14b3433024093f7e5fd213212130",
      "urls": [
        "bzz-raw://8c6beb422938118a3684d0e5fe8320a648ce05df412d370c6fcba62079a88b34",
        "dweb:/ipfs/QmZxUtNgbPHRYWTE9jtgJcP8HxGeYEgEFZBdgJbj7DC3bc"
      ],
      "license": "Apache-2.0"
    },
    "contracts/lib/registry.sol": {
      "keccak256": "0x040b7a4e1e0f7ca22e59e8be24548afd1ed1322a5acdd18193d4cf5e98d8c7de",
      "urls": [
        "bzz-raw://b0c617332af5e0a0fb92d8492b1472a59c735bb4d6f0d56be43a58e3bd36791c",
        "dweb:/ipfs/Qme1FSyTGwvrdAQ82m9SoPXWeLgnaQECBU9xfGSR5zkGS6"
      ],
      "license": "Apache-2.0"
    },
    "contracts/lib/verifier_anon_enc_nullifier_kyc.sol": {
      "keccak256": "0x355e5656d7e36d4d436bb90c14ae878d5dbca3089e3f9cbb4bc44977bcb21e51",
      "urls": [
        "bzz-raw://09c554a18c0e0284f9d0a97f1cfa5e1e0c1d95987bbcd1c1a0d1f58fb4ab323c",
        "dweb:/ipfs/QmRYzmLpXAf5dubYFwD7RmBG6wSduivHErs6C1DzCt955J"
      ],
      "license": "GPL-3.0"
    },
    "contracts/lib/verifier_anon_enc_nullifier_kyc_batch.sol": {
      "keccak256": "0x3caecd42023bdb9f7a6597fd18af0a069ba15ce01654867902276b4bfbd0d167",
      "urls": [
        "bzz-raw://c880134aba8e62e16c880fc36ecad143878ebd117ef7be3c86f820fe577db521",
        "dweb:/ipfs/QmeroFnDSHqWmg5JqVpecqtxZWzwPRKMUgnDXenoguK77v"
      ],
      "license": "GPL-3.0"
    },
    "contracts/lib/verifier_check_hashes_value.sol": {
      "keccak256": "0x26fe5872592dd81fce74ba053455b6fc0d4d3f61eb49b089fea3977da5592520",
      "urls": [
        "bzz-raw://64b6b7225355b6d39b4daec59248ccbbdfd38cfdd47ed864f46ba85d6370d9ca",
        "dweb:/ipfs/QmdFGUMMeGKmHRBrvzHjm2xf4v7shmpsp91CsHXytLLVXz"
      ],
      "license": "GPL-3.0"
    },
    "contracts/lib/verifier_check_nullifier_value.sol": {
      "keccak256": "0x3c0a37c3b844cc95ff55441db084dc6c0d747537676d6327e6c8bddf538ad447",
      "urls": [
        "bzz-raw://ee1d06a4788a884448806882828fde9f448b64e8df5842ac35cd5a0e92cb6d04",
        "dweb:/ipfs/QmSTMaxtLJDrPBQJvbfr7n2iAKfXH1X2xEHUj8iH9omf1w"
      ],
      "license": "GPL-3.0"
    },
    "contracts/lib/verifier_check_nullifier_value_batch.sol": {
      "keccak256": "0x9060f313e27164f7177893a0670545d137a8d277e2cf9972f11c6009d23b58aa",
      "urls": [
        "bzz-raw://f49fedc4d4d1f390a27927349d1e714322522e116d47501247231e297321075b",
        "dweb:/ipfs/QmawNtBp7TnfMyHxFek5WxBEQpzWmSBcACzjCJDPunrvJH"
      ],
      "license": "GPL-3.0"
    },
    "contracts/lib/zeto_common.sol": {
      "keccak256": "0xbf5b94d9177dc9b3d59a95b7424a20bb1869dfb7df948053b4b59d75495da6ae",
      "urls": [
        "bzz-raw://e845a92c277c61f4374f04333e31cac9dc1cba5e36913f78ecc72eb74ec7ddc8",
        "dweb:/ipfs/QmPyyEzEy4q9wcff9d65yD3pmZHCxXRTYEHHjcGCSwcztf"
      ],
      "license": "Apache-2.0"
    },
    "contracts/lib/zeto_fungible.sol": {
      "keccak256": "0xea8b1e381a2a71f93f502980a2d15f828c4e0577f5b55ccb19e5643368e613bc",
      "urls": [
        "bzz-raw://6fb967615097e25885cc44d22487b368f7435b5bd0f46417f8e4038bcd984ebd",
        "dweb:/ipfs/QmSdRLMf81HcyvTgU3cgw9nxvkjxVJGkYmAbdWQ2CDebYg"
      ],
      "license": "Apache-2.0"
    },
    "contracts/lib/zeto_fungible_withdraw_nullifier.sol": {
      "keccak256": "0x31a7597b3bae1a55b87e5c924f6c9bbe9e5fc23d5834aa949f8f99b47f93b157",
      "urls": [
        "bzz-raw://8a51d5fb01deb69936063ce1fdba969298591ac8229e9e2d3db4b9824d21e681",
        "dweb:/ipfs/QmPea91goek1BMKtnkgfAcsiyraeMfaCHR1WXxvRyaQdBt"
      ],
      "license": "Apache-2.0"
    },
    "contracts/lib/zeto_nullifier.sol": {
      "keccak256": "0xf5243e20f729812b926a474fb1ef00be26635f0a563d5a63a3b1acf73171e355",
      "urls": [
        "bzz-raw://de7adde3324d1bf06c20ff9ce50f4c9d9d13ea7e0cdf1492dbe348c195946238",
        "dweb:/ipfs/QmVf86nXLLw6XW4tM7dHqTePq3i4FfJZnHvs3MefFXCDec"
      ],
      "license": "Apache-2.0"
    },
    "contracts/zeto_anon_enc_nullifier_kyc.sol": {
      "keccak256": "0x9993b0ec57703d9db075ed733a1432e89993514b52aa88602bab62234ac16c43",
      "urls": [
        "bzz-raw://544f588ecdeed6d20f733d0c34ccdd805c1d660fe2f8ed54fe9b72050deff523",
        "dweb:/ipfs/QmWRgwDLcVw1GirbsqWaDZvNMzvvAFvtCmipujjSimVPNj"
      ],
      "license": "Apache-2.0"
    },
    "node_modules/@iden3/contracts/lib/ArrayUtils.sol": {
      "keccak256": "0x7c5e3f9c56e8e80811db1f1336a1e37c657947f44687451e5a1d6bd12e9e6141",
      "urls": [
        "bzz-raw://c9497d8d8fe9fc2b2c9d61bbdfa5a4eb881ddf8948bbc099024e5026fadd6846",
        "dweb:/ipfs/Qmczkk8FLcxpM91ZAWpixowBEdq64YVLke3ZqVDt3NkYiT"
      ],
      "license": "GPL-3.0"
    },
    "node_modules/@iden3/contracts/lib/Poseidon.sol": {
      "keccak256": "0x1776fa64b19c5e2f42d1449537ea5e911d7f067ee5d0409ca7daf7319853381f",
      "urls": [
        "bzz-raw://516c8ae954d17c4c5e4366249b93e85660f5887640c8141c6912831a42b89539",
        "dweb:/ipfs/QmVMZW5sFUmb3Bgypmfn19z1cNUWhubYXWFthbFruopZNc"
      ],
      "license": "GPL-3.0"
    },
    "node_modules/@iden3/contracts/lib/SmtLib.sol": {
      "keccak256": "0x9c67be9b7d045ded48a63bd827a5bdc3f2255c68f9640bae41eef074640f1779",
      "urls": [
        "bzz-raw://1f2b2452120f5b2b2c5589fcf58183f7d800d3f8a2c202ebdc3b69815bcfb2aa",
        "dweb:/ipfs/QmbnvLnfJaKL3eqt1CfXofsiLJ7G3nYTawUEqGpCazWbrQ"
      ],
      "license": "GPL-3.0"
    },
    "node_modules/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol": {
      "keccak256": "0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a",
      "urls": [
        "bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6",
        "dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": {
      "keccak256": "0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05",
      "urls": [
        "bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08",
        "dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol": {
      "keccak256": "0x574a7451e42724f7de29e2855c392a8a5020acd695169466a18459467d719d63",
      "urls": [
        "bzz-raw://5bc189f63b639ee173dd7b6fecc39baf7113bf161776aea22b34c57fdd1872ec",
        "dweb:/ipfs/QmZAf2VtjDLRULqjJkde6LNsxAg12tUqpPqgUQQZbAjgtZ"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": {
      "keccak256": "0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397",
      "urls": [
        "bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9",
        "dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/access/Ownable.sol": {
      "keccak256": "0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb",
      "urls": [
        "bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6",
        "dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol": {
      "keccak256": "0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486",
      "urls": [
        "bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d",
        "dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol": {
      "keccak256": "0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d",
      "urls": [
        "bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196",
        "dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol": {
      "keccak256": "0x8decfa54cec979c824b044b8128cd91d713f72c71fd7dfa54974624d8c949898",
      "urls": [
        "bzz-raw://271f914261a19d87117a777e0924ada545c16191ef9b00cc40b0134fc14ebc70",
        "dweb:/ipfs/QmdvVNWHGHQrGGPonZJs5NuzTevTjZRM2zayKrDJf7WBA2"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol": {
      "keccak256": "0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c",
      "urls": [
        "bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa",
        "dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol": {
      "keccak256": "0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7",
      "urls": [
        "bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db",
        "dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/utils/Address.sol": {
      "keccak256": "0xaaa1d17c1129b127a4a401db2fbd72960e2671474be3d08cae71ccdc42f7624c",
      "urls": [
        "bzz-raw://cb2f27cd3952aa667e198fba0d9b7bcec52fbb12c16f013c25fe6fb52b29cc0e",
        "dweb:/ipfs/QmeuohBFoeyDPZA9JNCTEDz3VBfBD4EABWuWXVhHAuEpKR"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/utils/Arrays.sol": {
      "keccak256": "0x55a4fdb408e3db950b48f4a6131e538980be8c5f48ee59829d92d66477140cd6",
      "urls": [
        "bzz-raw://3e1ad251e692822ce1494135a4ecb5b97c19b90aa82418fd2959ce32017953fd",
        "dweb:/ipfs/QmT6N7mf6heZYhY2BAQ5kwZp9o3SXzGVdkMqUszx67WRDN"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/utils/Comparators.sol": {
      "keccak256": "0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58",
      "urls": [
        "bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd",
        "dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/utils/Context.sol": {
      "keccak256": "0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2",
      "urls": [
        "bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12",
        "dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/utils/Errors.sol": {
      "keccak256": "0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123",
      "urls": [
        "bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf",
        "dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/utils/Panic.sol": {
      "keccak256": "0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a",
      "urls": [
        "bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a",
        "dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/utils/SlotDerivation.sol": {
      "keccak256": "0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26",
      "urls": [
        "bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2",
        "dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/utils/StorageSlot.sol": {
      "keccak256": "0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97",
      "urls": [
        "bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b",
        "dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/utils/math/Math.sol": {
      "keccak256": "0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6",
      "urls": [
        "bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3",
        "dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"
      ],
      "license": "MIT"
    },
    "node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol": {
      "keccak256": "0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54",
      "urls": [
        "bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8",
        "dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"
      ],
      "license": "MIT"
    }
  },
  "version": 1
}