@aztec/l1-artifacts 0.0.1-commit.f146247c → 0.0.1-commit.f1df4d2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/HonkVerifierBytecode.d.ts +2 -2
- package/dest/HonkVerifierBytecode.d.ts.map +1 -1
- package/dest/HonkVerifierBytecode.js +1 -1
- package/l1-contracts/cache/solidity-files-cache.json +1 -1
- package/l1-contracts/foundry.toml +1 -1
- package/l1-contracts/generated/HonkVerifier.sol +65 -70
- package/l1-contracts/out/CoinIssuer.sol/CoinIssuer.json +1 -1
- package/l1-contracts/out/DateGatedRelayer.sol/DateGatedRelayer.json +1 -1
- package/l1-contracts/out/DeployAztecL1Contracts.s.sol/DeployAztecL1Contracts.json +1 -1
- package/l1-contracts/out/DeployAztecL1Contracts.t.sol/DeployAztecL1ContractsTest.json +1 -1
- package/l1-contracts/out/DeployRollupForUpgrade.s.sol/DeployRollupForUpgrade.json +1 -1
- package/l1-contracts/out/DeployRollupForUpgrade.t.sol/DeployRollupForUpgradeTest.json +1 -1
- package/l1-contracts/out/DeployRollupLib.sol/DeployRollupLib.json +1 -1
- package/l1-contracts/out/DeploymentConfiguration.sol/DeploymentConfiguration.json +1 -1
- package/l1-contracts/out/FeeAssetHandler.sol/FeeAssetHandler.json +1 -1
- package/l1-contracts/out/FlushRewarder.sol/FlushRewarder.json +1 -1
- package/l1-contracts/out/HonkVerifier.sol/BaseHonkVerifier.json +1 -1
- package/l1-contracts/out/HonkVerifier.sol/CommitmentSchemeLib.json +1 -1
- package/l1-contracts/out/HonkVerifier.sol/FrLib.json +1 -1
- package/l1-contracts/out/HonkVerifier.sol/Honk.json +1 -1
- package/l1-contracts/out/HonkVerifier.sol/HonkVerificationKey.json +1 -1
- package/l1-contracts/out/HonkVerifier.sol/HonkVerifier.json +1 -1
- package/l1-contracts/out/HonkVerifier.sol/IVerifier.json +1 -1
- package/l1-contracts/out/HonkVerifier.sol/RelationsLib.json +1 -1
- package/l1-contracts/out/HonkVerifier.sol/TranscriptLib.json +1 -1
- package/l1-contracts/out/IDateGatedRelayer.sol/IDateGatedRelayer.json +1 -1
- package/l1-contracts/out/IFlushRewarder.sol/IFlushRewarder.json +1 -1
- package/l1-contracts/out/IMintableERC20.sol/IMintableERC20.json +1 -1
- package/l1-contracts/out/ISlashFactory.sol/ISlashFactory.json +1 -1
- package/l1-contracts/out/InputsExtractor.sol/InputsExtractor.json +1 -1
- package/l1-contracts/out/MockERC20.sol/MockERC20.json +1 -1
- package/l1-contracts/out/MockERC721.sol/MockERC721.json +1 -1
- package/l1-contracts/out/MockFeeJuicePortal.sol/MockFeeJuicePortal.json +1 -1
- package/l1-contracts/out/MockVerifier.sol/MockVerifier.json +1 -1
- package/l1-contracts/out/MockZKPassportVerifier.sol/MockZKPassportVerifier.json +1 -1
- package/l1-contracts/out/MultiAdder.sol/MultiAdder.json +1 -1
- package/l1-contracts/out/RegisterNewRollupVersionPayload.sol/RegisterNewRollupVersionPayload.json +1 -1
- package/l1-contracts/out/Registry.sol/Registry.json +1 -1
- package/l1-contracts/out/RewardDistributor.sol/RewardDistributor.json +1 -1
- package/l1-contracts/out/RollupConfiguration.sol/RollupConfiguration.json +1 -1
- package/l1-contracts/out/SlashFactory.sol/SlashFactory.json +1 -1
- package/l1-contracts/out/SlashPayload.sol/SlashPayload.json +1 -1
- package/l1-contracts/out/StakingAssetHandler.sol/StakingAssetHandler.json +1 -1
- package/l1-contracts/out/StdError.sol/stdError.json +1 -1
- package/l1-contracts/out/TestERC20.sol/TestERC20.json +1 -1
- package/l1-contracts/out/ZKPassportHelper.sol/ZKPassportHelper.json +1 -1
- package/l1-contracts/out/ZKPassportRootVerifier.sol/ZKPassportRootVerifier.json +1 -1
- package/l1-contracts/out/ZKPassportSubVerifier.sol/ZKPassportSubVerifier.json +1 -1
- package/l1-contracts/out/build-info/{bcca871da7c17f8e.json → 6b707081690bc1a6.json} +1 -1
- package/l1-contracts/out/build-info/{33d81a4b1b05e4ba.json → 8103921c6e825236.json} +1 -1
- package/l1-contracts/out/shouting.t.sol/ScreamAndShoutTest.json +1 -1
- package/l1-contracts/script/deploy/DeployRollupForUpgrade.s.sol +17 -1
- package/l1-contracts/test/script/DeployAztecL1Contracts.t.sol +61 -0
- package/l1-contracts/test/script/DeployRollupForUpgrade.t.sol +112 -0
- package/package.json +1 -1
- package/l1-contracts/solc-0.8.30 +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"abi":[{"type":"constructor","inputs":[{"name":"_admin","type":"address","internalType":"address"},{"name":"_guardian","type":"address","internalType":"address"},{"name":"_rootRegistry","type":"address","internalType":"contract IRootRegistry"}],"stateMutability":"nonpayable"},{"type":"function","name":"addHelper","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"},{"name":"newHelper","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addSubVerifier","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"},{"name":"subVerifier","type":"address","internalType":"contract ZKPassportSubVerifier"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"config","inputs":[{"name":"key","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getHelper","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getSubVerifier","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"guardian","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"helperCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"helpers","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"contract ZKPassportHelper"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"removeHelper","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeSubVerifier","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rootRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRootRegistry"}],"stateMutability":"view"},{"type":"function","name":"setGuardian","inputs":[{"name":"newGuardian","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"subverifierCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"subverifiers","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"contract ZKPassportSubVerifier"}],"stateMutability":"view"},{"type":"function","name":"transferAdmin","inputs":[{"name":"newAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateConfig","inputs":[{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateHelper","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"},{"name":"newHelper","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateSubVerifier","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"},{"name":"newSubVerifier","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verify","inputs":[{"name":"params","type":"tuple","internalType":"struct ProofVerificationParams","components":[{"name":"version","type":"bytes32","internalType":"bytes32"},{"name":"proofVerificationData","type":"tuple","internalType":"struct ProofVerificationData","components":[{"name":"vkeyHash","type":"bytes32","internalType":"bytes32"},{"name":"proof","type":"bytes","internalType":"bytes"},{"name":"publicInputs","type":"bytes32[]","internalType":"bytes32[]"}]},{"name":"committedInputs","type":"bytes","internalType":"bytes"},{"name":"serviceConfig","type":"tuple","internalType":"struct ServiceConfig","components":[{"name":"validityPeriodInSeconds","type":"uint256","internalType":"uint256"},{"name":"domain","type":"string","internalType":"string"},{"name":"scope","type":"string","internalType":"string"},{"name":"devMode","type":"bool","internalType":"bool"}]}]}],"outputs":[{"name":"valid","type":"bool","internalType":"bool"},{"name":"uniqueIdentifier","type":"bytes32","internalType":"bytes32"},{"name":"helper","type":"address","internalType":"contract ZKPassportHelper"}],"stateMutability":"view"},{"type":"event","name":"AdminUpdated","inputs":[{"name":"oldAdmin","type":"address","indexed":true,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ConfigUpdated","inputs":[{"name":"key","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"oldValue","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"newValue","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"GuardianUpdated","inputs":[{"name":"oldGuardian","type":"address","indexed":true,"internalType":"address"},{"name":"newGuardian","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"HelperAdded","inputs":[{"name":"version","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"helper","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"HelperRemoved","inputs":[{"name":"version","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"helper","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"HelperUpdated","inputs":[{"name":"version","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"oldHelper","type":"address","indexed":true,"internalType":"address"},{"name":"newHelper","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PausedStatusChanged","inputs":[{"name":"paused","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"RootRegistryUpdated","inputs":[{"name":"oldRootRegistry","type":"address","indexed":true,"internalType":"address"},{"name":"newRootRegistry","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RootVerifierDeployed","inputs":[{"name":"admin","type":"address","indexed":false,"internalType":"address"},{"name":"guardian","type":"address","indexed":false,"internalType":"address"},{"name":"rootRegistry","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SubVerifierAdded","inputs":[{"name":"version","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"subVerifier","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SubVerifierRemoved","inputs":[{"name":"version","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"subVerifier","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SubVerifierUpdated","inputs":[{"name":"version","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"oldSubVerifier","type":"address","indexed":true,"internalType":"address"},{"name":"newSubVerifier","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040516114fc3803806114fc83398101604081905261002e91610125565b6001600160a01b0383166100885760405162461bcd60e51b815260206004820152601c60248201527f41646d696e2063616e6e6f74206265207a65726f206164647265737300000000604482015260640160405180910390fd5b5f80546001600160a01b038581166001600160a01b0319928316811790935560018054868316908416811790915560028054928616929093168217909255604080519384526020840192909252908201527f49958336430bdf59d989fb74186fd9ed78af011655d4ffe62fa2fbe5193edbda9060600160405180910390a150505061016f565b6001600160a01b0381168114610122575f5ffd5b50565b5f5f5f60608486031215610137575f5ffd5b83516101428161010e565b60208501519093506101538161010e565b60408501519092506101648161010e565b809150509250925092565b6113808061017c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610148575f3560e01c8063889eba3b116100bf578063ba5f3f9d11610079578063ba5f3f9d1461030e578063c961ba7e14610321578063cc718f7614610338578063da0ff2c614610357578063f264980714610360578063f851a44014610388575f5ffd5b8063889eba3b146102875780638a0dac4a1461029a5780639bfefbfd146102ad578063a7ad58bf146102c0578063b3c83d99146102e8578063b96b161c146102fb575f5ffd5b8063578bd92111610110578063578bd921146101d45780635c975abb1461020d5780635dd41f2f146102315780636f9076381461025957806375829def1461026c5780638456cb591461027f575f5ffd5b8063079154391461014c5780633f4ba83a14610161578063452a932014610169578063492f34fb1461019957806352741df5146101c1575b5f5ffd5b61015f61015a366004610ef0565b61039a565b005b61015f61049f565b60015461017c906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61017c6101a7366004610f1e565b60036020525f90815260409020546001600160a01b031681565b61015f6101cf366004610ef0565b61050b565b6101e76101e2366004610f35565b610687565b60408051931515845260208401929092526001600160a01b031690820152606001610190565b60015461022190600160a01b900460ff1681565b6040519015158152602001610190565b61017c61023f366004610f1e565b5f908152600560205260409020546001600160a01b031690565b61015f610267366004610f1e565b6107b4565b61015f61027a366004610f73565b610895565b61015f610963565b61015f610295366004610f8e565b610a23565b61015f6102a8366004610f73565b610aa1565b61015f6102bb366004610f1e565b610b1b565b61017c6102ce366004610f1e565b60056020525f90815260409020546001600160a01b031681565b61015f6102f6366004610ef0565b610c2c565b60025461017c906001600160a01b031681565b61015f61031c366004610ef0565b610d7d565b61032a60045481565b604051908152602001610190565b61032a610346366004610f1e565b60076020525f908152604090205481565b61032a60065481565b61017c61036e366004610f1e565b5f908152600360205260409020546001600160a01b031690565b5f5461017c906001600160a01b031681565b5f546001600160a01b031633146103cc5760405162461bcd60e51b81526004016103c390610fae565b60405180910390fd5b816103e95760405162461bcd60e51b81526004016103c390610fe5565b6001600160a01b03811661040f5760405162461bcd60e51b81526004016103c390611015565b5f828152600360205260409020546001600160a01b03166104425760405162461bcd60e51b81526004016103c390611057565b5f8281526003602052604080822080546001600160a01b031981166001600160a01b038681169182179093559251911692839186917fa643a1aa11f9709b2990b31638a0b368d6d0c3b8f025a98a3249fea2bd5821d791a4505050565b5f546001600160a01b031633146104c85760405162461bcd60e51b81526004016103c390610fae565b6001805460ff60a01b191690556040515f81527f9a506b30e47f3823b09f67e4c0dfa5c3d8023b71825b7ceaa97677129128c9c5906020015b60405180910390a1565b5f546001600160a01b031633146105345760405162461bcd60e51b81526004016103c390610fae565b6001600160a01b03811661058a5760405162461bcd60e51b815260206004820152601d60248201527f48656c7065722063616e6e6f74206265207a65726f206164647265737300000060448201526064016103c3565b816105a75760405162461bcd60e51b81526004016103c390610fe5565b5f828152600560205260409020546001600160a01b0316156106155760405162461bcd60e51b815260206004820152602160248201527f48656c70657220616c72656164792065786973747320666f722076657273696f6044820152603760f91b60648201526084016103c3565b5f82815260056020526040812080546001600160a01b0319166001600160a01b0384161790556006805491610649836110ac565b90915550506040516001600160a01b0382169083907fe3eccbb854b4a5c161cda43f1e76981a22f8c4a4190a1e1b44bb8c69039b85b2905f90a35050565b5f5f5f600160149054906101000a900460ff16156106e75760405162461bcd60e51b815260206004820152601760248201527f526f6f742076657269666965722069732070617573656400000000000000000060448201526064016103c3565b83355f908152600360205260409020546001600160a01b03168061071d5760405162461bcd60e51b81526004016103c390611057565b600254604051637446a77360e11b81526001600160a01b038381169263e88d4ee692610751929091169089906004016111ce565b6040805180830381865afa15801561076b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078f9190611309565b95355f9081526005602052604090205490966001600160a01b03909116945092505050565b5f546001600160a01b031633146107dd5760405162461bcd60e51b81526004016103c390610fae565b806107fa5760405162461bcd60e51b81526004016103c390610fe5565b5f818152600360205260409020546001600160a01b03168061082e5760405162461bcd60e51b81526004016103c390611057565b5f82815260036020526040812080546001600160a01b0319169055600480549161085783611335565b90915550506040516001600160a01b0382169083907f2632c7adc4cecbf41bb3ee7c156aae99b0bcd9da3efa5b9315f77dcdf6ef3e66905f90a35050565b5f546001600160a01b031633146108be5760405162461bcd60e51b81526004016103c390610fae565b6001600160a01b0381166109145760405162461bcd60e51b815260206004820152601c60248201527f41646d696e2063616e6e6f74206265207a65726f20616464726573730000000060448201526064016103c3565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b9190a35050565b5f546001600160a01b031633148061098557506001546001600160a01b031633145b6109e05760405162461bcd60e51b815260206004820152602660248201527f4e6f7420617574686f72697a65643a2061646d696e206f7220677561726469616044820152656e206f6e6c7960d01b60648201526084016103c3565b6001805460ff60a01b1916600160a01b1781556040519081527f9a506b30e47f3823b09f67e4c0dfa5c3d8023b71825b7ceaa97677129128c9c590602001610501565b5f546001600160a01b03163314610a4c5760405162461bcd60e51b81526004016103c390610fae565b5f8281526007602090815260409182902080549084905582518181529182018490529184917fbb4f63ec43349b7ec7c292d3e97704824bcdd2d758200521ad62d3e9a127f782910160405180910390a2505050565b5f546001600160a01b03163314610aca5760405162461bcd60e51b81526004016103c390610fae565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f064d28d3d3071c5cbc271a261c10c2f0f0d9e319390397101aa0eb23c6bad909905f90a35050565b5f546001600160a01b03163314610b445760405162461bcd60e51b81526004016103c390610fae565b80610b615760405162461bcd60e51b81526004016103c390610fe5565b5f818152600560205260409020546001600160a01b031680610bc55760405162461bcd60e51b815260206004820152601c60248201527f48656c706572206e6f7420666f756e6420666f722076657273696f6e0000000060448201526064016103c3565b5f82815260056020526040812080546001600160a01b03191690556006805491610bee83611335565b90915550506040516001600160a01b0382169083907f6a7d5ce7bf32942d5ee1a06318777e6921ab7173478635304ac93845d7de61e0905f90a35050565b5f546001600160a01b03163314610c555760405162461bcd60e51b81526004016103c390610fae565b6001600160a01b038116610c7b5760405162461bcd60e51b81526004016103c390611015565b81610c985760405162461bcd60e51b81526004016103c390610fe5565b5f828152600360205260409020546001600160a01b031615610d0b5760405162461bcd60e51b815260206004820152602660248201527f537562766572696669657220616c72656164792065786973747320666f72207660448201526532b939b4b7b760d11b60648201526084016103c3565b5f82815260036020526040812080546001600160a01b0319166001600160a01b0384161790556004805491610d3f836110ac565b90915550506040516001600160a01b0382169083907fa65f9939af3939f730447054d525d5526c5f9e75ccea14966e1de1876631f404905f90a35050565b5f546001600160a01b03163314610da65760405162461bcd60e51b81526004016103c390610fae565b81610dc35760405162461bcd60e51b81526004016103c390610fe5565b6001600160a01b038116610e195760405162461bcd60e51b815260206004820152601d60248201527f48656c7065722063616e6e6f74206265207a65726f206164647265737300000060448201526064016103c3565b5f828152600560205260409020546001600160a01b0316610e7c5760405162461bcd60e51b815260206004820152601c60248201527f48656c706572206e6f7420666f756e6420666f722076657273696f6e0000000060448201526064016103c3565b5f8281526005602052604080822080546001600160a01b031981166001600160a01b038681169182179093559251911692839186917fb9393e6de8fe36cc235a7d08d2fa004db98bbb2a2be241250df83a276bc0d62e91a4505050565b6001600160a01b0381168114610eed575f5ffd5b50565b5f5f60408385031215610f01575f5ffd5b823591506020830135610f1381610ed9565b809150509250929050565b5f60208284031215610f2e575f5ffd5b5035919050565b5f60208284031215610f45575f5ffd5b813567ffffffffffffffff811115610f5b575f5ffd5b820160808185031215610f6c575f5ffd5b9392505050565b5f60208284031215610f83575f5ffd5b8135610f6c81610ed9565b5f5f60408385031215610f9f575f5ffd5b50508035926020909101359150565b6020808252601a908201527f4e6f7420617574686f72697a65643a2061646d696e206f6e6c79000000000000604082015260600190565b60208082526016908201527556657273696f6e2063616e6e6f74206265207a65726f60501b604082015260600190565b60208082526022908201527f53756276657269666965722063616e6e6f74206265207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526021908201527f5375627665726966696572206e6f7420666f756e6420666f722076657273696f6040820152603760f91b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b5f600182016110bd576110bd611098565b5060010190565b5f5f8335601e198436030181126110d9575f5ffd5b830160208101925035905067ffffffffffffffff8111156110f8575f5ffd5b803603821315611106575f5ffd5b9250929050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8235607e19833603018112611149575f5ffd5b90910192915050565b8015158114610eed575f5ffd5b803582525f61117160208301836110c4565b6080602086015261118660808601828461110d565b91505061119660408401846110c4565b85830360408701526111a983828461110d565b9250505060608301356111bb81611152565b8015156060860152508091505092915050565b6001600160a01b0383168152604060208083018290528335918301919091525f9083013536849003605e19018112611204575f5ffd5b608060608401528301803560c084015261122160208201826110c4565b606060e08601526112376101208601828461110d565b9150506040820135601e19833603018112611250575f5ffd5b60209201918201913567ffffffffffffffff81111561126d575f5ffd5b8060051b80360384131561127f575f5ffd5b85830360bf19016101008701528183526001600160fb1b038211156112a2575f5ffd5b8084602085013780830193505050506112be60408501856110c4565b601f198584030160808601526112d860208401828461110d565b925050506112e96060850185611135565b838203603f190160a08501526112ff828261115f565b9695505050505050565b5f5f6040838503121561131a575f5ffd5b825161132581611152565b6020939093015192949293505050565b5f8161134357611343611098565b505f19019056fea2646970667358221220110ddc2970eed253c519394329b0ffb80fde268921fbca2b2308198d944643f864736f6c634300081e0033","sourceMap":"681:9071:9:-:0;;;2414:300;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2504:20:9;;2496:61;;;;-1:-1:-1;;;2496:61:9;;898:2:172;2496:61:9;;;880:21:172;937:2;917:18;;;910:30;976;956:18;;;949:58;1024:18;;2496:61:9;;;;;;;;2563:5;:14;;-1:-1:-1;;;;;2563:14:9;;;-1:-1:-1;;;;;;2563:14:9;;;;;;;;-1:-1:-1;2583:20:9;;;;;;;;;;;;;2609:12;:28;;;;;;;;;;;;;;2648:61;;;1255:51:172;;;1337:2;1322:18;;1315:60;;;;1391:18;;;1384:60;2648:61:9;;1243:2:172;1228:18;2648:61:9;;;;;;;2414:300;;;681:9071;;14:131:172;-1:-1:-1;;;;;89:31:172;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:541::-;260:6;268;276;329:2;317:9;308:7;304:23;300:32;297:52;;;345:1;342;335:12;297:52;377:9;371:16;396:31;421:5;396:31;:::i;:::-;496:2;481:18;;475:25;446:5;;-1:-1:-1;509:33:172;475:25;509:33;:::i;:::-;613:2;598:18;;592:25;561:7;;-1:-1:-1;626:33:172;592:25;626:33;:::i;:::-;678:7;668:17;;;150:541;;;;;:::o;1053:397::-;681:9071:9;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610148575f3560e01c8063889eba3b116100bf578063ba5f3f9d11610079578063ba5f3f9d1461030e578063c961ba7e14610321578063cc718f7614610338578063da0ff2c614610357578063f264980714610360578063f851a44014610388575f5ffd5b8063889eba3b146102875780638a0dac4a1461029a5780639bfefbfd146102ad578063a7ad58bf146102c0578063b3c83d99146102e8578063b96b161c146102fb575f5ffd5b8063578bd92111610110578063578bd921146101d45780635c975abb1461020d5780635dd41f2f146102315780636f9076381461025957806375829def1461026c5780638456cb591461027f575f5ffd5b8063079154391461014c5780633f4ba83a14610161578063452a932014610169578063492f34fb1461019957806352741df5146101c1575b5f5ffd5b61015f61015a366004610ef0565b61039a565b005b61015f61049f565b60015461017c906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61017c6101a7366004610f1e565b60036020525f90815260409020546001600160a01b031681565b61015f6101cf366004610ef0565b61050b565b6101e76101e2366004610f35565b610687565b60408051931515845260208401929092526001600160a01b031690820152606001610190565b60015461022190600160a01b900460ff1681565b6040519015158152602001610190565b61017c61023f366004610f1e565b5f908152600560205260409020546001600160a01b031690565b61015f610267366004610f1e565b6107b4565b61015f61027a366004610f73565b610895565b61015f610963565b61015f610295366004610f8e565b610a23565b61015f6102a8366004610f73565b610aa1565b61015f6102bb366004610f1e565b610b1b565b61017c6102ce366004610f1e565b60056020525f90815260409020546001600160a01b031681565b61015f6102f6366004610ef0565b610c2c565b60025461017c906001600160a01b031681565b61015f61031c366004610ef0565b610d7d565b61032a60045481565b604051908152602001610190565b61032a610346366004610f1e565b60076020525f908152604090205481565b61032a60065481565b61017c61036e366004610f1e565b5f908152600360205260409020546001600160a01b031690565b5f5461017c906001600160a01b031681565b5f546001600160a01b031633146103cc5760405162461bcd60e51b81526004016103c390610fae565b60405180910390fd5b816103e95760405162461bcd60e51b81526004016103c390610fe5565b6001600160a01b03811661040f5760405162461bcd60e51b81526004016103c390611015565b5f828152600360205260409020546001600160a01b03166104425760405162461bcd60e51b81526004016103c390611057565b5f8281526003602052604080822080546001600160a01b031981166001600160a01b038681169182179093559251911692839186917fa643a1aa11f9709b2990b31638a0b368d6d0c3b8f025a98a3249fea2bd5821d791a4505050565b5f546001600160a01b031633146104c85760405162461bcd60e51b81526004016103c390610fae565b6001805460ff60a01b191690556040515f81527f9a506b30e47f3823b09f67e4c0dfa5c3d8023b71825b7ceaa97677129128c9c5906020015b60405180910390a1565b5f546001600160a01b031633146105345760405162461bcd60e51b81526004016103c390610fae565b6001600160a01b03811661058a5760405162461bcd60e51b815260206004820152601d60248201527f48656c7065722063616e6e6f74206265207a65726f206164647265737300000060448201526064016103c3565b816105a75760405162461bcd60e51b81526004016103c390610fe5565b5f828152600560205260409020546001600160a01b0316156106155760405162461bcd60e51b815260206004820152602160248201527f48656c70657220616c72656164792065786973747320666f722076657273696f6044820152603760f91b60648201526084016103c3565b5f82815260056020526040812080546001600160a01b0319166001600160a01b0384161790556006805491610649836110ac565b90915550506040516001600160a01b0382169083907fe3eccbb854b4a5c161cda43f1e76981a22f8c4a4190a1e1b44bb8c69039b85b2905f90a35050565b5f5f5f600160149054906101000a900460ff16156106e75760405162461bcd60e51b815260206004820152601760248201527f526f6f742076657269666965722069732070617573656400000000000000000060448201526064016103c3565b83355f908152600360205260409020546001600160a01b03168061071d5760405162461bcd60e51b81526004016103c390611057565b600254604051637446a77360e11b81526001600160a01b038381169263e88d4ee692610751929091169089906004016111ce565b6040805180830381865afa15801561076b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078f9190611309565b95355f9081526005602052604090205490966001600160a01b03909116945092505050565b5f546001600160a01b031633146107dd5760405162461bcd60e51b81526004016103c390610fae565b806107fa5760405162461bcd60e51b81526004016103c390610fe5565b5f818152600360205260409020546001600160a01b03168061082e5760405162461bcd60e51b81526004016103c390611057565b5f82815260036020526040812080546001600160a01b0319169055600480549161085783611335565b90915550506040516001600160a01b0382169083907f2632c7adc4cecbf41bb3ee7c156aae99b0bcd9da3efa5b9315f77dcdf6ef3e66905f90a35050565b5f546001600160a01b031633146108be5760405162461bcd60e51b81526004016103c390610fae565b6001600160a01b0381166109145760405162461bcd60e51b815260206004820152601c60248201527f41646d696e2063616e6e6f74206265207a65726f20616464726573730000000060448201526064016103c3565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b9190a35050565b5f546001600160a01b031633148061098557506001546001600160a01b031633145b6109e05760405162461bcd60e51b815260206004820152602660248201527f4e6f7420617574686f72697a65643a2061646d696e206f7220677561726469616044820152656e206f6e6c7960d01b60648201526084016103c3565b6001805460ff60a01b1916600160a01b1781556040519081527f9a506b30e47f3823b09f67e4c0dfa5c3d8023b71825b7ceaa97677129128c9c590602001610501565b5f546001600160a01b03163314610a4c5760405162461bcd60e51b81526004016103c390610fae565b5f8281526007602090815260409182902080549084905582518181529182018490529184917fbb4f63ec43349b7ec7c292d3e97704824bcdd2d758200521ad62d3e9a127f782910160405180910390a2505050565b5f546001600160a01b03163314610aca5760405162461bcd60e51b81526004016103c390610fae565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f064d28d3d3071c5cbc271a261c10c2f0f0d9e319390397101aa0eb23c6bad909905f90a35050565b5f546001600160a01b03163314610b445760405162461bcd60e51b81526004016103c390610fae565b80610b615760405162461bcd60e51b81526004016103c390610fe5565b5f818152600560205260409020546001600160a01b031680610bc55760405162461bcd60e51b815260206004820152601c60248201527f48656c706572206e6f7420666f756e6420666f722076657273696f6e0000000060448201526064016103c3565b5f82815260056020526040812080546001600160a01b03191690556006805491610bee83611335565b90915550506040516001600160a01b0382169083907f6a7d5ce7bf32942d5ee1a06318777e6921ab7173478635304ac93845d7de61e0905f90a35050565b5f546001600160a01b03163314610c555760405162461bcd60e51b81526004016103c390610fae565b6001600160a01b038116610c7b5760405162461bcd60e51b81526004016103c390611015565b81610c985760405162461bcd60e51b81526004016103c390610fe5565b5f828152600360205260409020546001600160a01b031615610d0b5760405162461bcd60e51b815260206004820152602660248201527f537562766572696669657220616c72656164792065786973747320666f72207660448201526532b939b4b7b760d11b60648201526084016103c3565b5f82815260036020526040812080546001600160a01b0319166001600160a01b0384161790556004805491610d3f836110ac565b90915550506040516001600160a01b0382169083907fa65f9939af3939f730447054d525d5526c5f9e75ccea14966e1de1876631f404905f90a35050565b5f546001600160a01b03163314610da65760405162461bcd60e51b81526004016103c390610fae565b81610dc35760405162461bcd60e51b81526004016103c390610fe5565b6001600160a01b038116610e195760405162461bcd60e51b815260206004820152601d60248201527f48656c7065722063616e6e6f74206265207a65726f206164647265737300000060448201526064016103c3565b5f828152600560205260409020546001600160a01b0316610e7c5760405162461bcd60e51b815260206004820152601c60248201527f48656c706572206e6f7420666f756e6420666f722076657273696f6e0000000060448201526064016103c3565b5f8281526005602052604080822080546001600160a01b031981166001600160a01b038681169182179093559251911692839186917fb9393e6de8fe36cc235a7d08d2fa004db98bbb2a2be241250df83a276bc0d62e91a4505050565b6001600160a01b0381168114610eed575f5ffd5b50565b5f5f60408385031215610f01575f5ffd5b823591506020830135610f1381610ed9565b809150509250929050565b5f60208284031215610f2e575f5ffd5b5035919050565b5f60208284031215610f45575f5ffd5b813567ffffffffffffffff811115610f5b575f5ffd5b820160808185031215610f6c575f5ffd5b9392505050565b5f60208284031215610f83575f5ffd5b8135610f6c81610ed9565b5f5f60408385031215610f9f575f5ffd5b50508035926020909101359150565b6020808252601a908201527f4e6f7420617574686f72697a65643a2061646d696e206f6e6c79000000000000604082015260600190565b60208082526016908201527556657273696f6e2063616e6e6f74206265207a65726f60501b604082015260600190565b60208082526022908201527f53756276657269666965722063616e6e6f74206265207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526021908201527f5375627665726966696572206e6f7420666f756e6420666f722076657273696f6040820152603760f91b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b5f600182016110bd576110bd611098565b5060010190565b5f5f8335601e198436030181126110d9575f5ffd5b830160208101925035905067ffffffffffffffff8111156110f8575f5ffd5b803603821315611106575f5ffd5b9250929050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8235607e19833603018112611149575f5ffd5b90910192915050565b8015158114610eed575f5ffd5b803582525f61117160208301836110c4565b6080602086015261118660808601828461110d565b91505061119660408401846110c4565b85830360408701526111a983828461110d565b9250505060608301356111bb81611152565b8015156060860152508091505092915050565b6001600160a01b0383168152604060208083018290528335918301919091525f9083013536849003605e19018112611204575f5ffd5b608060608401528301803560c084015261122160208201826110c4565b606060e08601526112376101208601828461110d565b9150506040820135601e19833603018112611250575f5ffd5b60209201918201913567ffffffffffffffff81111561126d575f5ffd5b8060051b80360384131561127f575f5ffd5b85830360bf19016101008701528183526001600160fb1b038211156112a2575f5ffd5b8084602085013780830193505050506112be60408501856110c4565b601f198584030160808601526112d860208401828461110d565b925050506112e96060850185611135565b838203603f190160a08501526112ff828261115f565b9695505050505050565b5f5f6040838503121561131a575f5ffd5b825161132581611152565b6020939093015192949293505050565b5f8161134357611343611098565b505f19019056fea2646970667358221220110ddc2970eed253c519394329b0ffb80fde268921fbca2b2308198d944643f864736f6c634300081e0033","sourceMap":"681:9071:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5964:529;;;;;;:::i;:::-;;:::i;:::-;;9650:100;;;:::i;741:23::-;;;;;-1:-1:-1;;;;;741:23:9;;;;;;-1:-1:-1;;;;;686:32:172;;;668:51;;656:2;641:18;741:23:9;;;;;;;;884:61;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;884:61:9;;;7056:416;;;;;;:::i;:::-;;:::i;3196:473::-;;;;;;:::i;:::-;;:::i;:::-;;;;1856:14:172;;1849:22;1831:41;;1903:2;1888:18;;1881:34;;;;-1:-1:-1;;;;;1951:32:172;1931:18;;;1924:60;1819:2;1804:18;3196:473:9;1609:381:172;768:18:9;;;;;-1:-1:-1;;;768:18:9;;;;;;;;;2160:14:172;;2153:22;2135:41;;2123:2;2108:18;768::9;1995:187:172;8806:111:9;;;;;;:::i;:::-;8865:7;8895:16;;;:7;:16;;;;;;-1:-1:-1;;;;;8895:16:9;;8806:111;5411:374;;;;;;:::i;:::-;;:::i;4123:229::-;;;;;;:::i;:::-;;:::i;9438:106::-;;;:::i;9034:181::-;;;;;;:::i;:::-;;:::i;4470:182::-;;;;;;:::i;:::-;;:::i;7584:329::-;;;;;;:::i;:::-;;:::i;1049:51::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1049:51:9;;;4821:473;;;;;;:::i;:::-;;:::i;821:33::-;;;;;-1:-1:-1;;;;;821:33:9;;;8077:459;;;;;;:::i;:::-;;:::i;993:31::-;;;;;;;;;3803:25:172;;;3791:2;3776:18;993:31:9;3657:177:172;1194:51:9;;;;;;:::i;:::-;;;;;;;;;;;;;;1143:26;;;;;;6778:121;;;;;;:::i;:::-;6842:7;6872:21;;;:12;:21;;;;;;-1:-1:-1;;;;;6872:21:9;;6778:121;717:20;;;;;-1:-1:-1;;;;;717:20:9;;;5964:529;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;;;;;;;;;6065:7;6057:56:::1;;;;-1:-1:-1::0;;;6057:56:9::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6127:28:9;::::1;6119:75;;;;-1:-1:-1::0;;;6119:75:9::1;;;;;;;:::i;:::-;6250:1;6216:21:::0;;;:12:::1;:21;::::0;;;;;-1:-1:-1;;;;;6216:21:9::1;6200:90;;;;-1:-1:-1::0;;;6200:90:9::1;;;;;;;:::i;:::-;6296:22;6329:21:::0;;;:12:::1;:21;::::0;;;;;;;-1:-1:-1;;;;;;6357:61:9;::::1;-1:-1:-1::0;;;;;6357:61:9;;::::1;::::0;;::::1;::::0;;;6429:59;;6329:21;::::1;::::0;;;;;6429:59:::1;::::0;::::1;6051:442;5964:529:::0;;:::o;9650:100::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;9694:6:::1;:14:::0;;-1:-1:-1;;;;9694:14:9::1;::::0;;9719:26:::1;::::0;-1:-1:-1;2135:41:172;;9719:26:9::1;::::0;2123:2:172;2108:18;9719:26:9::1;;;;;;;;9650:100::o:0;7056:416::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;-1:-1:-1;;;;;7144:23:9;::::1;7136:65;;;::::0;-1:-1:-1;;;7136:65:9;;5734:2:172;7136:65:9::1;::::0;::::1;5716:21:172::0;5773:2;5753:18;;;5746:30;5812:31;5792:18;;;5785:59;5861:18;;7136:65:9::1;5532:353:172::0;7136:65:9::1;7215:7:::0;7207:56:::1;;;;-1:-1:-1::0;;;7207:56:9::1;;;;;;;:::i;:::-;7314:1;7285:16:::0;;;:7:::1;:16;::::0;;;;;-1:-1:-1;;;;;7285:16:9::1;7277:39:::0;7269:85:::1;;;::::0;-1:-1:-1;;;7269:85:9;;6092:2:172;7269:85:9::1;::::0;::::1;6074:21:172::0;6131:2;6111:18;;;6104:30;6170:34;6150:18;;;6143:62;-1:-1:-1;;;6221:18:172;;;6214:31;6262:19;;7269:85:9::1;5890:397:172::0;7269:85:9::1;7360:16;::::0;;;:7:::1;:16;::::0;;;;:46;;-1:-1:-1;;;;;;7360:46:9::1;-1:-1:-1::0;;;;;7360:46:9;::::1;;::::0;;7412:11:::1;:13:::0;;;::::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;7436:31:9::1;::::0;-1:-1:-1;;;;;7436:31:9;::::1;::::0;7448:7;;7436:31:::1;::::0;;;::::1;7056:416:::0;;:::o;3196:473::-;3306:10;3318:24;3344:23;3963:6;;;;;;;;;;;3962:7;3954:43;;;;-1:-1:-1;;;3954:43:9;;6766:2:172;3954:43:9;;;6748:21:172;6805:2;6785:18;;;6778:30;6844:25;6824:18;;;6817:53;6887:18;;3954:43:9;6564:347:172;3954:43:9;3426:14;::::1;3377:33;3413:28:::0;;;:12:::1;:28;::::0;;;;;-1:-1:-1;;;;;3413:28:9::1;::::0;3447:80:::1;;;;-1:-1:-1::0;;;3447:80:9::1;;;;;;;:::i;:::-;3580:12;::::0;3561:40:::1;::::0;-1:-1:-1;;;3561:40:9;;-1:-1:-1;;;;;3561:18:9;;::::1;::::0;::::1;::::0;:40:::1;::::0;3580:12;;::::1;::::0;3594:6;;3561:40:::1;;;:::i;:::-;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3648:14:::0;::::1;3640:23;::::0;;;:7:::1;:23;::::0;;;;;3533:68;;-1:-1:-1;;;;;3640:23:9;;::::1;::::0;-1:-1:-1;3196:473:9;-1:-1:-1;;;3196:473:9:o;5411:374::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;5488:7;5480:56:::1;;;;-1:-1:-1::0;;;5480:56:9::1;;;;;;;:::i;:::-;5542:19;5572:21:::0;;;:12:::1;:21;::::0;;;;;-1:-1:-1;;;;;5572:21:9::1;::::0;5600:71:::1;;;;-1:-1:-1::0;;;5600:71:9::1;;;;;;;:::i;:::-;5684:21;::::0;;;:12:::1;:21;::::0;;;;5677:28;;-1:-1:-1;;;;;;5677:28:9::1;::::0;;5711:16:::1;:18:::0;;;::::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;5740:40:9::1;::::0;-1:-1:-1;;;;;5740:40:9;::::1;::::0;5759:7;;5740:40:::1;::::0;;;::::1;5474:311;5411:374:::0;:::o;4123:229::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;-1:-1:-1;;;;;4197:22:9;::::1;4189:63;;;::::0;-1:-1:-1;;;4189:63:9;;11847:2:172;4189:63:9::1;::::0;::::1;11829:21:172::0;11886:2;11866:18;;;11859:30;11925;11905:18;;;11898:58;11973:18;;4189:63:9::1;11645:352:172::0;4189:63:9::1;4258:16;4277:5:::0;;-1:-1:-1;;;;;4288:16:9;;::::1;-1:-1:-1::0;;;;;;4288:16:9;::::1;::::0;::::1;::::0;;4315:32:::1;::::0;4277:5;;;::::1;::::0;;;4315:32:::1;::::0;4258:16;4315:32:::1;4183:169;4123:229:::0;:::o;9438:106::-;3833:5;;-1:-1:-1;;;;;3833:5:9;3819:10;:19;;:45;;-1:-1:-1;3856:8:9;;-1:-1:-1;;;;;3856:8:9;3842:10;:22;3819:45;3811:96;;;;-1:-1:-1;;;3811:96:9;;12204:2:172;3811:96:9;;;12186:21:172;12243:2;12223:18;;;12216:30;12282:34;12262:18;;;12255:62;-1:-1:-1;;;12333:18:172;;;12326:36;12379:19;;3811:96:9;12002:402:172;3811:96:9;9499:4:::1;9490:13:::0;;-1:-1:-1;;;;9490:13:9::1;-1:-1:-1::0;;;9490:13:9::1;::::0;;9514:25:::1;::::0;2135:41:172;;;9514:25:9::1;::::0;2123:2:172;2108:18;9514:25:9::1;1995:187:172::0;9034:181:9;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;9109:16:::1;9128:11:::0;;;:6:::1;:11;::::0;;;;;;;;;;9145:19;;;;9175:35;;12583:25:172;;;12624:18;;;12617:34;;;9128:11:9;;;9175:35:::1;::::0;12556:18:172;9175:35:9::1;;;;;;;9103:112;9034:181:::0;;:::o;4470:182::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;4559:8:::1;::::0;;-1:-1:-1;;;;;4573:22:9;;::::1;-1:-1:-1::0;;;;;;4573:22:9;::::1;::::0;::::1;::::0;;;4606:41:::1;::::0;4559:8;::::1;::::0;4573:22;4559:8;;4606:41:::1;::::0;4537:19:::1;::::0;4606:41:::1;4531:121;4470:182:::0;:::o;7584:329::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;7656:7;7648:56:::1;;;;-1:-1:-1::0;;;7648:56:9::1;;;;;;;:::i;:::-;7710:14;7735:16:::0;;;:7:::1;:16;::::0;;;;;-1:-1:-1;;;;;7735:16:9::1;::::0;7758:61:::1;;;::::0;-1:-1:-1;;;7758:61:9;;12864:2:172;7758:61:9::1;::::0;::::1;12846:21:172::0;12903:2;12883:18;;;12876:30;12942;12922:18;;;12915:58;12990:18;;7758:61:9::1;12662:352:172::0;7758:61:9::1;7832:16;::::0;;;:7:::1;:16;::::0;;;;7825:23;;-1:-1:-1;;;;;;7825:23:9::1;::::0;;7854:11:::1;:13:::0;;;::::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;7878:30:9::1;::::0;-1:-1:-1;;;;;7878:30:9;::::1;::::0;7892:7;;7878:30:::1;::::0;;;::::1;7642:271;7584:329:::0;:::o;4821:473::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;-1:-1:-1;;;;;4930:34:9;::::1;4922:81;;;;-1:-1:-1::0;;;4922:81:9::1;;;;;;;:::i;:::-;5017:7:::0;5009:56:::1;;;;-1:-1:-1::0;;;5009:56:9::1;;;;;;;:::i;:::-;5121:1;5087:21:::0;;;:12:::1;:21;::::0;;;;;-1:-1:-1;;;;;5087:21:9::1;5079:44:::0;5071:95:::1;;;::::0;-1:-1:-1;;;5071:95:9;;13221:2:172;5071:95:9::1;::::0;::::1;13203:21:172::0;13260:2;13240:18;;;13233:30;13299:34;13279:18;;;13272:62;-1:-1:-1;;;13350:18:172;;;13343:36;13396:19;;5071:95:9::1;13019:402:172::0;5071:95:9::1;5172:21;::::0;;;:12:::1;:21;::::0;;;;:35;;-1:-1:-1;;;;;;5172:35:9::1;-1:-1:-1::0;;;;;5172:35:9;::::1;;::::0;;5213:16:::1;:18:::0;;;::::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;5242:47:9::1;::::0;-1:-1:-1;;;;;5242:47:9;::::1;::::0;5259:7;;5242:47:::1;::::0;;;::::1;4821:473:::0;;:::o;8077:459::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;8168:7;8160:56:::1;;;;-1:-1:-1::0;;;8160:56:9::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8230:23:9;::::1;8222:65;;;::::0;-1:-1:-1;;;8222:65:9;;5734:2:172;8222:65:9::1;::::0;::::1;5716:21:172::0;5773:2;5753:18;;;5746:30;5812:31;5792:18;;;5785:59;5861:18;;8222:65:9::1;5532:353:172::0;8222:65:9::1;8338:1;8309:16:::0;;;:7:::1;:16;::::0;;;;;-1:-1:-1;;;;;8309:16:9::1;8293:80;;;::::0;-1:-1:-1;;;8293:80:9;;12864:2:172;8293:80:9::1;::::0;::::1;12846:21:172::0;12903:2;12883:18;;;12876:30;12942;12922:18;;;12915:58;12990:18;;8293:80:9::1;12662:352:172::0;8293:80:9::1;8379:17;8407:16:::0;;;:7:::1;:16;::::0;;;;;;;-1:-1:-1;;;;;;8430:46:9;::::1;-1:-1:-1::0;;;;;8430:46:9;;::::1;::::0;;::::1;::::0;;;8487:44;;8407:16;::::1;::::0;;;;;8487:44:::1;::::0;::::1;8154:382;8077:459:::0;;:::o;14:131:172:-;-1:-1:-1;;;;;89:31:172;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:367::-;218:6;226;279:2;267:9;258:7;254:23;250:32;247:52;;;295:1;292;285:12;247:52;340:23;;;-1:-1:-1;439:2:172;424:18;;411:32;452:33;411:32;452:33;:::i;:::-;504:7;494:17;;;150:367;;;;;:::o;730:226::-;789:6;842:2;830:9;821:7;817:23;813:32;810:52;;;858:1;855;848:12;810:52;-1:-1:-1;903:23:172;;730:226;-1:-1:-1;730:226:172:o;1200:404::-;1303:6;1356:2;1344:9;1335:7;1331:23;1327:32;1324:52;;;1372:1;1369;1362:12;1324:52;1412:9;1399:23;1445:18;1437:6;1434:30;1431:50;;;1477:1;1474;1467:12;1431:50;1500:22;;1556:3;1538:16;;;1534:26;1531:46;;;1573:1;1570;1563:12;1531:46;1596:2;1200:404;-1:-1:-1;;;1200:404:172:o;2187:247::-;2246:6;2299:2;2287:9;2278:7;2274:23;2270:32;2267:52;;;2315:1;2312;2305:12;2267:52;2354:9;2341:23;2373:31;2398:5;2373:31;:::i;2439:346::-;2507:6;2515;2568:2;2556:9;2547:7;2543:23;2539:32;2536:52;;;2584:1;2581;2574:12;2536:52;-1:-1:-1;;2629:23:172;;;2749:2;2734:18;;;2721:32;;-1:-1:-1;2439:346:172:o;4021:350::-;4223:2;4205:21;;;4262:2;4242:18;;;4235:30;4301:28;4296:2;4281:18;;4274:56;4362:2;4347:18;;4021:350::o;4376:346::-;4578:2;4560:21;;;4617:2;4597:18;;;4590:30;-1:-1:-1;;;4651:2:172;4636:18;;4629:52;4713:2;4698:18;;4376:346::o;4727:398::-;4929:2;4911:21;;;4968:2;4948:18;;;4941:30;5007:34;5002:2;4987:18;;4980:62;-1:-1:-1;;;5073:2:172;5058:18;;5051:32;5115:3;5100:19;;4727:398::o;5130:397::-;5332:2;5314:21;;;5371:2;5351:18;;;5344:30;5410:34;5405:2;5390:18;;5383:62;-1:-1:-1;;;5476:2:172;5461:18;;5454:31;5517:3;5502:19;;5130:397::o;6292:127::-;6353:10;6348:3;6344:20;6341:1;6334:31;6384:4;6381:1;6374:15;6408:4;6405:1;6398:15;6424:135;6463:3;6484:17;;;6481:43;;6504:18;;:::i;:::-;-1:-1:-1;6551:1:172;6540:13;;6424:135::o;6916:500::-;6974:5;6981:6;7041:3;7028:17;7127:2;7123:7;7112:8;7096:14;7092:29;7088:43;7068:18;7064:68;7054:96;;7146:1;7143;7136:12;7054:96;7174:33;;7278:4;7265:18;;;-1:-1:-1;7226:21:172;;-1:-1:-1;7306:18:172;7295:30;;7292:50;;;7338:1;7335;7328:12;7292:50;7385:6;7369:14;7365:27;7358:5;7354:39;7351:59;;;7406:1;7403;7396:12;7351:59;6916:500;;;;;:::o;7421:266::-;7509:6;7504:3;7497:19;7561:6;7554:5;7547:4;7542:3;7538:14;7525:43;-1:-1:-1;7613:1:172;7588:16;;;7606:4;7584:27;;;7577:38;;;;7669:2;7648:15;;;-1:-1:-1;;7644:29:172;7635:39;;;7631:50;;7421:266::o;7692:299::-;7765:5;7824:3;7811:17;7910:3;7906:8;7895;7879:14;7875:29;7871:44;7851:18;7847:69;7837:97;;7930:1;7927;7920:12;7837:97;7952:33;;;;7692:299;-1:-1:-1;;7692:299:172:o;7996:118::-;8082:5;8075:13;8068:21;8061:5;8058:32;8048:60;;8104:1;8101;8094:12;8119:752;8227:5;8214:19;8209:3;8202:32;8184:3;8277:55;8326:4;8319:5;8315:16;8308:5;8277:55;:::i;:::-;8364:4;8357;8352:3;8348:14;8341:28;8390:69;8453:4;8448:3;8444:14;8430:12;8416;8390:69;:::i;:::-;8378:81;;;8506:55;8555:4;8548:5;8544:16;8537:5;8506:55;:::i;:::-;8603:3;8597:4;8593:14;8586:4;8581:3;8577:14;8570:38;8631:63;8689:4;8673:14;8657;8631:63;:::i;:::-;8617:77;;;;8742:4;8735:5;8731:16;8718:30;8757;8779:7;8757:30;:::i;:::-;8833:7;8826:15;8819:23;8812:4;8807:3;8803:14;8796:47;;8859:6;8852:13;;;8119:752;;;;:::o;8876:2312::-;-1:-1:-1;;;;;9141:32:172;;9123:51;;9210:2;9205;9190:18;;;9183:30;;;9254:20;;9290:18;;;9283:33;;;;-1:-1:-1;;9364:15:172;;9351:29;9431:14;9427:27;;;-1:-1:-1;;9423:41:172;9399:66;;9389:94;;9479:1;9476;9469:12;9389:94;9574:4;9569:2;9554:18;;9547:32;9507:31;;9624:21;;9676:3;9661:19;;9654:36;9733:57;9786:2;9773:16;;9507:31;9733:57;:::i;:::-;9827:2;9821:3;9810:9;9806:19;9799:31;9853:74;9922:3;9911:9;9907:19;9893:12;9879;9853:74;:::i;:::-;9839:88;;;9990:2;9981:7;9977:16;9964:30;10077:2;10073:7;10063;10047:14;10043:28;10039:42;10017:20;10013:69;10003:97;;10096:1;10093;10086:12;10003:97;10239:2;10124:34;;10226:16;;;;10181:21;10265:18;10254:30;;10251:50;;;10297:1;10294;10287:12;10251:50;10327:6;10324:1;10320:14;10379:2;10363:14;10359:23;10350:7;10346:37;10343:57;;;10396:1;10393;10386:12;10343:57;10441:22;;;-1:-1:-1;;10437:37:172;10431:3;10416:19;;10409:66;10484:22;;;-1:-1:-1;;;;;10518:31:172;;10515:51;;;10562:1;10559;10552:12;10515:51;10614:2;10605:7;10600:2;10592:6;10588:15;10575:42;10648:2;10640:6;10636:15;10626:25;;;;;10698:55;10749:2;10741:6;10737:15;10729:6;10698:55;:::i;:::-;-1:-1:-1;;10799:18:172;;;10791:41;10784:4;10769:20;;10762:71;10856:70;10819:2;10914:11;;10898:14;10882;10856:70;:::i;:::-;10842:84;;;;10957:70;11023:2;11015:6;11011:15;11003:6;10957:70;:::i;:::-;11068:22;;;-1:-1:-1;;11064:36:172;11058:3;11043:19;;11036:65;11118:64;11072:6;11159:14;11118:64;:::i;:::-;11110:72;8876:2312;-1:-1:-1;;;;;;8876:2312:172:o;11193:306::-;11269:6;11277;11330:2;11318:9;11309:7;11305:23;11301:32;11298:52;;;11346:1;11343;11336:12;11298:52;11378:9;11372:16;11397:28;11419:5;11397:28;:::i;:::-;11489:2;11474:18;;;;11468:25;11444:5;;11468:25;;-1:-1:-1;;;11193:306:172:o;11504:136::-;11543:3;11571:5;11561:39;;11580:18;;:::i;:::-;-1:-1:-1;;;11616:18:172;;11504:136::o","linkReferences":{}},"methodIdentifiers":{"addHelper(bytes32,address)":"52741df5","addSubVerifier(bytes32,address)":"b3c83d99","admin()":"f851a440","config(bytes32)":"cc718f76","getHelper(bytes32)":"5dd41f2f","getSubVerifier(bytes32)":"f2649807","guardian()":"452a9320","helperCount()":"da0ff2c6","helpers(bytes32)":"a7ad58bf","pause()":"8456cb59","paused()":"5c975abb","removeHelper(bytes32)":"9bfefbfd","removeSubVerifier(bytes32)":"6f907638","rootRegistry()":"b96b161c","setGuardian(address)":"8a0dac4a","subverifierCount()":"c961ba7e","subverifiers(bytes32)":"492f34fb","transferAdmin(address)":"75829def","unpause()":"3f4ba83a","updateConfig(bytes32,bytes32)":"889eba3b","updateHelper(bytes32,address)":"ba5f3f9d","updateSubVerifier(bytes32,address)":"07915439","verify((bytes32,(bytes32,bytes,bytes32[]),bytes,(uint256,string,string,bool)))":"578bd921"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_admin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_guardian\",\"type\":\"address\"},{\"internalType\":\"contract IRootRegistry\",\"name\":\"_rootRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAdmin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"oldValue\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"newValue\",\"type\":\"bytes32\"}],\"name\":\"ConfigUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldGuardian\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newGuardian\",\"type\":\"address\"}],\"name\":\"GuardianUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"helper\",\"type\":\"address\"}],\"name\":\"HelperAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"helper\",\"type\":\"address\"}],\"name\":\"HelperRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldHelper\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newHelper\",\"type\":\"address\"}],\"name\":\"HelperUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"paused\",\"type\":\"bool\"}],\"name\":\"PausedStatusChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldRootRegistry\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newRootRegistry\",\"type\":\"address\"}],\"name\":\"RootRegistryUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"guardian\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"rootRegistry\",\"type\":\"address\"}],\"name\":\"RootVerifierDeployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subVerifier\",\"type\":\"address\"}],\"name\":\"SubVerifierAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subVerifier\",\"type\":\"address\"}],\"name\":\"SubVerifierRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldSubVerifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newSubVerifier\",\"type\":\"address\"}],\"name\":\"SubVerifierUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"newHelper\",\"type\":\"address\"}],\"name\":\"addHelper\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"contract ZKPassportSubVerifier\",\"name\":\"subVerifier\",\"type\":\"address\"}],\"name\":\"addSubVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"config\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"name\":\"getHelper\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"name\":\"getSubVerifier\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"guardian\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"helperCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"helpers\",\"outputs\":[{\"internalType\":\"contract ZKPassportHelper\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"name\":\"removeHelper\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"name\":\"removeSubVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rootRegistry\",\"outputs\":[{\"internalType\":\"contract IRootRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newGuardian\",\"type\":\"address\"}],\"name\":\"setGuardian\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"subverifierCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"subverifiers\",\"outputs\":[{\"internalType\":\"contract ZKPassportSubVerifier\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"transferAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"updateConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"newHelper\",\"type\":\"address\"}],\"name\":\"updateHelper\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"newSubVerifier\",\"type\":\"address\"}],\"name\":\"updateSubVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"vkeyHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"publicInputs\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ProofVerificationData\",\"name\":\"proofVerificationData\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"committedInputs\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"validityPeriodInSeconds\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"domain\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"scope\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"devMode\",\"type\":\"bool\"}],\"internalType\":\"struct ServiceConfig\",\"name\":\"serviceConfig\",\"type\":\"tuple\"}],\"internalType\":\"struct ProofVerificationParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"uniqueIdentifier\",\"type\":\"bytes32\"},{\"internalType\":\"contract ZKPassportHelper\",\"name\":\"helper\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addHelper(bytes32,address)\":{\"params\":{\"newHelper\":\"The address of the helper\",\"version\":\"The version identifier\"}},\"addSubVerifier(bytes32,address)\":{\"params\":{\"subVerifier\":\"The address of the subverifier\",\"version\":\"The version identifier\"}},\"constructor\":{\"params\":{\"_admin\":\"The admin address\",\"_guardian\":\"The guardian address\",\"_rootRegistry\":\"The root registry address\"}},\"getHelper(bytes32)\":{\"details\":\"Returns zero address if no helper exists for the given version\",\"params\":{\"version\":\"The version identifier\"},\"returns\":{\"_0\":\"The address of the helper contract, or zero address if not found\"}},\"getSubVerifier(bytes32)\":{\"details\":\"Returns zero address if no subverifier exists for the given version\",\"params\":{\"version\":\"The version identifier\"},\"returns\":{\"_0\":\"The address of the subverifier contract, or zero address if not found\"}},\"pause()\":{\"details\":\"Only admin or guardian can pause the root verifierThis is a security measure to pause all proof verification operations in the event of an emergency\"},\"removeHelper(bytes32)\":{\"params\":{\"version\":\"The version identifier\"}},\"removeSubVerifier(bytes32)\":{\"params\":{\"version\":\"The version identifier\"}},\"setGuardian(address)\":{\"params\":{\"newGuardian\":\"The new guardian address\"}},\"transferAdmin(address)\":{\"params\":{\"newAdmin\":\"The new admin address\"}},\"unpause()\":{\"details\":\"Only admin can unpause the root verifier\"},\"updateConfig(bytes32,bytes32)\":{\"params\":{\"key\":\"The config key\",\"value\":\"The config value\"}},\"updateHelper(bytes32,address)\":{\"params\":{\"newHelper\":\"The address of the new helper\",\"version\":\"The version identifier\"}},\"updateSubVerifier(bytes32,address)\":{\"params\":{\"newSubVerifier\":\"The address of the new subverifier\",\"version\":\"The version identifier\"}},\"verify((bytes32,(bytes32,bytes,bytes32[]),bytes,(uint256,string,string,bool)))\":{\"details\":\"This function is called by the root verifier to verify a proof for a specific version\",\"params\":{\"params\":\"The proof verification parameters\"},\"returns\":{\"helper\":\"The helper for the calling contract to use to verify the committed inputs\",\"uniqueIdentifier\":\"The unique identifier associated with the ID used to generate the proof\",\"valid\":\"True if the proof is valid or false otherwise\"}}},\"title\":\"ZKPassport Root Verifier\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addHelper(bytes32,address)\":{\"notice\":\"Adds a helper for a specific version\"},\"addSubVerifier(bytes32,address)\":{\"notice\":\"Adds a subverifier for a specific version\"},\"constructor\":{\"notice\":\"Constructor\"},\"getHelper(bytes32)\":{\"notice\":\"Gets the helper address for a specific version\"},\"getSubVerifier(bytes32)\":{\"notice\":\"Gets the subverifier address for a specific version\"},\"pause()\":{\"notice\":\"Pause the root verifier\"},\"removeHelper(bytes32)\":{\"notice\":\"Removes a helper for a specific version\"},\"removeSubVerifier(bytes32)\":{\"notice\":\"Removes a subverifier for a specific version\"},\"setGuardian(address)\":{\"notice\":\"Sets the guardian role to a new address\"},\"transferAdmin(address)\":{\"notice\":\"Transfers the admin role to a new address\"},\"unpause()\":{\"notice\":\"Unpause the root verifier\"},\"updateConfig(bytes32,bytes32)\":{\"notice\":\"Update a config value\"},\"updateHelper(bytes32,address)\":{\"notice\":\"Updates a helper for a specific version\"},\"updateSubVerifier(bytes32,address)\":{\"notice\":\"Updates a subverifier for a specific version\"},\"verify((bytes32,(bytes32,bytes,bytes32[]),bytes,(uint256,string,string,bool)))\":{\"notice\":\"Verifies a ZKPassport zero-knowledge proof\"}},\"notice\":\"Main entry point for verifying ZKPassport identity proofs\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/circuits/src/solidity/src/ZKPassportRootVerifier.sol\":\"ZKPassportRootVerifier\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@aztec-blob-lib/=src/mock/libraries/\",\":@aztec/=src/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@oz/=lib/openzeppelin-contracts/contracts/\",\":@test/=test/\",\":@zkpassport-test/=lib/circuits/src/solidity/test/\",\":@zkpassport/=lib/circuits/src/solidity/src/\",\":circuits/=lib/circuits/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/circuits/src/solidity/src/Constants.sol\":{\"keccak256\":\"0x29a25ab24727bb03f356fe124eda7970f1769130855ebf584e4225e2718927a7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3dff3096a211bcd97a4dad4e459bd3c684275e3271c493191d3819bbf4326702\",\"dweb:/ipfs/QmfLyG5f3JWRoY5sF9kkDLBDrxymQsuk9uncw65JdRa7Sp\"]},\"lib/circuits/src/solidity/src/DateUtils.sol\":{\"keccak256\":\"0x4176feda967f91ccf0a1cdecc75bbf7e5aaad7b46f95e133887e3ac6ae9126f6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6774599f7320a37f2e5cc22e0d8e59a1f46841a6ac94d7d45b072a809237e1ab\",\"dweb:/ipfs/QmdrX9uQKsvN9gTgCD1zd1kigvJGsgHbvabvdWaWHuSeY4\"]},\"lib/circuits/src/solidity/src/IProofVerifier.sol\":{\"keccak256\":\"0xf8acc6ee390c406eaa8415863f156e251935f8de51bcd3c876871fbe5b5b4f14\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://64016d156d15fd43d407e832fd7b333e07e80b42f0ed9d845a8cc114d3857aa6\",\"dweb:/ipfs/QmP7zSvchyDqov13cyuWxLJDYBBpYZxrPEdGQcheyoJkUm\"]},\"lib/circuits/src/solidity/src/IRootRegistry.sol\":{\"keccak256\":\"0xc994fab81ea1202a93620e7e7a01ba1e61f055498ed5b09503f4b384d0554b2a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://12a19bab224c63ee4a0e3b4048c24e80b3ef5a3459070816c20f2c32b2ad5f72\",\"dweb:/ipfs/QmW1DF8mAwBfacrG2r2R3uyY92i6q1h1hZvHPuwMdXTANg\"]},\"lib/circuits/src/solidity/src/InputsExtractor.sol\":{\"keccak256\":\"0xd8d08cc68a571c9efdddd90ea274c18694284d40a9f1d0a1112a4999fd6a58da\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://000752a284d1df5c0687d32554c83e99afedab49e23d7213679ed93424760450\",\"dweb:/ipfs/QmWrFS4ChUv4okqnEgSLiuSsxohDnTnYLWeyYviVbPTgcH\"]},\"lib/circuits/src/solidity/src/StringUtils.sol\":{\"keccak256\":\"0xd52eb407eef932c9a343f1225fc997b7194ff0f05c488661a7adb4a37f980306\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://60bfaf52ebd50633d6eff5ea346d25283962495c630b37f4c0cd6008e8d8fd11\",\"dweb:/ipfs/QmWVtJnjcaowsFUBRRQ7eNTntghZ4FekXXgeQNAV4PkDWe\"]},\"lib/circuits/src/solidity/src/Types.sol\":{\"keccak256\":\"0x66d73b090401a5f424e1feacf1b503dcd906163f4c749189db3dc108d6dfd668\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d90eff17b597915e95c01a171c4378e7e4e287d35ca25dbd3f684373e93cda0c\",\"dweb:/ipfs/QmYe1wixU4zZAogteHT5eubcB4qzScCYzLtYFpFBitpZeR\"]},\"lib/circuits/src/solidity/src/ZKPassportHelper.sol\":{\"keccak256\":\"0xebc7d0a4b7dae4a78d38381a36cc19e04933f302cf1f0516c8f5d68128afbd16\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7504f8711789c76e7294dd12bf172e5226034a5a2202057180ee047939eefa34\",\"dweb:/ipfs/QmTGuSBmYmDBWutpyTrxPxWQ7DA6kpV6kLQSwB3wMaLCN5\"]},\"lib/circuits/src/solidity/src/ZKPassportRootVerifier.sol\":{\"keccak256\":\"0x5fb7a856f66496a36e4de2ff2dca8fcce5a2c3db3adbf20910b1b20f24e6a009\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c2693f7a086c3ff60441a12a5d72c6a2fbd811123c03d73b0887474cbefe6355\",\"dweb:/ipfs/QmbTgqop8Fb9nxcUveDSDgyMXzVBY1xw2u8eMxaFfVVp1s\"]},\"lib/circuits/src/solidity/src/ZKPassportSubVerifier.sol\":{\"keccak256\":\"0x093e93f34571a7afe3c5a42192a366397b91e9fdb6167075b9250bcfd26fe8dd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://981fec528fb1f8a3032b99905801658305139d82679598579b7fe8afb1b7f6a1\",\"dweb:/ipfs/QmfZ1n1KrxcijmToULMgMccLLyLH5DVVQWJ9SrWPMTRrfw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_admin","type":"address"},{"internalType":"address","name":"_guardian","type":"address"},{"internalType":"contract IRootRegistry","name":"_rootRegistry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"oldAdmin","type":"address","indexed":true},{"internalType":"address","name":"newAdmin","type":"address","indexed":true}],"type":"event","name":"AdminUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"oldValue","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"newValue","type":"bytes32","indexed":false}],"type":"event","name":"ConfigUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"oldGuardian","type":"address","indexed":true},{"internalType":"address","name":"newGuardian","type":"address","indexed":true}],"type":"event","name":"GuardianUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32","indexed":true},{"internalType":"address","name":"helper","type":"address","indexed":true}],"type":"event","name":"HelperAdded","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32","indexed":true},{"internalType":"address","name":"helper","type":"address","indexed":true}],"type":"event","name":"HelperRemoved","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32","indexed":true},{"internalType":"address","name":"oldHelper","type":"address","indexed":true},{"internalType":"address","name":"newHelper","type":"address","indexed":true}],"type":"event","name":"HelperUpdated","anonymous":false},{"inputs":[{"internalType":"bool","name":"paused","type":"bool","indexed":false}],"type":"event","name":"PausedStatusChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"oldRootRegistry","type":"address","indexed":true},{"internalType":"address","name":"newRootRegistry","type":"address","indexed":true}],"type":"event","name":"RootRegistryUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"admin","type":"address","indexed":false},{"internalType":"address","name":"guardian","type":"address","indexed":false},{"internalType":"address","name":"rootRegistry","type":"address","indexed":false}],"type":"event","name":"RootVerifierDeployed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32","indexed":true},{"internalType":"address","name":"subVerifier","type":"address","indexed":true}],"type":"event","name":"SubVerifierAdded","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32","indexed":true},{"internalType":"address","name":"subVerifier","type":"address","indexed":true}],"type":"event","name":"SubVerifierRemoved","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32","indexed":true},{"internalType":"address","name":"oldSubVerifier","type":"address","indexed":true},{"internalType":"address","name":"newSubVerifier","type":"address","indexed":true}],"type":"event","name":"SubVerifierUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"address","name":"newHelper","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addHelper"},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"contract ZKPassportSubVerifier","name":"subVerifier","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addSubVerifier"},{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"stateMutability":"view","type":"function","name":"config","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getHelper","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getSubVerifier","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"guardian","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"helperCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"helpers","outputs":[{"internalType":"contract ZKPassportHelper","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"removeHelper"},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"removeSubVerifier"},{"inputs":[],"stateMutability":"view","type":"function","name":"rootRegistry","outputs":[{"internalType":"contract IRootRegistry","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newGuardian","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setGuardian"},{"inputs":[],"stateMutability":"view","type":"function","name":"subverifierCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"subverifiers","outputs":[{"internalType":"contract ZKPassportSubVerifier","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferAdmin"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"updateConfig"},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"address","name":"newHelper","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateHelper"},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"address","name":"newSubVerifier","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateSubVerifier"},{"inputs":[{"internalType":"struct ProofVerificationParams","name":"params","type":"tuple","components":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"struct ProofVerificationData","name":"proofVerificationData","type":"tuple","components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"}]},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple","components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}]}]}],"stateMutability":"view","type":"function","name":"verify","outputs":[{"internalType":"bool","name":"valid","type":"bool"},{"internalType":"bytes32","name":"uniqueIdentifier","type":"bytes32"},{"internalType":"contract ZKPassportHelper","name":"helper","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"addHelper(bytes32,address)":{"params":{"newHelper":"The address of the helper","version":"The version identifier"}},"addSubVerifier(bytes32,address)":{"params":{"subVerifier":"The address of the subverifier","version":"The version identifier"}},"constructor":{"params":{"_admin":"The admin address","_guardian":"The guardian address","_rootRegistry":"The root registry address"}},"getHelper(bytes32)":{"details":"Returns zero address if no helper exists for the given version","params":{"version":"The version identifier"},"returns":{"_0":"The address of the helper contract, or zero address if not found"}},"getSubVerifier(bytes32)":{"details":"Returns zero address if no subverifier exists for the given version","params":{"version":"The version identifier"},"returns":{"_0":"The address of the subverifier contract, or zero address if not found"}},"pause()":{"details":"Only admin or guardian can pause the root verifierThis is a security measure to pause all proof verification operations in the event of an emergency"},"removeHelper(bytes32)":{"params":{"version":"The version identifier"}},"removeSubVerifier(bytes32)":{"params":{"version":"The version identifier"}},"setGuardian(address)":{"params":{"newGuardian":"The new guardian address"}},"transferAdmin(address)":{"params":{"newAdmin":"The new admin address"}},"unpause()":{"details":"Only admin can unpause the root verifier"},"updateConfig(bytes32,bytes32)":{"params":{"key":"The config key","value":"The config value"}},"updateHelper(bytes32,address)":{"params":{"newHelper":"The address of the new helper","version":"The version identifier"}},"updateSubVerifier(bytes32,address)":{"params":{"newSubVerifier":"The address of the new subverifier","version":"The version identifier"}},"verify((bytes32,(bytes32,bytes,bytes32[]),bytes,(uint256,string,string,bool)))":{"details":"This function is called by the root verifier to verify a proof for a specific version","params":{"params":"The proof verification parameters"},"returns":{"helper":"The helper for the calling contract to use to verify the committed inputs","uniqueIdentifier":"The unique identifier associated with the ID used to generate the proof","valid":"True if the proof is valid or false otherwise"}}},"version":1},"userdoc":{"kind":"user","methods":{"addHelper(bytes32,address)":{"notice":"Adds a helper for a specific version"},"addSubVerifier(bytes32,address)":{"notice":"Adds a subverifier for a specific version"},"constructor":{"notice":"Constructor"},"getHelper(bytes32)":{"notice":"Gets the helper address for a specific version"},"getSubVerifier(bytes32)":{"notice":"Gets the subverifier address for a specific version"},"pause()":{"notice":"Pause the root verifier"},"removeHelper(bytes32)":{"notice":"Removes a helper for a specific version"},"removeSubVerifier(bytes32)":{"notice":"Removes a subverifier for a specific version"},"setGuardian(address)":{"notice":"Sets the guardian role to a new address"},"transferAdmin(address)":{"notice":"Transfers the admin role to a new address"},"unpause()":{"notice":"Unpause the root verifier"},"updateConfig(bytes32,bytes32)":{"notice":"Update a config value"},"updateHelper(bytes32,address)":{"notice":"Updates a helper for a specific version"},"updateSubVerifier(bytes32,address)":{"notice":"Updates a subverifier for a specific version"},"verify((bytes32,(bytes32,bytes,bytes32[]),bytes,(uint256,string,string,bool)))":{"notice":"Verifies a ZKPassport zero-knowledge proof"}},"version":1}},"settings":{"remappings":["@aztec-blob-lib/=src/mock/libraries/","@aztec/=src/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@oz/=lib/openzeppelin-contracts/contracts/","@test/=test/","@zkpassport-test/=lib/circuits/src/solidity/test/","@zkpassport/=lib/circuits/src/solidity/src/","circuits/=lib/circuits/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/circuits/src/solidity/src/ZKPassportRootVerifier.sol":"ZKPassportRootVerifier"},"evmVersion":"prague","libraries":{}},"sources":{"lib/circuits/src/solidity/src/Constants.sol":{"keccak256":"0x29a25ab24727bb03f356fe124eda7970f1769130855ebf584e4225e2718927a7","urls":["bzz-raw://3dff3096a211bcd97a4dad4e459bd3c684275e3271c493191d3819bbf4326702","dweb:/ipfs/QmfLyG5f3JWRoY5sF9kkDLBDrxymQsuk9uncw65JdRa7Sp"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/DateUtils.sol":{"keccak256":"0x4176feda967f91ccf0a1cdecc75bbf7e5aaad7b46f95e133887e3ac6ae9126f6","urls":["bzz-raw://6774599f7320a37f2e5cc22e0d8e59a1f46841a6ac94d7d45b072a809237e1ab","dweb:/ipfs/QmdrX9uQKsvN9gTgCD1zd1kigvJGsgHbvabvdWaWHuSeY4"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/IProofVerifier.sol":{"keccak256":"0xf8acc6ee390c406eaa8415863f156e251935f8de51bcd3c876871fbe5b5b4f14","urls":["bzz-raw://64016d156d15fd43d407e832fd7b333e07e80b42f0ed9d845a8cc114d3857aa6","dweb:/ipfs/QmP7zSvchyDqov13cyuWxLJDYBBpYZxrPEdGQcheyoJkUm"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/IRootRegistry.sol":{"keccak256":"0xc994fab81ea1202a93620e7e7a01ba1e61f055498ed5b09503f4b384d0554b2a","urls":["bzz-raw://12a19bab224c63ee4a0e3b4048c24e80b3ef5a3459070816c20f2c32b2ad5f72","dweb:/ipfs/QmW1DF8mAwBfacrG2r2R3uyY92i6q1h1hZvHPuwMdXTANg"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/InputsExtractor.sol":{"keccak256":"0xd8d08cc68a571c9efdddd90ea274c18694284d40a9f1d0a1112a4999fd6a58da","urls":["bzz-raw://000752a284d1df5c0687d32554c83e99afedab49e23d7213679ed93424760450","dweb:/ipfs/QmWrFS4ChUv4okqnEgSLiuSsxohDnTnYLWeyYviVbPTgcH"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/StringUtils.sol":{"keccak256":"0xd52eb407eef932c9a343f1225fc997b7194ff0f05c488661a7adb4a37f980306","urls":["bzz-raw://60bfaf52ebd50633d6eff5ea346d25283962495c630b37f4c0cd6008e8d8fd11","dweb:/ipfs/QmWVtJnjcaowsFUBRRQ7eNTntghZ4FekXXgeQNAV4PkDWe"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/Types.sol":{"keccak256":"0x66d73b090401a5f424e1feacf1b503dcd906163f4c749189db3dc108d6dfd668","urls":["bzz-raw://d90eff17b597915e95c01a171c4378e7e4e287d35ca25dbd3f684373e93cda0c","dweb:/ipfs/QmYe1wixU4zZAogteHT5eubcB4qzScCYzLtYFpFBitpZeR"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/ZKPassportHelper.sol":{"keccak256":"0xebc7d0a4b7dae4a78d38381a36cc19e04933f302cf1f0516c8f5d68128afbd16","urls":["bzz-raw://7504f8711789c76e7294dd12bf172e5226034a5a2202057180ee047939eefa34","dweb:/ipfs/QmTGuSBmYmDBWutpyTrxPxWQ7DA6kpV6kLQSwB3wMaLCN5"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/ZKPassportRootVerifier.sol":{"keccak256":"0x5fb7a856f66496a36e4de2ff2dca8fcce5a2c3db3adbf20910b1b20f24e6a009","urls":["bzz-raw://c2693f7a086c3ff60441a12a5d72c6a2fbd811123c03d73b0887474cbefe6355","dweb:/ipfs/QmbTgqop8Fb9nxcUveDSDgyMXzVBY1xw2u8eMxaFfVVp1s"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/ZKPassportSubVerifier.sol":{"keccak256":"0x093e93f34571a7afe3c5a42192a366397b91e9fdb6167075b9250bcfd26fe8dd","urls":["bzz-raw://981fec528fb1f8a3032b99905801658305139d82679598579b7fe8afb1b7f6a1","dweb:/ipfs/QmfZ1n1KrxcijmToULMgMccLLyLH5DVVQWJ9SrWPMTRrfw"],"license":"Apache-2.0"}},"version":1},"id":9}
|
|
1
|
+
{"abi":[{"type":"constructor","inputs":[{"name":"_admin","type":"address","internalType":"address"},{"name":"_guardian","type":"address","internalType":"address"},{"name":"_rootRegistry","type":"address","internalType":"contract IRootRegistry"}],"stateMutability":"nonpayable"},{"type":"function","name":"addHelper","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"},{"name":"newHelper","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addSubVerifier","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"},{"name":"subVerifier","type":"address","internalType":"contract ZKPassportSubVerifier"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"config","inputs":[{"name":"key","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"value","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getHelper","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getSubVerifier","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"guardian","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"helperCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"helpers","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"contract ZKPassportHelper"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"removeHelper","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeSubVerifier","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rootRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRootRegistry"}],"stateMutability":"view"},{"type":"function","name":"setGuardian","inputs":[{"name":"newGuardian","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"subverifierCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"subverifiers","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"contract ZKPassportSubVerifier"}],"stateMutability":"view"},{"type":"function","name":"transferAdmin","inputs":[{"name":"newAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateConfig","inputs":[{"name":"key","type":"bytes32","internalType":"bytes32"},{"name":"value","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateHelper","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"},{"name":"newHelper","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateSubVerifier","inputs":[{"name":"version","type":"bytes32","internalType":"bytes32"},{"name":"newSubVerifier","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verify","inputs":[{"name":"params","type":"tuple","internalType":"struct ProofVerificationParams","components":[{"name":"version","type":"bytes32","internalType":"bytes32"},{"name":"proofVerificationData","type":"tuple","internalType":"struct ProofVerificationData","components":[{"name":"vkeyHash","type":"bytes32","internalType":"bytes32"},{"name":"proof","type":"bytes","internalType":"bytes"},{"name":"publicInputs","type":"bytes32[]","internalType":"bytes32[]"}]},{"name":"committedInputs","type":"bytes","internalType":"bytes"},{"name":"serviceConfig","type":"tuple","internalType":"struct ServiceConfig","components":[{"name":"validityPeriodInSeconds","type":"uint256","internalType":"uint256"},{"name":"domain","type":"string","internalType":"string"},{"name":"scope","type":"string","internalType":"string"},{"name":"devMode","type":"bool","internalType":"bool"}]}]}],"outputs":[{"name":"valid","type":"bool","internalType":"bool"},{"name":"uniqueIdentifier","type":"bytes32","internalType":"bytes32"},{"name":"helper","type":"address","internalType":"contract ZKPassportHelper"}],"stateMutability":"view"},{"type":"event","name":"AdminUpdated","inputs":[{"name":"oldAdmin","type":"address","indexed":true,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ConfigUpdated","inputs":[{"name":"key","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"oldValue","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"newValue","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"GuardianUpdated","inputs":[{"name":"oldGuardian","type":"address","indexed":true,"internalType":"address"},{"name":"newGuardian","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"HelperAdded","inputs":[{"name":"version","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"helper","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"HelperRemoved","inputs":[{"name":"version","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"helper","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"HelperUpdated","inputs":[{"name":"version","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"oldHelper","type":"address","indexed":true,"internalType":"address"},{"name":"newHelper","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PausedStatusChanged","inputs":[{"name":"paused","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"RootRegistryUpdated","inputs":[{"name":"oldRootRegistry","type":"address","indexed":true,"internalType":"address"},{"name":"newRootRegistry","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RootVerifierDeployed","inputs":[{"name":"admin","type":"address","indexed":false,"internalType":"address"},{"name":"guardian","type":"address","indexed":false,"internalType":"address"},{"name":"rootRegistry","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SubVerifierAdded","inputs":[{"name":"version","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"subVerifier","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SubVerifierRemoved","inputs":[{"name":"version","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"subVerifier","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SubVerifierUpdated","inputs":[{"name":"version","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"oldSubVerifier","type":"address","indexed":true,"internalType":"address"},{"name":"newSubVerifier","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561000f575f5ffd5b506040516114fc3803806114fc83398101604081905261002e91610125565b6001600160a01b0383166100885760405162461bcd60e51b815260206004820152601c60248201527f41646d696e2063616e6e6f74206265207a65726f206164647265737300000000604482015260640160405180910390fd5b5f80546001600160a01b038581166001600160a01b0319928316811790935560018054868316908416811790915560028054928616929093168217909255604080519384526020840192909252908201527f49958336430bdf59d989fb74186fd9ed78af011655d4ffe62fa2fbe5193edbda9060600160405180910390a150505061016f565b6001600160a01b0381168114610122575f5ffd5b50565b5f5f5f60608486031215610137575f5ffd5b83516101428161010e565b60208501519093506101538161010e565b60408501519092506101648161010e565b809150509250925092565b6113808061017c5f395ff3fe608060405234801561000f575f5ffd5b5060043610610148575f3560e01c8063889eba3b116100bf578063ba5f3f9d11610079578063ba5f3f9d1461030e578063c961ba7e14610321578063cc718f7614610338578063da0ff2c614610357578063f264980714610360578063f851a44014610388575f5ffd5b8063889eba3b146102875780638a0dac4a1461029a5780639bfefbfd146102ad578063a7ad58bf146102c0578063b3c83d99146102e8578063b96b161c146102fb575f5ffd5b8063578bd92111610110578063578bd921146101d45780635c975abb1461020d5780635dd41f2f146102315780636f9076381461025957806375829def1461026c5780638456cb591461027f575f5ffd5b8063079154391461014c5780633f4ba83a14610161578063452a932014610169578063492f34fb1461019957806352741df5146101c1575b5f5ffd5b61015f61015a366004610ef0565b61039a565b005b61015f61049f565b60015461017c906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61017c6101a7366004610f1e565b60036020525f90815260409020546001600160a01b031681565b61015f6101cf366004610ef0565b61050b565b6101e76101e2366004610f35565b610687565b60408051931515845260208401929092526001600160a01b031690820152606001610190565b60015461022190600160a01b900460ff1681565b6040519015158152602001610190565b61017c61023f366004610f1e565b5f908152600560205260409020546001600160a01b031690565b61015f610267366004610f1e565b6107b4565b61015f61027a366004610f73565b610895565b61015f610963565b61015f610295366004610f8e565b610a23565b61015f6102a8366004610f73565b610aa1565b61015f6102bb366004610f1e565b610b1b565b61017c6102ce366004610f1e565b60056020525f90815260409020546001600160a01b031681565b61015f6102f6366004610ef0565b610c2c565b60025461017c906001600160a01b031681565b61015f61031c366004610ef0565b610d7d565b61032a60045481565b604051908152602001610190565b61032a610346366004610f1e565b60076020525f908152604090205481565b61032a60065481565b61017c61036e366004610f1e565b5f908152600360205260409020546001600160a01b031690565b5f5461017c906001600160a01b031681565b5f546001600160a01b031633146103cc5760405162461bcd60e51b81526004016103c390610fae565b60405180910390fd5b816103e95760405162461bcd60e51b81526004016103c390610fe5565b6001600160a01b03811661040f5760405162461bcd60e51b81526004016103c390611015565b5f828152600360205260409020546001600160a01b03166104425760405162461bcd60e51b81526004016103c390611057565b5f8281526003602052604080822080546001600160a01b031981166001600160a01b038681169182179093559251911692839186917fa643a1aa11f9709b2990b31638a0b368d6d0c3b8f025a98a3249fea2bd5821d791a4505050565b5f546001600160a01b031633146104c85760405162461bcd60e51b81526004016103c390610fae565b6001805460ff60a01b191690556040515f81527f9a506b30e47f3823b09f67e4c0dfa5c3d8023b71825b7ceaa97677129128c9c5906020015b60405180910390a1565b5f546001600160a01b031633146105345760405162461bcd60e51b81526004016103c390610fae565b6001600160a01b03811661058a5760405162461bcd60e51b815260206004820152601d60248201527f48656c7065722063616e6e6f74206265207a65726f206164647265737300000060448201526064016103c3565b816105a75760405162461bcd60e51b81526004016103c390610fe5565b5f828152600560205260409020546001600160a01b0316156106155760405162461bcd60e51b815260206004820152602160248201527f48656c70657220616c72656164792065786973747320666f722076657273696f6044820152603760f91b60648201526084016103c3565b5f82815260056020526040812080546001600160a01b0319166001600160a01b0384161790556006805491610649836110ac565b90915550506040516001600160a01b0382169083907fe3eccbb854b4a5c161cda43f1e76981a22f8c4a4190a1e1b44bb8c69039b85b2905f90a35050565b5f5f5f600160149054906101000a900460ff16156106e75760405162461bcd60e51b815260206004820152601760248201527f526f6f742076657269666965722069732070617573656400000000000000000060448201526064016103c3565b83355f908152600360205260409020546001600160a01b03168061071d5760405162461bcd60e51b81526004016103c390611057565b600254604051637446a77360e11b81526001600160a01b038381169263e88d4ee692610751929091169089906004016111ce565b6040805180830381865afa15801561076b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078f9190611309565b95355f9081526005602052604090205490966001600160a01b03909116945092505050565b5f546001600160a01b031633146107dd5760405162461bcd60e51b81526004016103c390610fae565b806107fa5760405162461bcd60e51b81526004016103c390610fe5565b5f818152600360205260409020546001600160a01b03168061082e5760405162461bcd60e51b81526004016103c390611057565b5f82815260036020526040812080546001600160a01b0319169055600480549161085783611335565b90915550506040516001600160a01b0382169083907f2632c7adc4cecbf41bb3ee7c156aae99b0bcd9da3efa5b9315f77dcdf6ef3e66905f90a35050565b5f546001600160a01b031633146108be5760405162461bcd60e51b81526004016103c390610fae565b6001600160a01b0381166109145760405162461bcd60e51b815260206004820152601c60248201527f41646d696e2063616e6e6f74206265207a65726f20616464726573730000000060448201526064016103c3565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b9190a35050565b5f546001600160a01b031633148061098557506001546001600160a01b031633145b6109e05760405162461bcd60e51b815260206004820152602660248201527f4e6f7420617574686f72697a65643a2061646d696e206f7220677561726469616044820152656e206f6e6c7960d01b60648201526084016103c3565b6001805460ff60a01b1916600160a01b1781556040519081527f9a506b30e47f3823b09f67e4c0dfa5c3d8023b71825b7ceaa97677129128c9c590602001610501565b5f546001600160a01b03163314610a4c5760405162461bcd60e51b81526004016103c390610fae565b5f8281526007602090815260409182902080549084905582518181529182018490529184917fbb4f63ec43349b7ec7c292d3e97704824bcdd2d758200521ad62d3e9a127f782910160405180910390a2505050565b5f546001600160a01b03163314610aca5760405162461bcd60e51b81526004016103c390610fae565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f064d28d3d3071c5cbc271a261c10c2f0f0d9e319390397101aa0eb23c6bad909905f90a35050565b5f546001600160a01b03163314610b445760405162461bcd60e51b81526004016103c390610fae565b80610b615760405162461bcd60e51b81526004016103c390610fe5565b5f818152600560205260409020546001600160a01b031680610bc55760405162461bcd60e51b815260206004820152601c60248201527f48656c706572206e6f7420666f756e6420666f722076657273696f6e0000000060448201526064016103c3565b5f82815260056020526040812080546001600160a01b03191690556006805491610bee83611335565b90915550506040516001600160a01b0382169083907f6a7d5ce7bf32942d5ee1a06318777e6921ab7173478635304ac93845d7de61e0905f90a35050565b5f546001600160a01b03163314610c555760405162461bcd60e51b81526004016103c390610fae565b6001600160a01b038116610c7b5760405162461bcd60e51b81526004016103c390611015565b81610c985760405162461bcd60e51b81526004016103c390610fe5565b5f828152600360205260409020546001600160a01b031615610d0b5760405162461bcd60e51b815260206004820152602660248201527f537562766572696669657220616c72656164792065786973747320666f72207660448201526532b939b4b7b760d11b60648201526084016103c3565b5f82815260036020526040812080546001600160a01b0319166001600160a01b0384161790556004805491610d3f836110ac565b90915550506040516001600160a01b0382169083907fa65f9939af3939f730447054d525d5526c5f9e75ccea14966e1de1876631f404905f90a35050565b5f546001600160a01b03163314610da65760405162461bcd60e51b81526004016103c390610fae565b81610dc35760405162461bcd60e51b81526004016103c390610fe5565b6001600160a01b038116610e195760405162461bcd60e51b815260206004820152601d60248201527f48656c7065722063616e6e6f74206265207a65726f206164647265737300000060448201526064016103c3565b5f828152600560205260409020546001600160a01b0316610e7c5760405162461bcd60e51b815260206004820152601c60248201527f48656c706572206e6f7420666f756e6420666f722076657273696f6e0000000060448201526064016103c3565b5f8281526005602052604080822080546001600160a01b031981166001600160a01b038681169182179093559251911692839186917fb9393e6de8fe36cc235a7d08d2fa004db98bbb2a2be241250df83a276bc0d62e91a4505050565b6001600160a01b0381168114610eed575f5ffd5b50565b5f5f60408385031215610f01575f5ffd5b823591506020830135610f1381610ed9565b809150509250929050565b5f60208284031215610f2e575f5ffd5b5035919050565b5f60208284031215610f45575f5ffd5b813567ffffffffffffffff811115610f5b575f5ffd5b820160808185031215610f6c575f5ffd5b9392505050565b5f60208284031215610f83575f5ffd5b8135610f6c81610ed9565b5f5f60408385031215610f9f575f5ffd5b50508035926020909101359150565b6020808252601a908201527f4e6f7420617574686f72697a65643a2061646d696e206f6e6c79000000000000604082015260600190565b60208082526016908201527556657273696f6e2063616e6e6f74206265207a65726f60501b604082015260600190565b60208082526022908201527f53756276657269666965722063616e6e6f74206265207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526021908201527f5375627665726966696572206e6f7420666f756e6420666f722076657273696f6040820152603760f91b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b5f600182016110bd576110bd611098565b5060010190565b5f5f8335601e198436030181126110d9575f5ffd5b830160208101925035905067ffffffffffffffff8111156110f8575f5ffd5b803603821315611106575f5ffd5b9250929050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8235607e19833603018112611149575f5ffd5b90910192915050565b8015158114610eed575f5ffd5b803582525f61117160208301836110c4565b6080602086015261118660808601828461110d565b91505061119660408401846110c4565b85830360408701526111a983828461110d565b9250505060608301356111bb81611152565b8015156060860152508091505092915050565b6001600160a01b0383168152604060208083018290528335918301919091525f9083013536849003605e19018112611204575f5ffd5b608060608401528301803560c084015261122160208201826110c4565b606060e08601526112376101208601828461110d565b9150506040820135601e19833603018112611250575f5ffd5b60209201918201913567ffffffffffffffff81111561126d575f5ffd5b8060051b80360384131561127f575f5ffd5b85830360bf19016101008701528183526001600160fb1b038211156112a2575f5ffd5b8084602085013780830193505050506112be60408501856110c4565b601f198584030160808601526112d860208401828461110d565b925050506112e96060850185611135565b838203603f190160a08501526112ff828261115f565b9695505050505050565b5f5f6040838503121561131a575f5ffd5b825161132581611152565b6020939093015192949293505050565b5f8161134357611343611098565b505f19019056fea2646970667358221220110ddc2970eed253c519394329b0ffb80fde268921fbca2b2308198d944643f864736f6c634300081e0033","sourceMap":"681:9071:9:-:0;;;2414:300;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2504:20:9;;2496:61;;;;-1:-1:-1;;;2496:61:9;;898:2:173;2496:61:9;;;880:21:173;937:2;917:18;;;910:30;976;956:18;;;949:58;1024:18;;2496:61:9;;;;;;;;2563:5;:14;;-1:-1:-1;;;;;2563:14:9;;;-1:-1:-1;;;;;;2563:14:9;;;;;;;;-1:-1:-1;2583:20:9;;;;;;;;;;;;;2609:12;:28;;;;;;;;;;;;;;2648:61;;;1255:51:173;;;1337:2;1322:18;;1315:60;;;;1391:18;;;1384:60;2648:61:9;;1243:2:173;1228:18;2648:61:9;;;;;;;2414:300;;;681:9071;;14:131:173;-1:-1:-1;;;;;89:31:173;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:541::-;260:6;268;276;329:2;317:9;308:7;304:23;300:32;297:52;;;345:1;342;335:12;297:52;377:9;371:16;396:31;421:5;396:31;:::i;:::-;496:2;481:18;;475:25;446:5;;-1:-1:-1;509:33:173;475:25;509:33;:::i;:::-;613:2;598:18;;592:25;561:7;;-1:-1:-1;626:33:173;592:25;626:33;:::i;:::-;678:7;668:17;;;150:541;;;;;:::o;1053:397::-;681:9071:9;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f5ffd5b5060043610610148575f3560e01c8063889eba3b116100bf578063ba5f3f9d11610079578063ba5f3f9d1461030e578063c961ba7e14610321578063cc718f7614610338578063da0ff2c614610357578063f264980714610360578063f851a44014610388575f5ffd5b8063889eba3b146102875780638a0dac4a1461029a5780639bfefbfd146102ad578063a7ad58bf146102c0578063b3c83d99146102e8578063b96b161c146102fb575f5ffd5b8063578bd92111610110578063578bd921146101d45780635c975abb1461020d5780635dd41f2f146102315780636f9076381461025957806375829def1461026c5780638456cb591461027f575f5ffd5b8063079154391461014c5780633f4ba83a14610161578063452a932014610169578063492f34fb1461019957806352741df5146101c1575b5f5ffd5b61015f61015a366004610ef0565b61039a565b005b61015f61049f565b60015461017c906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b61017c6101a7366004610f1e565b60036020525f90815260409020546001600160a01b031681565b61015f6101cf366004610ef0565b61050b565b6101e76101e2366004610f35565b610687565b60408051931515845260208401929092526001600160a01b031690820152606001610190565b60015461022190600160a01b900460ff1681565b6040519015158152602001610190565b61017c61023f366004610f1e565b5f908152600560205260409020546001600160a01b031690565b61015f610267366004610f1e565b6107b4565b61015f61027a366004610f73565b610895565b61015f610963565b61015f610295366004610f8e565b610a23565b61015f6102a8366004610f73565b610aa1565b61015f6102bb366004610f1e565b610b1b565b61017c6102ce366004610f1e565b60056020525f90815260409020546001600160a01b031681565b61015f6102f6366004610ef0565b610c2c565b60025461017c906001600160a01b031681565b61015f61031c366004610ef0565b610d7d565b61032a60045481565b604051908152602001610190565b61032a610346366004610f1e565b60076020525f908152604090205481565b61032a60065481565b61017c61036e366004610f1e565b5f908152600360205260409020546001600160a01b031690565b5f5461017c906001600160a01b031681565b5f546001600160a01b031633146103cc5760405162461bcd60e51b81526004016103c390610fae565b60405180910390fd5b816103e95760405162461bcd60e51b81526004016103c390610fe5565b6001600160a01b03811661040f5760405162461bcd60e51b81526004016103c390611015565b5f828152600360205260409020546001600160a01b03166104425760405162461bcd60e51b81526004016103c390611057565b5f8281526003602052604080822080546001600160a01b031981166001600160a01b038681169182179093559251911692839186917fa643a1aa11f9709b2990b31638a0b368d6d0c3b8f025a98a3249fea2bd5821d791a4505050565b5f546001600160a01b031633146104c85760405162461bcd60e51b81526004016103c390610fae565b6001805460ff60a01b191690556040515f81527f9a506b30e47f3823b09f67e4c0dfa5c3d8023b71825b7ceaa97677129128c9c5906020015b60405180910390a1565b5f546001600160a01b031633146105345760405162461bcd60e51b81526004016103c390610fae565b6001600160a01b03811661058a5760405162461bcd60e51b815260206004820152601d60248201527f48656c7065722063616e6e6f74206265207a65726f206164647265737300000060448201526064016103c3565b816105a75760405162461bcd60e51b81526004016103c390610fe5565b5f828152600560205260409020546001600160a01b0316156106155760405162461bcd60e51b815260206004820152602160248201527f48656c70657220616c72656164792065786973747320666f722076657273696f6044820152603760f91b60648201526084016103c3565b5f82815260056020526040812080546001600160a01b0319166001600160a01b0384161790556006805491610649836110ac565b90915550506040516001600160a01b0382169083907fe3eccbb854b4a5c161cda43f1e76981a22f8c4a4190a1e1b44bb8c69039b85b2905f90a35050565b5f5f5f600160149054906101000a900460ff16156106e75760405162461bcd60e51b815260206004820152601760248201527f526f6f742076657269666965722069732070617573656400000000000000000060448201526064016103c3565b83355f908152600360205260409020546001600160a01b03168061071d5760405162461bcd60e51b81526004016103c390611057565b600254604051637446a77360e11b81526001600160a01b038381169263e88d4ee692610751929091169089906004016111ce565b6040805180830381865afa15801561076b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078f9190611309565b95355f9081526005602052604090205490966001600160a01b03909116945092505050565b5f546001600160a01b031633146107dd5760405162461bcd60e51b81526004016103c390610fae565b806107fa5760405162461bcd60e51b81526004016103c390610fe5565b5f818152600360205260409020546001600160a01b03168061082e5760405162461bcd60e51b81526004016103c390611057565b5f82815260036020526040812080546001600160a01b0319169055600480549161085783611335565b90915550506040516001600160a01b0382169083907f2632c7adc4cecbf41bb3ee7c156aae99b0bcd9da3efa5b9315f77dcdf6ef3e66905f90a35050565b5f546001600160a01b031633146108be5760405162461bcd60e51b81526004016103c390610fae565b6001600160a01b0381166109145760405162461bcd60e51b815260206004820152601c60248201527f41646d696e2063616e6e6f74206265207a65726f20616464726573730000000060448201526064016103c3565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b9190a35050565b5f546001600160a01b031633148061098557506001546001600160a01b031633145b6109e05760405162461bcd60e51b815260206004820152602660248201527f4e6f7420617574686f72697a65643a2061646d696e206f7220677561726469616044820152656e206f6e6c7960d01b60648201526084016103c3565b6001805460ff60a01b1916600160a01b1781556040519081527f9a506b30e47f3823b09f67e4c0dfa5c3d8023b71825b7ceaa97677129128c9c590602001610501565b5f546001600160a01b03163314610a4c5760405162461bcd60e51b81526004016103c390610fae565b5f8281526007602090815260409182902080549084905582518181529182018490529184917fbb4f63ec43349b7ec7c292d3e97704824bcdd2d758200521ad62d3e9a127f782910160405180910390a2505050565b5f546001600160a01b03163314610aca5760405162461bcd60e51b81526004016103c390610fae565b600180546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f064d28d3d3071c5cbc271a261c10c2f0f0d9e319390397101aa0eb23c6bad909905f90a35050565b5f546001600160a01b03163314610b445760405162461bcd60e51b81526004016103c390610fae565b80610b615760405162461bcd60e51b81526004016103c390610fe5565b5f818152600560205260409020546001600160a01b031680610bc55760405162461bcd60e51b815260206004820152601c60248201527f48656c706572206e6f7420666f756e6420666f722076657273696f6e0000000060448201526064016103c3565b5f82815260056020526040812080546001600160a01b03191690556006805491610bee83611335565b90915550506040516001600160a01b0382169083907f6a7d5ce7bf32942d5ee1a06318777e6921ab7173478635304ac93845d7de61e0905f90a35050565b5f546001600160a01b03163314610c555760405162461bcd60e51b81526004016103c390610fae565b6001600160a01b038116610c7b5760405162461bcd60e51b81526004016103c390611015565b81610c985760405162461bcd60e51b81526004016103c390610fe5565b5f828152600360205260409020546001600160a01b031615610d0b5760405162461bcd60e51b815260206004820152602660248201527f537562766572696669657220616c72656164792065786973747320666f72207660448201526532b939b4b7b760d11b60648201526084016103c3565b5f82815260036020526040812080546001600160a01b0319166001600160a01b0384161790556004805491610d3f836110ac565b90915550506040516001600160a01b0382169083907fa65f9939af3939f730447054d525d5526c5f9e75ccea14966e1de1876631f404905f90a35050565b5f546001600160a01b03163314610da65760405162461bcd60e51b81526004016103c390610fae565b81610dc35760405162461bcd60e51b81526004016103c390610fe5565b6001600160a01b038116610e195760405162461bcd60e51b815260206004820152601d60248201527f48656c7065722063616e6e6f74206265207a65726f206164647265737300000060448201526064016103c3565b5f828152600560205260409020546001600160a01b0316610e7c5760405162461bcd60e51b815260206004820152601c60248201527f48656c706572206e6f7420666f756e6420666f722076657273696f6e0000000060448201526064016103c3565b5f8281526005602052604080822080546001600160a01b031981166001600160a01b038681169182179093559251911692839186917fb9393e6de8fe36cc235a7d08d2fa004db98bbb2a2be241250df83a276bc0d62e91a4505050565b6001600160a01b0381168114610eed575f5ffd5b50565b5f5f60408385031215610f01575f5ffd5b823591506020830135610f1381610ed9565b809150509250929050565b5f60208284031215610f2e575f5ffd5b5035919050565b5f60208284031215610f45575f5ffd5b813567ffffffffffffffff811115610f5b575f5ffd5b820160808185031215610f6c575f5ffd5b9392505050565b5f60208284031215610f83575f5ffd5b8135610f6c81610ed9565b5f5f60408385031215610f9f575f5ffd5b50508035926020909101359150565b6020808252601a908201527f4e6f7420617574686f72697a65643a2061646d696e206f6e6c79000000000000604082015260600190565b60208082526016908201527556657273696f6e2063616e6e6f74206265207a65726f60501b604082015260600190565b60208082526022908201527f53756276657269666965722063616e6e6f74206265207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526021908201527f5375627665726966696572206e6f7420666f756e6420666f722076657273696f6040820152603760f91b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b5f600182016110bd576110bd611098565b5060010190565b5f5f8335601e198436030181126110d9575f5ffd5b830160208101925035905067ffffffffffffffff8111156110f8575f5ffd5b803603821315611106575f5ffd5b9250929050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f8235607e19833603018112611149575f5ffd5b90910192915050565b8015158114610eed575f5ffd5b803582525f61117160208301836110c4565b6080602086015261118660808601828461110d565b91505061119660408401846110c4565b85830360408701526111a983828461110d565b9250505060608301356111bb81611152565b8015156060860152508091505092915050565b6001600160a01b0383168152604060208083018290528335918301919091525f9083013536849003605e19018112611204575f5ffd5b608060608401528301803560c084015261122160208201826110c4565b606060e08601526112376101208601828461110d565b9150506040820135601e19833603018112611250575f5ffd5b60209201918201913567ffffffffffffffff81111561126d575f5ffd5b8060051b80360384131561127f575f5ffd5b85830360bf19016101008701528183526001600160fb1b038211156112a2575f5ffd5b8084602085013780830193505050506112be60408501856110c4565b601f198584030160808601526112d860208401828461110d565b925050506112e96060850185611135565b838203603f190160a08501526112ff828261115f565b9695505050505050565b5f5f6040838503121561131a575f5ffd5b825161132581611152565b6020939093015192949293505050565b5f8161134357611343611098565b505f19019056fea2646970667358221220110ddc2970eed253c519394329b0ffb80fde268921fbca2b2308198d944643f864736f6c634300081e0033","sourceMap":"681:9071:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5964:529;;;;;;:::i;:::-;;:::i;:::-;;9650:100;;;:::i;741:23::-;;;;;-1:-1:-1;;;;;741:23:9;;;;;;-1:-1:-1;;;;;686:32:173;;;668:51;;656:2;641:18;741:23:9;;;;;;;;884:61;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;884:61:9;;;7056:416;;;;;;:::i;:::-;;:::i;3196:473::-;;;;;;:::i;:::-;;:::i;:::-;;;;1856:14:173;;1849:22;1831:41;;1903:2;1888:18;;1881:34;;;;-1:-1:-1;;;;;1951:32:173;1931:18;;;1924:60;1819:2;1804:18;3196:473:9;1609:381:173;768:18:9;;;;;-1:-1:-1;;;768:18:9;;;;;;;;;2160:14:173;;2153:22;2135:41;;2123:2;2108:18;768::9;1995:187:173;8806:111:9;;;;;;:::i;:::-;8865:7;8895:16;;;:7;:16;;;;;;-1:-1:-1;;;;;8895:16:9;;8806:111;5411:374;;;;;;:::i;:::-;;:::i;4123:229::-;;;;;;:::i;:::-;;:::i;9438:106::-;;;:::i;9034:181::-;;;;;;:::i;:::-;;:::i;4470:182::-;;;;;;:::i;:::-;;:::i;7584:329::-;;;;;;:::i;:::-;;:::i;1049:51::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1049:51:9;;;4821:473;;;;;;:::i;:::-;;:::i;821:33::-;;;;;-1:-1:-1;;;;;821:33:9;;;8077:459;;;;;;:::i;:::-;;:::i;993:31::-;;;;;;;;;3803:25:173;;;3791:2;3776:18;993:31:9;3657:177:173;1194:51:9;;;;;;:::i;:::-;;;;;;;;;;;;;;1143:26;;;;;;6778:121;;;;;;:::i;:::-;6842:7;6872:21;;;:12;:21;;;;;;-1:-1:-1;;;;;6872:21:9;;6778:121;717:20;;;;;-1:-1:-1;;;;;717:20:9;;;5964:529;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;;;;;;;;;6065:7;6057:56:::1;;;;-1:-1:-1::0;;;6057:56:9::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6127:28:9;::::1;6119:75;;;;-1:-1:-1::0;;;6119:75:9::1;;;;;;;:::i;:::-;6250:1;6216:21:::0;;;:12:::1;:21;::::0;;;;;-1:-1:-1;;;;;6216:21:9::1;6200:90;;;;-1:-1:-1::0;;;6200:90:9::1;;;;;;;:::i;:::-;6296:22;6329:21:::0;;;:12:::1;:21;::::0;;;;;;;-1:-1:-1;;;;;;6357:61:9;::::1;-1:-1:-1::0;;;;;6357:61:9;;::::1;::::0;;::::1;::::0;;;6429:59;;6329:21;::::1;::::0;;;;;6429:59:::1;::::0;::::1;6051:442;5964:529:::0;;:::o;9650:100::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;9694:6:::1;:14:::0;;-1:-1:-1;;;;9694:14:9::1;::::0;;9719:26:::1;::::0;-1:-1:-1;2135:41:173;;9719:26:9::1;::::0;2123:2:173;2108:18;9719:26:9::1;;;;;;;;9650:100::o:0;7056:416::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;-1:-1:-1;;;;;7144:23:9;::::1;7136:65;;;::::0;-1:-1:-1;;;7136:65:9;;5734:2:173;7136:65:9::1;::::0;::::1;5716:21:173::0;5773:2;5753:18;;;5746:30;5812:31;5792:18;;;5785:59;5861:18;;7136:65:9::1;5532:353:173::0;7136:65:9::1;7215:7:::0;7207:56:::1;;;;-1:-1:-1::0;;;7207:56:9::1;;;;;;;:::i;:::-;7314:1;7285:16:::0;;;:7:::1;:16;::::0;;;;;-1:-1:-1;;;;;7285:16:9::1;7277:39:::0;7269:85:::1;;;::::0;-1:-1:-1;;;7269:85:9;;6092:2:173;7269:85:9::1;::::0;::::1;6074:21:173::0;6131:2;6111:18;;;6104:30;6170:34;6150:18;;;6143:62;-1:-1:-1;;;6221:18:173;;;6214:31;6262:19;;7269:85:9::1;5890:397:173::0;7269:85:9::1;7360:16;::::0;;;:7:::1;:16;::::0;;;;:46;;-1:-1:-1;;;;;;7360:46:9::1;-1:-1:-1::0;;;;;7360:46:9;::::1;;::::0;;7412:11:::1;:13:::0;;;::::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;7436:31:9::1;::::0;-1:-1:-1;;;;;7436:31:9;::::1;::::0;7448:7;;7436:31:::1;::::0;;;::::1;7056:416:::0;;:::o;3196:473::-;3306:10;3318:24;3344:23;3963:6;;;;;;;;;;;3962:7;3954:43;;;;-1:-1:-1;;;3954:43:9;;6766:2:173;3954:43:9;;;6748:21:173;6805:2;6785:18;;;6778:30;6844:25;6824:18;;;6817:53;6887:18;;3954:43:9;6564:347:173;3954:43:9;3426:14;::::1;3377:33;3413:28:::0;;;:12:::1;:28;::::0;;;;;-1:-1:-1;;;;;3413:28:9::1;::::0;3447:80:::1;;;;-1:-1:-1::0;;;3447:80:9::1;;;;;;;:::i;:::-;3580:12;::::0;3561:40:::1;::::0;-1:-1:-1;;;3561:40:9;;-1:-1:-1;;;;;3561:18:9;;::::1;::::0;::::1;::::0;:40:::1;::::0;3580:12;;::::1;::::0;3594:6;;3561:40:::1;;;:::i;:::-;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3648:14:::0;::::1;3640:23;::::0;;;:7:::1;:23;::::0;;;;;3533:68;;-1:-1:-1;;;;;3640:23:9;;::::1;::::0;-1:-1:-1;3196:473:9;-1:-1:-1;;;3196:473:9:o;5411:374::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;5488:7;5480:56:::1;;;;-1:-1:-1::0;;;5480:56:9::1;;;;;;;:::i;:::-;5542:19;5572:21:::0;;;:12:::1;:21;::::0;;;;;-1:-1:-1;;;;;5572:21:9::1;::::0;5600:71:::1;;;;-1:-1:-1::0;;;5600:71:9::1;;;;;;;:::i;:::-;5684:21;::::0;;;:12:::1;:21;::::0;;;;5677:28;;-1:-1:-1;;;;;;5677:28:9::1;::::0;;5711:16:::1;:18:::0;;;::::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;5740:40:9::1;::::0;-1:-1:-1;;;;;5740:40:9;::::1;::::0;5759:7;;5740:40:::1;::::0;;;::::1;5474:311;5411:374:::0;:::o;4123:229::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;-1:-1:-1;;;;;4197:22:9;::::1;4189:63;;;::::0;-1:-1:-1;;;4189:63:9;;11847:2:173;4189:63:9::1;::::0;::::1;11829:21:173::0;11886:2;11866:18;;;11859:30;11925;11905:18;;;11898:58;11973:18;;4189:63:9::1;11645:352:173::0;4189:63:9::1;4258:16;4277:5:::0;;-1:-1:-1;;;;;4288:16:9;;::::1;-1:-1:-1::0;;;;;;4288:16:9;::::1;::::0;::::1;::::0;;4315:32:::1;::::0;4277:5;;;::::1;::::0;;;4315:32:::1;::::0;4258:16;4315:32:::1;4183:169;4123:229:::0;:::o;9438:106::-;3833:5;;-1:-1:-1;;;;;3833:5:9;3819:10;:19;;:45;;-1:-1:-1;3856:8:9;;-1:-1:-1;;;;;3856:8:9;3842:10;:22;3819:45;3811:96;;;;-1:-1:-1;;;3811:96:9;;12204:2:173;3811:96:9;;;12186:21:173;12243:2;12223:18;;;12216:30;12282:34;12262:18;;;12255:62;-1:-1:-1;;;12333:18:173;;;12326:36;12379:19;;3811:96:9;12002:402:173;3811:96:9;9499:4:::1;9490:13:::0;;-1:-1:-1;;;;9490:13:9::1;-1:-1:-1::0;;;9490:13:9::1;::::0;;9514:25:::1;::::0;2135:41:173;;;9514:25:9::1;::::0;2123:2:173;2108:18;9514:25:9::1;1995:187:173::0;9034:181:9;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;9109:16:::1;9128:11:::0;;;:6:::1;:11;::::0;;;;;;;;;;9145:19;;;;9175:35;;12583:25:173;;;12624:18;;;12617:34;;;9128:11:9;;;9175:35:::1;::::0;12556:18:173;9175:35:9::1;;;;;;;9103:112;9034:181:::0;;:::o;4470:182::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;4559:8:::1;::::0;;-1:-1:-1;;;;;4573:22:9;;::::1;-1:-1:-1::0;;;;;;4573:22:9;::::1;::::0;::::1;::::0;;;4606:41:::1;::::0;4559:8;::::1;::::0;4573:22;4559:8;;4606:41:::1;::::0;4537:19:::1;::::0;4606:41:::1;4531:121;4470:182:::0;:::o;7584:329::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;7656:7;7648:56:::1;;;;-1:-1:-1::0;;;7648:56:9::1;;;;;;;:::i;:::-;7710:14;7735:16:::0;;;:7:::1;:16;::::0;;;;;-1:-1:-1;;;;;7735:16:9::1;::::0;7758:61:::1;;;::::0;-1:-1:-1;;;7758:61:9;;12864:2:173;7758:61:9::1;::::0;::::1;12846:21:173::0;12903:2;12883:18;;;12876:30;12942;12922:18;;;12915:58;12990:18;;7758:61:9::1;12662:352:173::0;7758:61:9::1;7832:16;::::0;;;:7:::1;:16;::::0;;;;7825:23;;-1:-1:-1;;;;;;7825:23:9::1;::::0;;7854:11:::1;:13:::0;;;::::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;7878:30:9::1;::::0;-1:-1:-1;;;;;7878:30:9;::::1;::::0;7892:7;;7878:30:::1;::::0;;;::::1;7642:271;7584:329:::0;:::o;4821:473::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;-1:-1:-1;;;;;4930:34:9;::::1;4922:81;;;;-1:-1:-1::0;;;4922:81:9::1;;;;;;;:::i;:::-;5017:7:::0;5009:56:::1;;;;-1:-1:-1::0;;;5009:56:9::1;;;;;;;:::i;:::-;5121:1;5087:21:::0;;;:12:::1;:21;::::0;;;;;-1:-1:-1;;;;;5087:21:9::1;5079:44:::0;5071:95:::1;;;::::0;-1:-1:-1;;;5071:95:9;;13221:2:173;5071:95:9::1;::::0;::::1;13203:21:173::0;13260:2;13240:18;;;13233:30;13299:34;13279:18;;;13272:62;-1:-1:-1;;;13350:18:173;;;13343:36;13396:19;;5071:95:9::1;13019:402:173::0;5071:95:9::1;5172:21;::::0;;;:12:::1;:21;::::0;;;;:35;;-1:-1:-1;;;;;;5172:35:9::1;-1:-1:-1::0;;;;;5172:35:9;::::1;;::::0;;5213:16:::1;:18:::0;;;::::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;5242:47:9::1;::::0;-1:-1:-1;;;;;5242:47:9;::::1;::::0;5259:7;;5242:47:::1;::::0;;;::::1;4821:473:::0;;:::o;8077:459::-;3722:5;;-1:-1:-1;;;;;3722:5:9;3708:10;:19;3700:58;;;;-1:-1:-1;;;3700:58:9;;;;;;;:::i;:::-;8168:7;8160:56:::1;;;;-1:-1:-1::0;;;8160:56:9::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8230:23:9;::::1;8222:65;;;::::0;-1:-1:-1;;;8222:65:9;;5734:2:173;8222:65:9::1;::::0;::::1;5716:21:173::0;5773:2;5753:18;;;5746:30;5812:31;5792:18;;;5785:59;5861:18;;8222:65:9::1;5532:353:173::0;8222:65:9::1;8338:1;8309:16:::0;;;:7:::1;:16;::::0;;;;;-1:-1:-1;;;;;8309:16:9::1;8293:80;;;::::0;-1:-1:-1;;;8293:80:9;;12864:2:173;8293:80:9::1;::::0;::::1;12846:21:173::0;12903:2;12883:18;;;12876:30;12942;12922:18;;;12915:58;12990:18;;8293:80:9::1;12662:352:173::0;8293:80:9::1;8379:17;8407:16:::0;;;:7:::1;:16;::::0;;;;;;;-1:-1:-1;;;;;;8430:46:9;::::1;-1:-1:-1::0;;;;;8430:46:9;;::::1;::::0;;::::1;::::0;;;8487:44;;8407:16;::::1;::::0;;;;;8487:44:::1;::::0;::::1;8154:382;8077:459:::0;;:::o;14:131:173:-;-1:-1:-1;;;;;89:31:173;;79:42;;69:70;;135:1;132;125:12;69:70;14:131;:::o;150:367::-;218:6;226;279:2;267:9;258:7;254:23;250:32;247:52;;;295:1;292;285:12;247:52;340:23;;;-1:-1:-1;439:2:173;424:18;;411:32;452:33;411:32;452:33;:::i;:::-;504:7;494:17;;;150:367;;;;;:::o;730:226::-;789:6;842:2;830:9;821:7;817:23;813:32;810:52;;;858:1;855;848:12;810:52;-1:-1:-1;903:23:173;;730:226;-1:-1:-1;730:226:173:o;1200:404::-;1303:6;1356:2;1344:9;1335:7;1331:23;1327:32;1324:52;;;1372:1;1369;1362:12;1324:52;1412:9;1399:23;1445:18;1437:6;1434:30;1431:50;;;1477:1;1474;1467:12;1431:50;1500:22;;1556:3;1538:16;;;1534:26;1531:46;;;1573:1;1570;1563:12;1531:46;1596:2;1200:404;-1:-1:-1;;;1200:404:173:o;2187:247::-;2246:6;2299:2;2287:9;2278:7;2274:23;2270:32;2267:52;;;2315:1;2312;2305:12;2267:52;2354:9;2341:23;2373:31;2398:5;2373:31;:::i;2439:346::-;2507:6;2515;2568:2;2556:9;2547:7;2543:23;2539:32;2536:52;;;2584:1;2581;2574:12;2536:52;-1:-1:-1;;2629:23:173;;;2749:2;2734:18;;;2721:32;;-1:-1:-1;2439:346:173:o;4021:350::-;4223:2;4205:21;;;4262:2;4242:18;;;4235:30;4301:28;4296:2;4281:18;;4274:56;4362:2;4347:18;;4021:350::o;4376:346::-;4578:2;4560:21;;;4617:2;4597:18;;;4590:30;-1:-1:-1;;;4651:2:173;4636:18;;4629:52;4713:2;4698:18;;4376:346::o;4727:398::-;4929:2;4911:21;;;4968:2;4948:18;;;4941:30;5007:34;5002:2;4987:18;;4980:62;-1:-1:-1;;;5073:2:173;5058:18;;5051:32;5115:3;5100:19;;4727:398::o;5130:397::-;5332:2;5314:21;;;5371:2;5351:18;;;5344:30;5410:34;5405:2;5390:18;;5383:62;-1:-1:-1;;;5476:2:173;5461:18;;5454:31;5517:3;5502:19;;5130:397::o;6292:127::-;6353:10;6348:3;6344:20;6341:1;6334:31;6384:4;6381:1;6374:15;6408:4;6405:1;6398:15;6424:135;6463:3;6484:17;;;6481:43;;6504:18;;:::i;:::-;-1:-1:-1;6551:1:173;6540:13;;6424:135::o;6916:500::-;6974:5;6981:6;7041:3;7028:17;7127:2;7123:7;7112:8;7096:14;7092:29;7088:43;7068:18;7064:68;7054:96;;7146:1;7143;7136:12;7054:96;7174:33;;7278:4;7265:18;;;-1:-1:-1;7226:21:173;;-1:-1:-1;7306:18:173;7295:30;;7292:50;;;7338:1;7335;7328:12;7292:50;7385:6;7369:14;7365:27;7358:5;7354:39;7351:59;;;7406:1;7403;7396:12;7351:59;6916:500;;;;;:::o;7421:266::-;7509:6;7504:3;7497:19;7561:6;7554:5;7547:4;7542:3;7538:14;7525:43;-1:-1:-1;7613:1:173;7588:16;;;7606:4;7584:27;;;7577:38;;;;7669:2;7648:15;;;-1:-1:-1;;7644:29:173;7635:39;;;7631:50;;7421:266::o;7692:299::-;7765:5;7824:3;7811:17;7910:3;7906:8;7895;7879:14;7875:29;7871:44;7851:18;7847:69;7837:97;;7930:1;7927;7920:12;7837:97;7952:33;;;;7692:299;-1:-1:-1;;7692:299:173:o;7996:118::-;8082:5;8075:13;8068:21;8061:5;8058:32;8048:60;;8104:1;8101;8094:12;8119:752;8227:5;8214:19;8209:3;8202:32;8184:3;8277:55;8326:4;8319:5;8315:16;8308:5;8277:55;:::i;:::-;8364:4;8357;8352:3;8348:14;8341:28;8390:69;8453:4;8448:3;8444:14;8430:12;8416;8390:69;:::i;:::-;8378:81;;;8506:55;8555:4;8548:5;8544:16;8537:5;8506:55;:::i;:::-;8603:3;8597:4;8593:14;8586:4;8581:3;8577:14;8570:38;8631:63;8689:4;8673:14;8657;8631:63;:::i;:::-;8617:77;;;;8742:4;8735:5;8731:16;8718:30;8757;8779:7;8757:30;:::i;:::-;8833:7;8826:15;8819:23;8812:4;8807:3;8803:14;8796:47;;8859:6;8852:13;;;8119:752;;;;:::o;8876:2312::-;-1:-1:-1;;;;;9141:32:173;;9123:51;;9210:2;9205;9190:18;;;9183:30;;;9254:20;;9290:18;;;9283:33;;;;-1:-1:-1;;9364:15:173;;9351:29;9431:14;9427:27;;;-1:-1:-1;;9423:41:173;9399:66;;9389:94;;9479:1;9476;9469:12;9389:94;9574:4;9569:2;9554:18;;9547:32;9507:31;;9624:21;;9676:3;9661:19;;9654:36;9733:57;9786:2;9773:16;;9507:31;9733:57;:::i;:::-;9827:2;9821:3;9810:9;9806:19;9799:31;9853:74;9922:3;9911:9;9907:19;9893:12;9879;9853:74;:::i;:::-;9839:88;;;9990:2;9981:7;9977:16;9964:30;10077:2;10073:7;10063;10047:14;10043:28;10039:42;10017:20;10013:69;10003:97;;10096:1;10093;10086:12;10003:97;10239:2;10124:34;;10226:16;;;;10181:21;10265:18;10254:30;;10251:50;;;10297:1;10294;10287:12;10251:50;10327:6;10324:1;10320:14;10379:2;10363:14;10359:23;10350:7;10346:37;10343:57;;;10396:1;10393;10386:12;10343:57;10441:22;;;-1:-1:-1;;10437:37:173;10431:3;10416:19;;10409:66;10484:22;;;-1:-1:-1;;;;;10518:31:173;;10515:51;;;10562:1;10559;10552:12;10515:51;10614:2;10605:7;10600:2;10592:6;10588:15;10575:42;10648:2;10640:6;10636:15;10626:25;;;;;10698:55;10749:2;10741:6;10737:15;10729:6;10698:55;:::i;:::-;-1:-1:-1;;10799:18:173;;;10791:41;10784:4;10769:20;;10762:71;10856:70;10819:2;10914:11;;10898:14;10882;10856:70;:::i;:::-;10842:84;;;;10957:70;11023:2;11015:6;11011:15;11003:6;10957:70;:::i;:::-;11068:22;;;-1:-1:-1;;11064:36:173;11058:3;11043:19;;11036:65;11118:64;11072:6;11159:14;11118:64;:::i;:::-;11110:72;8876:2312;-1:-1:-1;;;;;;8876:2312:173:o;11193:306::-;11269:6;11277;11330:2;11318:9;11309:7;11305:23;11301:32;11298:52;;;11346:1;11343;11336:12;11298:52;11378:9;11372:16;11397:28;11419:5;11397:28;:::i;:::-;11489:2;11474:18;;;;11468:25;11444:5;;11468:25;;-1:-1:-1;;;11193:306:173:o;11504:136::-;11543:3;11571:5;11561:39;;11580:18;;:::i;:::-;-1:-1:-1;;;11616:18:173;;11504:136::o","linkReferences":{}},"methodIdentifiers":{"addHelper(bytes32,address)":"52741df5","addSubVerifier(bytes32,address)":"b3c83d99","admin()":"f851a440","config(bytes32)":"cc718f76","getHelper(bytes32)":"5dd41f2f","getSubVerifier(bytes32)":"f2649807","guardian()":"452a9320","helperCount()":"da0ff2c6","helpers(bytes32)":"a7ad58bf","pause()":"8456cb59","paused()":"5c975abb","removeHelper(bytes32)":"9bfefbfd","removeSubVerifier(bytes32)":"6f907638","rootRegistry()":"b96b161c","setGuardian(address)":"8a0dac4a","subverifierCount()":"c961ba7e","subverifiers(bytes32)":"492f34fb","transferAdmin(address)":"75829def","unpause()":"3f4ba83a","updateConfig(bytes32,bytes32)":"889eba3b","updateHelper(bytes32,address)":"ba5f3f9d","updateSubVerifier(bytes32,address)":"07915439","verify((bytes32,(bytes32,bytes,bytes32[]),bytes,(uint256,string,string,bool)))":"578bd921"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_admin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_guardian\",\"type\":\"address\"},{\"internalType\":\"contract IRootRegistry\",\"name\":\"_rootRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAdmin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"oldValue\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"newValue\",\"type\":\"bytes32\"}],\"name\":\"ConfigUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldGuardian\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newGuardian\",\"type\":\"address\"}],\"name\":\"GuardianUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"helper\",\"type\":\"address\"}],\"name\":\"HelperAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"helper\",\"type\":\"address\"}],\"name\":\"HelperRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldHelper\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newHelper\",\"type\":\"address\"}],\"name\":\"HelperUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"paused\",\"type\":\"bool\"}],\"name\":\"PausedStatusChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldRootRegistry\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newRootRegistry\",\"type\":\"address\"}],\"name\":\"RootRegistryUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"guardian\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"rootRegistry\",\"type\":\"address\"}],\"name\":\"RootVerifierDeployed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subVerifier\",\"type\":\"address\"}],\"name\":\"SubVerifierAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subVerifier\",\"type\":\"address\"}],\"name\":\"SubVerifierRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldSubVerifier\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newSubVerifier\",\"type\":\"address\"}],\"name\":\"SubVerifierUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"newHelper\",\"type\":\"address\"}],\"name\":\"addHelper\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"contract ZKPassportSubVerifier\",\"name\":\"subVerifier\",\"type\":\"address\"}],\"name\":\"addSubVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"config\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"name\":\"getHelper\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"name\":\"getSubVerifier\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"guardian\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"helperCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"helpers\",\"outputs\":[{\"internalType\":\"contract ZKPassportHelper\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"name\":\"removeHelper\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"}],\"name\":\"removeSubVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rootRegistry\",\"outputs\":[{\"internalType\":\"contract IRootRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newGuardian\",\"type\":\"address\"}],\"name\":\"setGuardian\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"subverifierCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"subverifiers\",\"outputs\":[{\"internalType\":\"contract ZKPassportSubVerifier\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"transferAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"value\",\"type\":\"bytes32\"}],\"name\":\"updateConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"newHelper\",\"type\":\"address\"}],\"name\":\"updateHelper\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"newSubVerifier\",\"type\":\"address\"}],\"name\":\"updateSubVerifier\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"vkeyHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"},{\"internalType\":\"bytes32[]\",\"name\":\"publicInputs\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct ProofVerificationData\",\"name\":\"proofVerificationData\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"committedInputs\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"validityPeriodInSeconds\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"domain\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"scope\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"devMode\",\"type\":\"bool\"}],\"internalType\":\"struct ServiceConfig\",\"name\":\"serviceConfig\",\"type\":\"tuple\"}],\"internalType\":\"struct ProofVerificationParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"uniqueIdentifier\",\"type\":\"bytes32\"},{\"internalType\":\"contract ZKPassportHelper\",\"name\":\"helper\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addHelper(bytes32,address)\":{\"params\":{\"newHelper\":\"The address of the helper\",\"version\":\"The version identifier\"}},\"addSubVerifier(bytes32,address)\":{\"params\":{\"subVerifier\":\"The address of the subverifier\",\"version\":\"The version identifier\"}},\"constructor\":{\"params\":{\"_admin\":\"The admin address\",\"_guardian\":\"The guardian address\",\"_rootRegistry\":\"The root registry address\"}},\"getHelper(bytes32)\":{\"details\":\"Returns zero address if no helper exists for the given version\",\"params\":{\"version\":\"The version identifier\"},\"returns\":{\"_0\":\"The address of the helper contract, or zero address if not found\"}},\"getSubVerifier(bytes32)\":{\"details\":\"Returns zero address if no subverifier exists for the given version\",\"params\":{\"version\":\"The version identifier\"},\"returns\":{\"_0\":\"The address of the subverifier contract, or zero address if not found\"}},\"pause()\":{\"details\":\"Only admin or guardian can pause the root verifierThis is a security measure to pause all proof verification operations in the event of an emergency\"},\"removeHelper(bytes32)\":{\"params\":{\"version\":\"The version identifier\"}},\"removeSubVerifier(bytes32)\":{\"params\":{\"version\":\"The version identifier\"}},\"setGuardian(address)\":{\"params\":{\"newGuardian\":\"The new guardian address\"}},\"transferAdmin(address)\":{\"params\":{\"newAdmin\":\"The new admin address\"}},\"unpause()\":{\"details\":\"Only admin can unpause the root verifier\"},\"updateConfig(bytes32,bytes32)\":{\"params\":{\"key\":\"The config key\",\"value\":\"The config value\"}},\"updateHelper(bytes32,address)\":{\"params\":{\"newHelper\":\"The address of the new helper\",\"version\":\"The version identifier\"}},\"updateSubVerifier(bytes32,address)\":{\"params\":{\"newSubVerifier\":\"The address of the new subverifier\",\"version\":\"The version identifier\"}},\"verify((bytes32,(bytes32,bytes,bytes32[]),bytes,(uint256,string,string,bool)))\":{\"details\":\"This function is called by the root verifier to verify a proof for a specific version\",\"params\":{\"params\":\"The proof verification parameters\"},\"returns\":{\"helper\":\"The helper for the calling contract to use to verify the committed inputs\",\"uniqueIdentifier\":\"The unique identifier associated with the ID used to generate the proof\",\"valid\":\"True if the proof is valid or false otherwise\"}}},\"title\":\"ZKPassport Root Verifier\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addHelper(bytes32,address)\":{\"notice\":\"Adds a helper for a specific version\"},\"addSubVerifier(bytes32,address)\":{\"notice\":\"Adds a subverifier for a specific version\"},\"constructor\":{\"notice\":\"Constructor\"},\"getHelper(bytes32)\":{\"notice\":\"Gets the helper address for a specific version\"},\"getSubVerifier(bytes32)\":{\"notice\":\"Gets the subverifier address for a specific version\"},\"pause()\":{\"notice\":\"Pause the root verifier\"},\"removeHelper(bytes32)\":{\"notice\":\"Removes a helper for a specific version\"},\"removeSubVerifier(bytes32)\":{\"notice\":\"Removes a subverifier for a specific version\"},\"setGuardian(address)\":{\"notice\":\"Sets the guardian role to a new address\"},\"transferAdmin(address)\":{\"notice\":\"Transfers the admin role to a new address\"},\"unpause()\":{\"notice\":\"Unpause the root verifier\"},\"updateConfig(bytes32,bytes32)\":{\"notice\":\"Update a config value\"},\"updateHelper(bytes32,address)\":{\"notice\":\"Updates a helper for a specific version\"},\"updateSubVerifier(bytes32,address)\":{\"notice\":\"Updates a subverifier for a specific version\"},\"verify((bytes32,(bytes32,bytes,bytes32[]),bytes,(uint256,string,string,bool)))\":{\"notice\":\"Verifies a ZKPassport zero-knowledge proof\"}},\"notice\":\"Main entry point for verifying ZKPassport identity proofs\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/circuits/src/solidity/src/ZKPassportRootVerifier.sol\":\"ZKPassportRootVerifier\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@aztec-blob-lib/=src/mock/libraries/\",\":@aztec/=src/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@oz/=lib/openzeppelin-contracts/contracts/\",\":@test/=test/\",\":@zkpassport-test/=lib/circuits/src/solidity/test/\",\":@zkpassport/=lib/circuits/src/solidity/src/\",\":circuits/=lib/circuits/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/circuits/src/solidity/src/Constants.sol\":{\"keccak256\":\"0x29a25ab24727bb03f356fe124eda7970f1769130855ebf584e4225e2718927a7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3dff3096a211bcd97a4dad4e459bd3c684275e3271c493191d3819bbf4326702\",\"dweb:/ipfs/QmfLyG5f3JWRoY5sF9kkDLBDrxymQsuk9uncw65JdRa7Sp\"]},\"lib/circuits/src/solidity/src/DateUtils.sol\":{\"keccak256\":\"0x4176feda967f91ccf0a1cdecc75bbf7e5aaad7b46f95e133887e3ac6ae9126f6\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://6774599f7320a37f2e5cc22e0d8e59a1f46841a6ac94d7d45b072a809237e1ab\",\"dweb:/ipfs/QmdrX9uQKsvN9gTgCD1zd1kigvJGsgHbvabvdWaWHuSeY4\"]},\"lib/circuits/src/solidity/src/IProofVerifier.sol\":{\"keccak256\":\"0xf8acc6ee390c406eaa8415863f156e251935f8de51bcd3c876871fbe5b5b4f14\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://64016d156d15fd43d407e832fd7b333e07e80b42f0ed9d845a8cc114d3857aa6\",\"dweb:/ipfs/QmP7zSvchyDqov13cyuWxLJDYBBpYZxrPEdGQcheyoJkUm\"]},\"lib/circuits/src/solidity/src/IRootRegistry.sol\":{\"keccak256\":\"0xc994fab81ea1202a93620e7e7a01ba1e61f055498ed5b09503f4b384d0554b2a\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://12a19bab224c63ee4a0e3b4048c24e80b3ef5a3459070816c20f2c32b2ad5f72\",\"dweb:/ipfs/QmW1DF8mAwBfacrG2r2R3uyY92i6q1h1hZvHPuwMdXTANg\"]},\"lib/circuits/src/solidity/src/InputsExtractor.sol\":{\"keccak256\":\"0xd8d08cc68a571c9efdddd90ea274c18694284d40a9f1d0a1112a4999fd6a58da\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://000752a284d1df5c0687d32554c83e99afedab49e23d7213679ed93424760450\",\"dweb:/ipfs/QmWrFS4ChUv4okqnEgSLiuSsxohDnTnYLWeyYviVbPTgcH\"]},\"lib/circuits/src/solidity/src/StringUtils.sol\":{\"keccak256\":\"0xd52eb407eef932c9a343f1225fc997b7194ff0f05c488661a7adb4a37f980306\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://60bfaf52ebd50633d6eff5ea346d25283962495c630b37f4c0cd6008e8d8fd11\",\"dweb:/ipfs/QmWVtJnjcaowsFUBRRQ7eNTntghZ4FekXXgeQNAV4PkDWe\"]},\"lib/circuits/src/solidity/src/Types.sol\":{\"keccak256\":\"0x66d73b090401a5f424e1feacf1b503dcd906163f4c749189db3dc108d6dfd668\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d90eff17b597915e95c01a171c4378e7e4e287d35ca25dbd3f684373e93cda0c\",\"dweb:/ipfs/QmYe1wixU4zZAogteHT5eubcB4qzScCYzLtYFpFBitpZeR\"]},\"lib/circuits/src/solidity/src/ZKPassportHelper.sol\":{\"keccak256\":\"0xebc7d0a4b7dae4a78d38381a36cc19e04933f302cf1f0516c8f5d68128afbd16\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7504f8711789c76e7294dd12bf172e5226034a5a2202057180ee047939eefa34\",\"dweb:/ipfs/QmTGuSBmYmDBWutpyTrxPxWQ7DA6kpV6kLQSwB3wMaLCN5\"]},\"lib/circuits/src/solidity/src/ZKPassportRootVerifier.sol\":{\"keccak256\":\"0x5fb7a856f66496a36e4de2ff2dca8fcce5a2c3db3adbf20910b1b20f24e6a009\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c2693f7a086c3ff60441a12a5d72c6a2fbd811123c03d73b0887474cbefe6355\",\"dweb:/ipfs/QmbTgqop8Fb9nxcUveDSDgyMXzVBY1xw2u8eMxaFfVVp1s\"]},\"lib/circuits/src/solidity/src/ZKPassportSubVerifier.sol\":{\"keccak256\":\"0x093e93f34571a7afe3c5a42192a366397b91e9fdb6167075b9250bcfd26fe8dd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://981fec528fb1f8a3032b99905801658305139d82679598579b7fe8afb1b7f6a1\",\"dweb:/ipfs/QmfZ1n1KrxcijmToULMgMccLLyLH5DVVQWJ9SrWPMTRrfw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_admin","type":"address"},{"internalType":"address","name":"_guardian","type":"address"},{"internalType":"contract IRootRegistry","name":"_rootRegistry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"oldAdmin","type":"address","indexed":true},{"internalType":"address","name":"newAdmin","type":"address","indexed":true}],"type":"event","name":"AdminUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"oldValue","type":"bytes32","indexed":false},{"internalType":"bytes32","name":"newValue","type":"bytes32","indexed":false}],"type":"event","name":"ConfigUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"oldGuardian","type":"address","indexed":true},{"internalType":"address","name":"newGuardian","type":"address","indexed":true}],"type":"event","name":"GuardianUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32","indexed":true},{"internalType":"address","name":"helper","type":"address","indexed":true}],"type":"event","name":"HelperAdded","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32","indexed":true},{"internalType":"address","name":"helper","type":"address","indexed":true}],"type":"event","name":"HelperRemoved","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32","indexed":true},{"internalType":"address","name":"oldHelper","type":"address","indexed":true},{"internalType":"address","name":"newHelper","type":"address","indexed":true}],"type":"event","name":"HelperUpdated","anonymous":false},{"inputs":[{"internalType":"bool","name":"paused","type":"bool","indexed":false}],"type":"event","name":"PausedStatusChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"oldRootRegistry","type":"address","indexed":true},{"internalType":"address","name":"newRootRegistry","type":"address","indexed":true}],"type":"event","name":"RootRegistryUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"admin","type":"address","indexed":false},{"internalType":"address","name":"guardian","type":"address","indexed":false},{"internalType":"address","name":"rootRegistry","type":"address","indexed":false}],"type":"event","name":"RootVerifierDeployed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32","indexed":true},{"internalType":"address","name":"subVerifier","type":"address","indexed":true}],"type":"event","name":"SubVerifierAdded","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32","indexed":true},{"internalType":"address","name":"subVerifier","type":"address","indexed":true}],"type":"event","name":"SubVerifierRemoved","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32","indexed":true},{"internalType":"address","name":"oldSubVerifier","type":"address","indexed":true},{"internalType":"address","name":"newSubVerifier","type":"address","indexed":true}],"type":"event","name":"SubVerifierUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"address","name":"newHelper","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addHelper"},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"contract ZKPassportSubVerifier","name":"subVerifier","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addSubVerifier"},{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"stateMutability":"view","type":"function","name":"config","outputs":[{"internalType":"bytes32","name":"value","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getHelper","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getSubVerifier","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"guardian","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"helperCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"helpers","outputs":[{"internalType":"contract ZKPassportHelper","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"removeHelper"},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"removeSubVerifier"},{"inputs":[],"stateMutability":"view","type":"function","name":"rootRegistry","outputs":[{"internalType":"contract IRootRegistry","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newGuardian","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setGuardian"},{"inputs":[],"stateMutability":"view","type":"function","name":"subverifierCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"subverifiers","outputs":[{"internalType":"contract ZKPassportSubVerifier","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferAdmin"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"updateConfig"},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"address","name":"newHelper","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateHelper"},{"inputs":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"address","name":"newSubVerifier","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateSubVerifier"},{"inputs":[{"internalType":"struct ProofVerificationParams","name":"params","type":"tuple","components":[{"internalType":"bytes32","name":"version","type":"bytes32"},{"internalType":"struct ProofVerificationData","name":"proofVerificationData","type":"tuple","components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"}]},{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple","components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}]}]}],"stateMutability":"view","type":"function","name":"verify","outputs":[{"internalType":"bool","name":"valid","type":"bool"},{"internalType":"bytes32","name":"uniqueIdentifier","type":"bytes32"},{"internalType":"contract ZKPassportHelper","name":"helper","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"addHelper(bytes32,address)":{"params":{"newHelper":"The address of the helper","version":"The version identifier"}},"addSubVerifier(bytes32,address)":{"params":{"subVerifier":"The address of the subverifier","version":"The version identifier"}},"constructor":{"params":{"_admin":"The admin address","_guardian":"The guardian address","_rootRegistry":"The root registry address"}},"getHelper(bytes32)":{"details":"Returns zero address if no helper exists for the given version","params":{"version":"The version identifier"},"returns":{"_0":"The address of the helper contract, or zero address if not found"}},"getSubVerifier(bytes32)":{"details":"Returns zero address if no subverifier exists for the given version","params":{"version":"The version identifier"},"returns":{"_0":"The address of the subverifier contract, or zero address if not found"}},"pause()":{"details":"Only admin or guardian can pause the root verifierThis is a security measure to pause all proof verification operations in the event of an emergency"},"removeHelper(bytes32)":{"params":{"version":"The version identifier"}},"removeSubVerifier(bytes32)":{"params":{"version":"The version identifier"}},"setGuardian(address)":{"params":{"newGuardian":"The new guardian address"}},"transferAdmin(address)":{"params":{"newAdmin":"The new admin address"}},"unpause()":{"details":"Only admin can unpause the root verifier"},"updateConfig(bytes32,bytes32)":{"params":{"key":"The config key","value":"The config value"}},"updateHelper(bytes32,address)":{"params":{"newHelper":"The address of the new helper","version":"The version identifier"}},"updateSubVerifier(bytes32,address)":{"params":{"newSubVerifier":"The address of the new subverifier","version":"The version identifier"}},"verify((bytes32,(bytes32,bytes,bytes32[]),bytes,(uint256,string,string,bool)))":{"details":"This function is called by the root verifier to verify a proof for a specific version","params":{"params":"The proof verification parameters"},"returns":{"helper":"The helper for the calling contract to use to verify the committed inputs","uniqueIdentifier":"The unique identifier associated with the ID used to generate the proof","valid":"True if the proof is valid or false otherwise"}}},"version":1},"userdoc":{"kind":"user","methods":{"addHelper(bytes32,address)":{"notice":"Adds a helper for a specific version"},"addSubVerifier(bytes32,address)":{"notice":"Adds a subverifier for a specific version"},"constructor":{"notice":"Constructor"},"getHelper(bytes32)":{"notice":"Gets the helper address for a specific version"},"getSubVerifier(bytes32)":{"notice":"Gets the subverifier address for a specific version"},"pause()":{"notice":"Pause the root verifier"},"removeHelper(bytes32)":{"notice":"Removes a helper for a specific version"},"removeSubVerifier(bytes32)":{"notice":"Removes a subverifier for a specific version"},"setGuardian(address)":{"notice":"Sets the guardian role to a new address"},"transferAdmin(address)":{"notice":"Transfers the admin role to a new address"},"unpause()":{"notice":"Unpause the root verifier"},"updateConfig(bytes32,bytes32)":{"notice":"Update a config value"},"updateHelper(bytes32,address)":{"notice":"Updates a helper for a specific version"},"updateSubVerifier(bytes32,address)":{"notice":"Updates a subverifier for a specific version"},"verify((bytes32,(bytes32,bytes,bytes32[]),bytes,(uint256,string,string,bool)))":{"notice":"Verifies a ZKPassport zero-knowledge proof"}},"version":1}},"settings":{"remappings":["@aztec-blob-lib/=src/mock/libraries/","@aztec/=src/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@oz/=lib/openzeppelin-contracts/contracts/","@test/=test/","@zkpassport-test/=lib/circuits/src/solidity/test/","@zkpassport/=lib/circuits/src/solidity/src/","circuits/=lib/circuits/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/circuits/src/solidity/src/ZKPassportRootVerifier.sol":"ZKPassportRootVerifier"},"evmVersion":"prague","libraries":{}},"sources":{"lib/circuits/src/solidity/src/Constants.sol":{"keccak256":"0x29a25ab24727bb03f356fe124eda7970f1769130855ebf584e4225e2718927a7","urls":["bzz-raw://3dff3096a211bcd97a4dad4e459bd3c684275e3271c493191d3819bbf4326702","dweb:/ipfs/QmfLyG5f3JWRoY5sF9kkDLBDrxymQsuk9uncw65JdRa7Sp"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/DateUtils.sol":{"keccak256":"0x4176feda967f91ccf0a1cdecc75bbf7e5aaad7b46f95e133887e3ac6ae9126f6","urls":["bzz-raw://6774599f7320a37f2e5cc22e0d8e59a1f46841a6ac94d7d45b072a809237e1ab","dweb:/ipfs/QmdrX9uQKsvN9gTgCD1zd1kigvJGsgHbvabvdWaWHuSeY4"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/IProofVerifier.sol":{"keccak256":"0xf8acc6ee390c406eaa8415863f156e251935f8de51bcd3c876871fbe5b5b4f14","urls":["bzz-raw://64016d156d15fd43d407e832fd7b333e07e80b42f0ed9d845a8cc114d3857aa6","dweb:/ipfs/QmP7zSvchyDqov13cyuWxLJDYBBpYZxrPEdGQcheyoJkUm"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/IRootRegistry.sol":{"keccak256":"0xc994fab81ea1202a93620e7e7a01ba1e61f055498ed5b09503f4b384d0554b2a","urls":["bzz-raw://12a19bab224c63ee4a0e3b4048c24e80b3ef5a3459070816c20f2c32b2ad5f72","dweb:/ipfs/QmW1DF8mAwBfacrG2r2R3uyY92i6q1h1hZvHPuwMdXTANg"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/InputsExtractor.sol":{"keccak256":"0xd8d08cc68a571c9efdddd90ea274c18694284d40a9f1d0a1112a4999fd6a58da","urls":["bzz-raw://000752a284d1df5c0687d32554c83e99afedab49e23d7213679ed93424760450","dweb:/ipfs/QmWrFS4ChUv4okqnEgSLiuSsxohDnTnYLWeyYviVbPTgcH"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/StringUtils.sol":{"keccak256":"0xd52eb407eef932c9a343f1225fc997b7194ff0f05c488661a7adb4a37f980306","urls":["bzz-raw://60bfaf52ebd50633d6eff5ea346d25283962495c630b37f4c0cd6008e8d8fd11","dweb:/ipfs/QmWVtJnjcaowsFUBRRQ7eNTntghZ4FekXXgeQNAV4PkDWe"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/Types.sol":{"keccak256":"0x66d73b090401a5f424e1feacf1b503dcd906163f4c749189db3dc108d6dfd668","urls":["bzz-raw://d90eff17b597915e95c01a171c4378e7e4e287d35ca25dbd3f684373e93cda0c","dweb:/ipfs/QmYe1wixU4zZAogteHT5eubcB4qzScCYzLtYFpFBitpZeR"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/ZKPassportHelper.sol":{"keccak256":"0xebc7d0a4b7dae4a78d38381a36cc19e04933f302cf1f0516c8f5d68128afbd16","urls":["bzz-raw://7504f8711789c76e7294dd12bf172e5226034a5a2202057180ee047939eefa34","dweb:/ipfs/QmTGuSBmYmDBWutpyTrxPxWQ7DA6kpV6kLQSwB3wMaLCN5"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/ZKPassportRootVerifier.sol":{"keccak256":"0x5fb7a856f66496a36e4de2ff2dca8fcce5a2c3db3adbf20910b1b20f24e6a009","urls":["bzz-raw://c2693f7a086c3ff60441a12a5d72c6a2fbd811123c03d73b0887474cbefe6355","dweb:/ipfs/QmbTgqop8Fb9nxcUveDSDgyMXzVBY1xw2u8eMxaFfVVp1s"],"license":"Apache-2.0"},"lib/circuits/src/solidity/src/ZKPassportSubVerifier.sol":{"keccak256":"0x093e93f34571a7afe3c5a42192a366397b91e9fdb6167075b9250bcfd26fe8dd","urls":["bzz-raw://981fec528fb1f8a3032b99905801658305139d82679598579b7fe8afb1b7f6a1","dweb:/ipfs/QmfZ1n1KrxcijmToULMgMccLLyLH5DVVQWJ9SrWPMTRrfw"],"license":"Apache-2.0"}},"version":1},"id":9}
|