@cofhe/mock-contracts 0.3.2 → 0.5.0
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/CHANGELOG.md +28 -0
- package/contracts/MockACL.sol +12 -34
- package/contracts/MockCoFHE.sol +5 -2
- package/contracts/MockTaskManager.sol +25 -1
- package/dist/index.d.mts +2173 -244
- package/dist/index.d.ts +2173 -244
- package/dist/index.js +5 -10
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +5 -10
- package/dist/index.mjs.map +1 -1
- package/package.json +15 -15
- package/src/MockACL.ts +1 -3
- package/src/MockTaskManager.ts +1 -3
- package/src/MockThresholdNetwork.ts +1 -3
- package/src/MockZkVerifier.ts +1 -3
- package/src/TestBed.ts +1 -3
- package/src/types.ts +0 -2
- package/contracts/foundry/CoFheTest.sol +0 -452
- package/contracts/foundry/MockZkVerifierSigner.sol +0 -40
- package/test/TestBed.t.sol +0 -71
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/MockTaskManager.ts","../src/MockACL.ts","../src/MockZkVerifier.ts","../src/MockThresholdNetwork.ts","../src/TestBed.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["// This file is auto-generated by build-artifacts.ts\nimport { type MockArtifact } from './types';\n\nexport const MockTaskManagerArtifact = {\n contractName: 'MockTaskManager',\n isFixed: true,\n fixedAddress: '0xeA30c4B8b44078Bbf8a6ef5b9f1eC1626C7848D9',\n abi: [\n {\n type: 'constructor',\n inputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'MOCK_logAllow',\n inputs: [\n {\n name: 'operation',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'account',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'MOCK_setInEuintKey',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'value',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'acl',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'contract MockACL',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'aggregator',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'allow',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'account',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'allowForDecryption',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'allowGlobal',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'allowTransient',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'account',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'createDecryptTask',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'createRandomTask',\n inputs: [\n {\n name: 'returnType',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'seed',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'securityZone',\n type: 'int32',\n internalType: 'int32',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'createTask',\n inputs: [\n {\n name: 'returnType',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'funcId',\n type: 'uint8',\n internalType: 'enum FunctionId',\n },\n {\n name: 'encryptedHashes',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n {\n name: 'extraInputs',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'decryptResultSigner',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'exists',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'getDecryptResult',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getDecryptResultSafe',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: 'result',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'decrypted',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'handleDecryptResult',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'result',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: '',\n type: 'address[]',\n internalType: 'address[]',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'handleError',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'operation',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'errorMessage',\n type: 'string',\n internalType: 'string',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'inMockStorage',\n inputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'initialize',\n inputs: [\n {\n name: 'initialOwner',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'isAllowed',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'account',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'isAllowedWithPermission',\n inputs: [\n {\n name: 'permission',\n type: 'tuple',\n internalType: 'struct Permission',\n components: [\n {\n name: 'issuer',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'expiration',\n type: 'uint64',\n internalType: 'uint64',\n },\n {\n name: 'recipient',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'validatorId',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'validatorContract',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'sealingKey',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n {\n name: 'issuerSignature',\n type: 'bytes',\n internalType: 'bytes',\n },\n {\n name: 'recipientSignature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n {\n name: 'handle',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'isInitialized',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'isPubliclyAllowed',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'logOps',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'mockStorage',\n inputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'publishDecryptResult',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'result',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'publishDecryptResultBatch',\n inputs: [\n {\n name: 'ctHashes',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n {\n name: 'results',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n {\n name: 'signatures',\n type: 'bytes[]',\n internalType: 'bytes[]',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'removeFirstLetter',\n inputs: [\n {\n name: 'str',\n type: 'string',\n internalType: 'string',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'string',\n internalType: 'string',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'setACLContract',\n inputs: [\n {\n name: '_aclAddress',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'setAggregator',\n inputs: [\n {\n name: '_aggregatorAddress',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'setDecryptResultSigner',\n inputs: [\n {\n name: 'signer',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'setLogOps',\n inputs: [\n {\n name: '_logOps',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'setSecurityZoneMax',\n inputs: [\n {\n name: 'securityZone',\n type: 'int32',\n internalType: 'int32',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'setSecurityZoneMin',\n inputs: [\n {\n name: 'securityZone',\n type: 'int32',\n internalType: 'int32',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'setSecurityZones',\n inputs: [\n {\n name: 'minSZ',\n type: 'int32',\n internalType: 'int32',\n },\n {\n name: 'maxSZ',\n type: 'int32',\n internalType: 'int32',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'setVerifierSigner',\n inputs: [\n {\n name: 'signer',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'sliceString',\n inputs: [\n {\n name: 'str',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'start',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'length',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'string',\n internalType: 'string',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'verifyDecryptResult',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'result',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'verifyDecryptResultSafe',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'result',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'verifyInput',\n inputs: [\n {\n name: 'input',\n type: 'tuple',\n internalType: 'struct EncryptedInput',\n components: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'securityZone',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'utype',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n {\n name: 'sender',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n },\n {\n type: 'event',\n name: 'DecryptionResult',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n indexed: false,\n internalType: 'uint256',\n },\n {\n name: 'result',\n type: 'uint256',\n indexed: false,\n internalType: 'uint256',\n },\n {\n name: 'requestor',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'ProtocolNotification',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n indexed: false,\n internalType: 'uint256',\n },\n {\n name: 'operation',\n type: 'string',\n indexed: false,\n internalType: 'string',\n },\n {\n name: 'errorMessage',\n type: 'string',\n indexed: false,\n internalType: 'string',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'TaskCreated',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n indexed: false,\n internalType: 'uint256',\n },\n {\n name: 'operation',\n type: 'string',\n indexed: false,\n internalType: 'string',\n },\n {\n name: 'input1',\n type: 'uint256',\n indexed: false,\n internalType: 'uint256',\n },\n {\n name: 'input2',\n type: 'uint256',\n indexed: false,\n internalType: 'uint256',\n },\n {\n name: 'input3',\n type: 'uint256',\n indexed: false,\n internalType: 'uint256',\n },\n ],\n anonymous: false,\n },\n {\n type: 'error',\n name: 'ACLNotAllowed',\n inputs: [\n {\n name: 'handle',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'account',\n type: 'address',\n internalType: 'address',\n },\n ],\n },\n {\n type: 'error',\n name: 'DecryptionResultNotReady',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n },\n {\n type: 'error',\n name: 'ECDSAInvalidSignature',\n inputs: [],\n },\n {\n type: 'error',\n name: 'ECDSAInvalidSignatureLength',\n inputs: [\n {\n name: 'length',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n },\n {\n type: 'error',\n name: 'ECDSAInvalidSignatureS',\n inputs: [\n {\n name: 's',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n ],\n },\n {\n type: 'error',\n name: 'InputNotInMockStorage',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n },\n {\n type: 'error',\n name: 'InvalidAddress',\n inputs: [],\n },\n {\n type: 'error',\n name: 'InvalidInputForFunction',\n inputs: [\n {\n name: 'functionName',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'inputType',\n type: 'uint8',\n internalType: 'uint8',\n },\n ],\n },\n {\n type: 'error',\n name: 'InvalidInputType',\n inputs: [\n {\n name: 'actual',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'expected',\n type: 'uint8',\n internalType: 'uint8',\n },\n ],\n },\n {\n type: 'error',\n name: 'InvalidInputsAmount',\n inputs: [\n {\n name: 'operation',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'got',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'expected',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n },\n {\n type: 'error',\n name: 'InvalidOperationInputs',\n inputs: [\n {\n name: 'operation',\n type: 'string',\n internalType: 'string',\n },\n ],\n },\n {\n type: 'error',\n name: 'InvalidSecurityZone',\n inputs: [\n {\n name: 'zone',\n type: 'int32',\n internalType: 'int32',\n },\n {\n name: 'min',\n type: 'int32',\n internalType: 'int32',\n },\n {\n name: 'max',\n type: 'int32',\n internalType: 'int32',\n },\n ],\n },\n {\n type: 'error',\n name: 'InvalidSignature',\n inputs: [],\n },\n {\n type: 'error',\n name: 'InvalidSigner',\n inputs: [\n {\n name: 'signer',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'expectedSigner',\n type: 'address',\n internalType: 'address',\n },\n ],\n },\n {\n type: 'error',\n name: 'InvalidThreeInputOperation',\n inputs: [\n {\n name: 'operation',\n type: 'string',\n internalType: 'string',\n },\n ],\n },\n {\n type: 'error',\n name: 'InvalidTwoInputOperation',\n inputs: [\n {\n name: 'operation',\n type: 'string',\n internalType: 'string',\n },\n ],\n },\n {\n type: 'error',\n name: 'InvalidTypeOrSecurityZone',\n inputs: [\n {\n name: 'operation',\n type: 'string',\n internalType: 'string',\n },\n ],\n },\n {\n type: 'error',\n name: 'InvalidUnaryOperation',\n inputs: [\n {\n name: 'operation',\n type: 'string',\n internalType: 'string',\n },\n ],\n },\n {\n type: 'error',\n name: 'NotImplemented',\n inputs: [],\n },\n {\n type: 'error',\n name: 'OnlyAggregatorAllowed',\n inputs: [\n {\n name: 'caller',\n type: 'address',\n internalType: 'address',\n },\n ],\n },\n {\n type: 'error',\n name: 'OnlyOwnerAllowed',\n inputs: [\n {\n name: 'caller',\n type: 'address',\n internalType: 'address',\n },\n ],\n },\n {\n type: 'error',\n name: 'RandomFunctionNotSupported',\n inputs: [],\n },\n {\n type: 'error',\n name: 'StringsInsufficientHexLength',\n inputs: [\n {\n name: 'value',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'length',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n },\n {\n type: 'error',\n name: 'TooManyInputs',\n inputs: [\n {\n name: 'operation',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'got',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'maxAllowed',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n },\n ],\n deployedBytecode:\n '0x608060405234801561000f575f5ffd5b5060043610610246575f3560e01c806365d0509c11610139578063938fb3d9116100b6578063d521ed4b1161007a578063d521ed4b14610717578063de28735914610747578063e68d826f14610765578063f6bc7f3f14610783578063f9120af6146107b357610246565b8063938fb3d914610661578063a307d21d1461067f578063a33b4b0a1461069b578063ae79f04a146106cb578063c4d66de8146106fb57610246565b80638b2b9c23116100fd5780638b2b9c23146105c15780638d9c9c92146105dd5780638db39c8d146105f95780638eef9ae71461061557806392bd6c951461064557610246565b806365d0509c1461050d57806373301651146105295780637e5cf5191461054557806380d55b691461057557806381ba0986146105a557610246565b806327f9c762116101c75780634d7cb0c01161018b5780634d7cb0c014610459578063591363c7146104895780635faa299a146104a55780635fb0bf91146104d5578063642b3f19146104f157610246565b806327f9c762146103a257806334ef1e5a146103d2578063392e53cd146103ee578063458693c91461040c5780634bc982631461043d57610246565b80631d0319311161020e5780631d031931146102fe578063245a7bfc1461032e5780632605ab9f1461034c57806326594a0c14610368578063267c4ae41461038457610246565b8063082898271461024a57806315a486fe1461026657806318683701146102825780631888debd1461029e5780631c76642b146102ce575b5f5ffd5b610264600480360381019061025f9190616823565b6107cf565b005b610280600480360381019061027b9190616861565b610882565b005b61029c60048036038101906102979190616900565b610890565b005b6102b860048036038101906102b39190616b12565b61096b565b6040516102c59190616bbd565b60405180910390f35b6102e860048036038101906102e39190616bd6565b610b0f565b6040516102f59190616bbd565b60405180910390f35b61031860048036038101906103139190616bd6565b610b24565b6040516103259190616c1b565b60405180910390f35b610336610b41565b6040516103439190616c43565b60405180910390f35b61036660048036038101906103619190616c5c565b610b67565b005b610382600480360381019061037d9190616cbd565b610c3b565b005b61038c610d17565b6040516103999190616c1b565b60405180910390f35b6103bc60048036038101906103b79190616e44565b610d1f565b6040516103c99190616bbd565b60405180910390f35b6103ec60048036038101906103e79190616bd6565b610f59565b005b6103f6611033565b6040516104039190616c1b565b60405180910390f35b61042660048036038101906104219190616bd6565b611049565b604051610434929190616e9e565b60405180910390f35b61045760048036038101906104529190616f63565b6110d7565b005b610473600480360381019061046e9190616900565b6111a9565b6040516104809190616c1b565b60405180910390f35b6104a3600480360381019061049e9190616feb565b6111c2565b005b6104bf60048036038101906104ba9190616823565b6112f4565b6040516104cc9190616c1b565b60405180910390f35b6104ef60048036038101906104ea9190616feb565b6113b0565b005b61050b60048036038101906105069190617040565b6114e2565b005b61052760048036038101906105229190616823565b6114fd565b005b610543600480360381019061053e9190617115565b611649565b005b61055f600480360381019061055a91906171c5565b611730565b60405161056c9190617291565b60405180910390f35b61058f600480360381019061058a91906172b1565b611866565b60405161059c9190616bbd565b60405180910390f35b6105bf60048036038101906105ba9190617356565b61189f565b005b6105db60048036038101906105d691906173c7565b6119ad565b005b6105f760048036038101906105f29190616823565b6119bd565b005b610613600480360381019061060e9190616c5c565b611a9a565b005b61062f600480360381019061062a9190616bd6565b611b6e565b60405161063c9190616c1b565b60405180910390f35b61065f600480360381019061065a9190616c5c565b611ba1565b005b610669611cda565b6040516106769190616c43565b60405180910390f35b61069960048036038101906106949190616bd6565b611cff565b005b6106b560048036038101906106b09190616900565b611e47565b6040516106c29190616c1b565b60405180910390f35b6106e560048036038101906106e091906175a2565b611e5f565b6040516106f29190616c1b565b60405180910390f35b61071560048036038101906107109190616c5c565b611f03565b005b610731600480360381019061072c91906175fc565b611fe1565b60405161073e9190617291565b60405180910390f35b61074f6120f6565b60405161075c919061769e565b60405180910390f35b61076d61211b565b60405161077a9190616c1b565b60405180910390f35b61079d60048036038101906107989190616bd6565b61212c565b6040516107aa9190616bbd565b60405180910390f35b6107cd60048036038101906107c89190616c5c565b612188565b005b6107d8826122c2565b600160055f8481526020019081526020015f205f6101000a81548160ff02191690831515021790555061080a826123b1565b60045f8481526020019081526020015f20819055505f6001600a4261082f91906176e4565b6108399190617741565b905080426108479190617774565b60065f8581526020019081526020015f205f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550505050565b61088c8282612439565b5050565b61089e848484846001612457565b50600160055f8681526020019081526020015f205f6101000a81548160ff0219169083151502179055508260045f8681526020019081526020015f20819055504260065f8681526020019081526020015f205f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167f023b156100bf14eedc41deb8cef114c1fce662c306697f3bfaf3dbca58130bf7858560405161095d9291906177af565b60405180910390a250505050565b5f601b601f8111156109805761097f6177d6565b5b84601f811115610993576109926177d6565b5b036109ca576040517f98e08ab000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f825184516109d99190617741565b90506003811115610a2e576109ed856126b1565b8160036040517f2b0399d5000000000000000000000000000000000000000000000000000000008152600401610a259392919061783c565b60405180910390fd5b610a388486613246565b5f610a4385856134c0565b90505f610a51878787613602565b90505f610a608983858b61366d565b905060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663484de8228233306040518463ffffffff1660e01b8152600401610ac093929190617878565b5f604051808303815f87803b158015610ad7575f5ffd5b505af1158015610ae9573d5f5f3e3d5ffd5b50505050610b0081610afa8a6126b1565b856137f2565b80945050505050949350505050565b6001602052805f5260405f205f915090505481565b6002602052805f5260405f205f915054906101000a900460ff1681565b600760089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bf857336040517f7238ea56000000000000000000000000000000000000000000000000000000008152600401610bef9190616c43565b60405180910390fd5b80600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ccc57336040517f7238ea56000000000000000000000000000000000000000000000000000000008152600401610cc39190616c43565b60405180910390fd5b81600760046101000a81548163ffffffff021916908360030b63ffffffff1602179055508060075f6101000a81548163ffffffff021916908360030b63ffffffff1602179055505050565b5f6001905090565b5f5f836020015160ff1690505f73ffffffffffffffffffffffffffffffffffffffff1660095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ead57610d8881613a47565b610dea5780600760049054906101000a900460030b60075f9054906101000a900460030b6040517f24cbcf36000000000000000000000000000000000000000000000000000000008152600401610de1939291906178bc565b60405180910390fd5b5f610df58585613a88565b905060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610eab578060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040517f7ba5ffb5000000000000000000000000000000000000000000000000000000008152600401610ea29291906178f1565b60405180910390fd5b505b5f610ec1855f01518387604001515f613b4c565b905060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663484de8228233306040518463ffffffff1660e01b8152600401610f2193929190617878565b5f604051808303815f87803b158015610f38575f5ffd5b505af1158015610f4a573d5f5f3e3d5ffd5b50505050809250505092915050565b610f6281613ba5565b6110305760085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663846cd43382336040518363ffffffff1660e01b8152600401610fc2929190617918565b5f604051808303815f87803b158015610fd9575f5ffd5b505af1158015610feb573d5f5f3e3d5ffd5b5050505061102f6040518060400160405280600f81526020017f4648452e616c6c6f77476c6f62616c000000000000000000000000000000000081525082336119ad565b5b50565b5f600360149054906101000a900460ff16905090565b5f5f60055f8481526020019081526020015f205f9054906101000a900460ff16611078575f5f915091506110d2565b60065f8481526020019081526020015f205f9054906101000a900467ffffffffffffffff1667ffffffffffffffff164210156110b9575f5f915091506110d2565b60045f8481526020019081526020015f20546001915091505b915091565b600760089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461116957336040517fa974a0fe0000000000000000000000000000000000000000000000000000000081526004016111609190616c43565b60405180910390fd5b7f66d3f531abdf188fde59b6d2b282dc7c725ef2bb1c6c93954054721a13c1a3fa83838360405161119c9392919061793f565b60405180910390a1505050565b5f6111b8858585856001612457565b9050949350505050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461125357336040517f7238ea5600000000000000000000000000000000000000000000000000000000815260040161124a9190616c43565b60405180910390fd5b600760049054906101000a900460030b60030b8160030b12156112ce5780600760049054906101000a900460030b60075f9054906101000a900460030b6040517f24cbcf360000000000000000000000000000000000000000000000000000000081526004016112c5939291906178bc565b60405180910390fd5b8060075f6101000a81548163ffffffff021916908360030b63ffffffff16021790555050565b5f6112fe83613ba5565b1561130c57600190506113aa565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635faa299a84846040518363ffffffff1660e01b8152600401611368929190617918565b602060405180830381865afa158015611383573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113a79190617996565b90505b92915050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461144157336040517f7238ea560000000000000000000000000000000000000000000000000000000081526004016114389190616c43565b60405180910390fd5b60075f9054906101000a900460030b60030b8160030b13156114bb5780600760049054906101000a900460030b60075f9054906101000a900460030b6040517f24cbcf360000000000000000000000000000000000000000000000000000000081526004016114b2939291906178bc565b60405180910390fd5b80600760046101000a81548163ffffffff021916908360030b63ffffffff16021790555050565b805f5f6101000a81548160ff02191690831515021790555050565b61150682613ba5565b6116455760085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166379a3a7fb8383336040518463ffffffff1660e01b815260040161156893929190617878565b5f604051808303815f87803b15801561157f575f5ffd5b505af1158015611591573d5f5f3e3d5ffd5b505050506116443373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611606576040518060400160405280600981526020017f4648452e616c6c6f77000000000000000000000000000000000000000000000081525061163d565b6040518060400160405280600d81526020017f4648452e616c6c6f7754686973000000000000000000000000000000000000008152505b83836119ad565b5b5050565b5f5f90505b86869050811015611727573073ffffffffffffffffffffffffffffffffffffffff166318683701888884818110611688576116876179c1565b5b905060200201358787858181106116a2576116a16179c1565b5b905060200201358686868181106116bc576116bb6179c1565b5b90506020028101906116ce91906179fa565b6040518563ffffffff1660e01b81526004016116ed9493929190617a98565b5f604051808303815f87803b158015611704575f5ffd5b505af1158015611716573d5f5f3e3d5ffd5b50505050808060010191505061164e565b50505050505050565b60605f849050805183856117449190617741565b1115611785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177c90617b20565b60405180910390fd5b5f8367ffffffffffffffff8111156117a05761179f6169da565b5b6040519080825280601f01601f1916602001820160405280156117d25781602001600182028036833780820191505090505b5090505f5f90505b84811015611859578281876117ef9190617741565b81518110611800576117ff6179c1565b5b602001015160f81c60f81b82828151811061181e5761181d6179c1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a90535080806001019150506117da565b5080925050509392505050565b5f8383834260405160200161187e9493929190617b4d565b604051602081830303815290604052805190602001205f1c90509392505050565b600760089054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461193157336040517fa974a0fe0000000000000000000000000000000000000000000000000000000081526004016119289190616c43565b60405180910390fd5b600160055f8681526020019081526020015f205f6101000a81548160ff0219169083151502179055508260045f8681526020019081526020015f20819055504260065f8681526020019081526020015f205f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050505050565b6119b8838383613be2565b505050565b6119c682613ba5565b611a965760085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663484de8228383336040518463ffffffff1660e01b8152600401611a2893929190617878565b5f604051808303815f87803b158015611a3f575f5ffd5b505af1158015611a51573d5f5f3e3d5ffd5b50505050611a956040518060400160405280601281526020017f4648452e616c6c6f775472616e7369656e74000000000000000000000000000081525083836119ad565b5b5050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b2b57336040517f7238ea56000000000000000000000000000000000000000000000000000000008152600401611b229190616c43565b60405180910390fd5b8060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c3257336040517f7238ea56000000000000000000000000000000000000000000000000000000008152600401611c299190616c43565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c97576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d0881613ba5565b611e44575f600167ffffffffffffffff811115611d2857611d276169da565b5b604051908082528060200260200182016040528015611d565781602001602082028036833780820191505090505b50905081815f81518110611d6d57611d6c6179c1565b5b60200260200101818152505060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633c3839ba82336040518363ffffffff1660e01b8152600401611dd5929190617c47565b5f604051808303815f87803b158015611dec575f5ffd5b505af1158015611dfe573d5f5f3e3d5ffd5b50505050611e426040518060400160405280601681526020017f4648452e616c6c6f77466f7244656372797074696f6e0000000000000000000081525083336119ad565b505b50565b5f611e55858585855f612457565b9050949350505050565b5f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ae79f04a84846040518363ffffffff1660e01b8152600401611ebc929190617da8565b602060405180830381865afa158015611ed7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611efb9190617996565b905092915050565b8060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360146101000a81548160ff0219169083151502179055505f60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60605f8290505f8151036120065760405180602001604052805f8152509150506120f1565b5f600182516120159190617dd6565b67ffffffffffffffff81111561202e5761202d6169da565b5b6040519080825280601f01601f1916602001820160405280156120605781602001600182028036833780820191505090505b5090505f600190505b82518110156120ea57828181518110612085576120846179c1565b5b602001015160f81c60f81b8260018361209e9190617dd6565b815181106120af576120ae6179c1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050612069565b5080925050505b919050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900460ff1681565b5f5f5f61213884611049565b915091508061217e57836040517f70cf65540000000000000000000000000000000000000000000000000000000081526004016121759190616bbd565b60405180910390fd5b8192505050919050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461221957336040517f7238ea560000000000000000000000000000000000000000000000000000000081526004016122109190616c43565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361227e576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600760086101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6122cb81613ba5565b6123ae5760085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635faa299a82336040518363ffffffff1660e01b815260040161232b929190617918565b602060405180830381865afa158015612346573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061236a9190617996565b6123ad5780336040517f4d13139e0000000000000000000000000000000000000000000000000000000081526004016123a4929190617918565b60405180910390fd5b5b50565b5f60025f8381526020019081526020015f205f9054906101000a900460ff1661241157816040517f850a796d0000000000000000000000000000000000000000000000000000000081526004016124089190616bbd565b60405180910390fd5b5f61241b83613cd0565b90508060015f8581526020019081526020015f205416915050919050565b5f61244383613cd0565b9050612452838284165f613ced565b505050565b5f5f73ffffffffffffffffffffffffffffffffffffffff16600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036124b557600190506126a8565b5f86866040516020016124c9929190617e29565b6040516020818303038152906040528051906020012090505f5f6125308388888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f82011690508083019250505050505050613d8e565b50915091505f6003811115612548576125476177d6565b5b81600381111561255b5761255a6177d6565b5b14158061259357505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156125db5784156125d0576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f93505050506126a8565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146126a05784156126955781600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040517f7ba5ffb500000000000000000000000000000000000000000000000000000000815260040161268c9291906178f1565b60405180910390fd5b5f93505050506126a8565b600193505050505b95945050505050565b60606002601f8111156126c7576126c66177d6565b5b82601f8111156126da576126d96177d6565b5b0361271c576040518060400160405280600481526020017f63617374000000000000000000000000000000000000000000000000000000008152509050613241565b6003601f8111156127305761272f6177d6565b5b82601f811115612743576127426177d6565b5b03612785576040518060400160405280600a81526020017f7365616c4f7574707574000000000000000000000000000000000000000000008152509050613241565b6004601f811115612799576127986177d6565b5b82601f8111156127ac576127ab6177d6565b5b036127ee576040518060400160405280600681526020017f73656c65637400000000000000000000000000000000000000000000000000008152509050613241565b6006601f811115612802576128016177d6565b5b82601f811115612815576128146177d6565b5b03612857576040518060400160405280600781526020017f64656372797074000000000000000000000000000000000000000000000000008152509050613241565b6007601f81111561286b5761286a6177d6565b5b82601f81111561287e5761287d6177d6565b5b036128c0576040518060400160405280600381526020017f73756200000000000000000000000000000000000000000000000000000000008152509050613241565b6008601f8111156128d4576128d36177d6565b5b82601f8111156128e7576128e66177d6565b5b03612929576040518060400160405280600381526020017f61646400000000000000000000000000000000000000000000000000000000008152509050613241565b6009601f81111561293d5761293c6177d6565b5b82601f8111156129505761294f6177d6565b5b03612992576040518060400160405280600381526020017f786f7200000000000000000000000000000000000000000000000000000000008152509050613241565b600a601f8111156129a6576129a56177d6565b5b82601f8111156129b9576129b86177d6565b5b036129fb576040518060400160405280600381526020017f616e6400000000000000000000000000000000000000000000000000000000008152509050613241565b600b601f811115612a0f57612a0e6177d6565b5b82601f811115612a2257612a216177d6565b5b03612a64576040518060400160405280600281526020017f6f720000000000000000000000000000000000000000000000000000000000008152509050613241565b600c601f811115612a7857612a776177d6565b5b82601f811115612a8b57612a8a6177d6565b5b03612acd576040518060400160405280600381526020017f6e6f7400000000000000000000000000000000000000000000000000000000008152509050613241565b600d601f811115612ae157612ae06177d6565b5b82601f811115612af457612af36177d6565b5b03612b36576040518060400160405280600381526020017f64697600000000000000000000000000000000000000000000000000000000008152509050613241565b600e601f811115612b4a57612b496177d6565b5b82601f811115612b5d57612b5c6177d6565b5b03612b9f576040518060400160405280600381526020017f72656d00000000000000000000000000000000000000000000000000000000008152509050613241565b600f601f811115612bb357612bb26177d6565b5b82601f811115612bc657612bc56177d6565b5b03612c08576040518060400160405280600381526020017f6d756c00000000000000000000000000000000000000000000000000000000008152509050613241565b6010601f811115612c1c57612c1b6177d6565b5b82601f811115612c2f57612c2e6177d6565b5b03612c71576040518060400160405280600381526020017f73686c00000000000000000000000000000000000000000000000000000000008152509050613241565b6011601f811115612c8557612c846177d6565b5b82601f811115612c9857612c976177d6565b5b03612cda576040518060400160405280600381526020017f73687200000000000000000000000000000000000000000000000000000000008152509050613241565b6012601f811115612cee57612ced6177d6565b5b82601f811115612d0157612d006177d6565b5b03612d43576040518060400160405280600381526020017f67746500000000000000000000000000000000000000000000000000000000008152509050613241565b6013601f811115612d5757612d566177d6565b5b82601f811115612d6a57612d696177d6565b5b03612dac576040518060400160405280600381526020017f6c746500000000000000000000000000000000000000000000000000000000008152509050613241565b6014601f811115612dc057612dbf6177d6565b5b82601f811115612dd357612dd26177d6565b5b03612e15576040518060400160405280600281526020017f6c740000000000000000000000000000000000000000000000000000000000008152509050613241565b6015601f811115612e2957612e286177d6565b5b82601f811115612e3c57612e3b6177d6565b5b03612e7e576040518060400160405280600281526020017f67740000000000000000000000000000000000000000000000000000000000008152509050613241565b6016601f811115612e9257612e916177d6565b5b82601f811115612ea557612ea46177d6565b5b03612ee7576040518060400160405280600381526020017f6d696e00000000000000000000000000000000000000000000000000000000008152509050613241565b6017601f811115612efb57612efa6177d6565b5b82601f811115612f0e57612f0d6177d6565b5b03612f50576040518060400160405280600381526020017f6d617800000000000000000000000000000000000000000000000000000000008152509050613241565b6018601f811115612f6457612f636177d6565b5b82601f811115612f7757612f766177d6565b5b03612fb9576040518060400160405280600281526020017f65710000000000000000000000000000000000000000000000000000000000008152509050613241565b6019601f811115612fcd57612fcc6177d6565b5b82601f811115612fe057612fdf6177d6565b5b03613022576040518060400160405280600281526020017f6e650000000000000000000000000000000000000000000000000000000000008152509050613241565b601a601f811115613036576130356177d6565b5b82601f811115613049576130486177d6565b5b0361308b576040518060400160405280600e81526020017f7472697669616c456e63727970740000000000000000000000000000000000008152509050613241565b601b601f81111561309f5761309e6177d6565b5b82601f8111156130b2576130b16177d6565b5b036130f4576040518060400160405280600681526020017f72616e646f6d00000000000000000000000000000000000000000000000000008152509050613241565b601c601f811115613108576131076177d6565b5b82601f81111561311b5761311a6177d6565b5b0361315d576040518060400160405280600381526020017f726f6c00000000000000000000000000000000000000000000000000000000008152509050613241565b601d601f811115613171576131706177d6565b5b82601f811115613184576131836177d6565b5b036131c6576040518060400160405280600381526020017f726f7200000000000000000000000000000000000000000000000000000000008152509050613241565b601e601f8111156131da576131d96177d6565b5b82601f8111156131ed576131ec6177d6565b5b0361322f576040518060400160405280600681526020017f73717561726500000000000000000000000000000000000000000000000000008152509050613241565b60405180602001604052805f81525090505b919050565b5f613250826126b1565b90505f8351036132aa5761326382613de3565b6132a457806040517fb31612aa00000000000000000000000000000000000000000000000000000000815260040161329b9190617291565b60405180910390fd5b506134bc565b6004601f8111156132be576132bd6177d6565b5b82601f8111156132d1576132d06177d6565b5b036132e4576132df83613e42565b613414565b6132ed82613f83565b1561334357600183511461333e5780835160016040517f9a84351c00000000000000000000000000000000000000000000000000000000815260040161333593929190617e8d565b60405180910390fd5b613413565b600283511461338f5780835160026040517f9a84351c00000000000000000000000000000000000000000000000000000000815260040161338693929190617f02565b60405180910390fd5b5f6133d0846001815181106133a7576133a66179c1565b5b6020026020010151855f815181106133c2576133c16179c1565b5b602002602001015118614011565b1461341257806040517f52b50ae10000000000000000000000000000000000000000000000000000000081526004016134099190617291565b60405180910390fd5b5b5b5f613438845f8151811061342b5761342a6179c1565b5b602002602001015161402f565b905061344381613a47565b6134a55780600760049054906101000a900460030b60075f9054906101000a900460030b6040517f24cbcf3600000000000000000000000000000000000000000000000000000000815260040161349c939291906178bc565b60405180910390fd5b6134ae8461403f565b6134b983838661408d565b50505b5050565b60605f825184516134d19190617741565b67ffffffffffffffff8111156134ea576134e96169da565b5b6040519080825280602002602001820160405280156135185781602001602082028036833780820191505090505b5090505f5f90505b84518160ff16101561357f57848160ff1681518110613542576135416179c1565b5b6020026020010151828260ff16815181106135605761355f6179c1565b5b602002602001018181525050808061357790617f3e565b915050613520565b5b8351855161358e9190617741565b8160ff1610156135f7578385518260ff166135a99190617dd6565b815181106135ba576135b96179c1565b5b6020026020010151828260ff16815181106135d8576135d76179c1565b5b60200260200101818152505080806135ef90617f3e565b915050613580565b819250505092915050565b5f61360c84613de3565b156136405781600183516136209190617dd6565b81518110613631576136306179c1565b5b60200260200101519050613666565b613663835f81518110613656576136556179c1565b5b602002602001015161402f565b90505b9392505050565b5f60605f601a601f811115613685576136846177d6565b5b84601f811115613698576136976177d6565b5b1490505f5f90505b85518160ff16101561370857826136d3878360ff16815181106136c6576136c56179c1565b5b60200260200101516141fb565b6040516020016136e4929190617fa0565b6040516020818303038152906040529250808061370090617f3e565b9150506136a0565b50601e601f81111561371d5761371c6177d6565b5b84601f8111156137305761372f6177d6565b5b0361378057600f93508161375d865f815181106137505761374f6179c1565b5b60200260200101516141fb565b60405160200161376e929190617fa0565b60405160208183030381529060405291505b5f84601f811115613794576137936177d6565b5b60f81b905082816040516020016137ac92919061800e565b60405160208183030381529060405292505f838051906020012090505f6137e0825f1c8a6137da8a8e61425d565b87613b4c565b90508095505050505050949350505050565b6001815114806138095750613808826002614388565b5b15613891577fe9de54a3e7ddf0c48cc6e1134185300d5a71acbf2d8c21fcdefa9d9dd9e20ac18383835f81518110613844576138436179c1565b5b60200260200101515f5f60405161385f95949392919061806e565b60405180910390a161388c8383835f8151811061387f5761387e6179c1565b5b60200260200101516143a3565b613a42565b6002815103613954577fe9de54a3e7ddf0c48cc6e1134185300d5a71acbf2d8c21fcdefa9d9dd9e20ac18383835f815181106138d0576138cf6179c1565b5b6020026020010151846001815181106138ec576138eb6179c1565b5b60200260200101515f6040516139069594939291906180c6565b60405180910390a161394f8383835f81518110613926576139256179c1565b5b602002602001015184600181518110613942576139416179c1565b5b602002602001015161460a565b613a41565b7fe9de54a3e7ddf0c48cc6e1134185300d5a71acbf2d8c21fcdefa9d9dd9e20ac18383835f8151811061398a576139896179c1565b5b6020026020010151846001815181106139a6576139a56179c1565b5b6020026020010151856002815181106139c2576139c16179c1565b5b60200260200101516040516139db95949392919061811e565b60405180910390a1613a408383835f815181106139fb576139fa6179c1565b5b602002602001015184600181518110613a1757613a166179c1565b5b602002602001015185600281518110613a3357613a326179c1565b5b6020026020010151615436565b5b5b505050565b5f600760049054906101000a900460030b60030b8260030b12158015613a81575060075f9054906101000a900460030b60030b8260030b13155b9050919050565b5f5f835f0151846040015185602001518546604051602001613aae9594939291906181ef565b60405160208183030381529060405290505f818051906020012090505f613ad98287606001516155dd565b90505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603613b40576040517f8baa579f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80935050505092915050565b5f61ffff80167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613b7d9190617dd6565b851690505f8460ff166008613b928587615607565b901b179050808217915050949350505050565b5f600160ff8016901c60ff1660ff8016613bbf9190617dd6565b600160ff8016901c60ff1660ff8016613bd89190617dd6565b8316149050919050565b5f5f9054906101000a900460ff1615613ccb57613cca6040518060400160405280600481526020017fe2949c2000000000000000000000000000000000000000000000000000000000815250613c5a8560107f2000000000000000000000000000000000000000000000000000000000000000615646565b6040518060400160405280600381526020017f207c200000000000000000000000000000000000000000000000000000000000815250613c998661578d565b613ca286615929565b604051602001613cb69594939291906182ad565b604051602081830303815290604052615956565b5b505050565b5f5f613cdb836159ef565b90506001816001901b03915050919050565b8160015f8581526020019081526020015f2081905550600160025f8581526020019081526020015f205f6101000a81548160ff0219169083151502179055508015613d8957613d886040518060400160405280600381526020017f736574000000000000000000000000000000000000000000000000000000000081525060405180602001604052805f815250613d838661578d565b615ac6565b5b505050565b5f5f5f6041845103613dce575f5f5f602087015192506040870151915060608701515f1a9050613dc088828585615ba4565b955095509550505050613ddc565b5f600285515f1b9250925092505b9250925092565b5f601b601f811115613df857613df76177d6565b5b82601f811115613e0b57613e0a6177d6565b5b1480613e3b5750601a601f811115613e2657613e256177d6565b5b82601f811115613e3957613e386177d6565b5b145b9050919050565b6003815114613e8c57805160036040517f9a84351c000000000000000000000000000000000000000000000000000000008152600401613e83929190618350565b60405180910390fd5b5f613ece82600281518110613ea457613ea36179c1565b5b602002602001015183600181518110613ec057613ebf6179c1565b5b602002602001015118614011565b14613f0e576040517f52b50ae1000000000000000000000000000000000000000000000000000000008152600401613f059061838a565b60405180910390fd5b5f613f32825f81518110613f2557613f246179c1565b5b6020026020010151615c8b565b90505f5f821860ff1614613f7f57805f6040517f884a0e9d000000000000000000000000000000000000000000000000000000008152600401613f769291906183a8565b60405180910390fd5b5050565b5f600c601f811115613f9857613f976177d6565b5b82601f811115613fab57613faa6177d6565b5b1480613fdb5750601e601f811115613fc657613fc56177d6565b5b82601f811115613fd957613fd86177d6565b5b145b8061400a57506002601f811115613ff557613ff46177d6565b5b82601f811115614008576140076177d6565b5b145b9050919050565b5f8160ff80166008600160ff8016901c60ff16901b17169050919050565b5f60ff801682165f0b9050919050565b5f5f90505b81518160ff16101561408957614076828260ff1681518110614069576140686179c1565b5b60200260200101516122c2565b808061408190617f3e565b915050614044565b5050565b61409683615ca7565b6141f6576140a383615d64565b15614149575f5f90505b81518160ff161015614143575f6140e0838360ff16815181106140d3576140d26179c1565b5b6020026020010151615c8b565b90505f6007821860ff160361412f578360076040517f91b4b3780000000000000000000000000000000000000000000000000000000081526004016141269291906183cf565b60405180910390fd5b50808061413b90617f3e565b9150506140ad565b506141f5565b5f5f90505b81518160ff1610156141f3575f614181838360ff1681518110614174576141736179c1565b5b6020026020010151615c8b565b90505f6007821860ff16148061419b57505f5f821860ff16145b156141df5783816040517f91b4b3780000000000000000000000000000000000000000000000000000000081526004016141d69291906183cf565b60405180910390fd5b5080806141eb90617f3e565b91505061414e565b505b5b505050565b60605f602067ffffffffffffffff811115614219576142186169da565b5b6040519080825280601f01601f19166020018201604052801561424b5781602001600182028036833780820191505090505b50905082602082015280915050919050565b5f6013601f811115614272576142716177d6565b5b83601f811115614285576142846177d6565b5b14806142b557506014601f8111156142a05761429f6177d6565b5b83601f8111156142b3576142b26177d6565b5b145b806142e457506012601f8111156142cf576142ce6177d6565b5b83601f8111156142e2576142e16177d6565b5b145b8061431357506015601f8111156142fe576142fd6177d6565b5b83601f811115614311576143106177d6565b5b145b8061434257506018601f81111561432d5761432c6177d6565b5b83601f8111156143405761433f6177d6565b5b145b8061437157506019601f81111561435c5761435b6177d6565b5b83601f81111561436f5761436e6177d6565b5b145b1561437e575f9050614382565b8190505b92915050565b5f61439b83614396846126b1565b615e21565b905092915050565b6143ae82601b614388565b15614427576143cc836001436143c49190617dd6565b405f1c612439565b6144226040518060400160405280600a81526020017f4648452e72616e646f6d0000000000000000000000000000000000000000000081525060405180602001604052805f81525061441d8661578d565b615ac6565b614605565b614432826002614388565b1561449e5761444983614444836123b1565b612439565b6144996040518060400160405280600881526020017f4648452e6361737400000000000000000000000000000000000000000000000081525061448b8361578d565b6144948661578d565b615ac6565b614605565b6144a982600c614388565b1561451e575f60016144ba836123b1565b1490506144c8848215615e79565b6145186040518060400160405280600781526020017f4648452e6e6f740000000000000000000000000000000000000000000000000081525061450a8461578d565b6145138761578d565b615ac6565b50614605565b61452982601e614388565b156145c85761454a8361453b836123b1565b614544846123b1565b02612439565b6145c36040518060400160405280600a81526020017f4648452e7371756172650000000000000000000000000000000000000000000081525061458c8361578d565b6145958461578d565b6040516020016145a6929190618423565b6040516020818303038152906040526145be8661578d565b615ac6565b614605565b816040517fd952ce7c0000000000000000000000000000000000000000000000000000000081526004016145fc9190617291565b60405180910390fd5b505050565b614615836007614388565b156146b45761463684614627836123b1565b614630856123b1565b03612439565b6146af6040518060400160405280600781526020017f4648452e737562000000000000000000000000000000000000000000000000008152506146788461578d565b6146818461578d565b60405160200161469292919061847b565b6040516020818303038152906040526146aa8761578d565b615ac6565b615430565b6146bf836008614388565b1561475e576146e0846146d1836123b1565b6146da856123b1565b01612439565b6147596040518060400160405280600781526020017f4648452e616464000000000000000000000000000000000000000000000000008152506147228461578d565b61472b8461578d565b60405160200161473c9291906184d3565b6040516020818303038152906040526147548761578d565b615ac6565b615430565b614769836009614388565b156148085761478a8461477b836123b1565b614784856123b1565b18612439565b6148036040518060400160405280600781526020017f4648452e786f72000000000000000000000000000000000000000000000000008152506147cc8461578d565b6147d58461578d565b6040516020016147e692919061852b565b6040516020818303038152906040526147fe8761578d565b615ac6565b615430565b61481383600a614388565b156148b25761483484614825836123b1565b61482e856123b1565b16612439565b6148ad6040518060400160405280600781526020017f4648452e616e64000000000000000000000000000000000000000000000000008152506148768461578d565b61487f8461578d565b604051602001614890929190618583565b6040516020818303038152906040526148a88761578d565b615ac6565b615430565b6148bd83600b614388565b1561495c576148de846148cf836123b1565b6148d8856123b1565b17612439565b6149576040518060400160405280600681526020017f4648452e6f7200000000000000000000000000000000000000000000000000008152506149208461578d565b6149298461578d565b60405160200161493a9291906185db565b6040516020818303038152906040526149528761578d565b615ac6565b615430565b61496783600d614388565b15614a50575f614976826123b1565b90505f81036149ae576149a9857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff612439565b6149d1565b6149d085826149bc866123b1565b816149ca576149c96176b7565b5b04612439565b5b614a4a6040518060400160405280600781526020017f4648452e64697600000000000000000000000000000000000000000000000000815250614a138561578d565b614a1c8561578d565b604051602001614a2d929190618633565b604051602081830303815290604052614a458861578d565b615ac6565b50615430565b614a5b83600e614388565b15614b0857614a8a84614a6d836123b1565b614a76856123b1565b81614a8457614a836176b7565b5b06612439565b614b036040518060400160405280600781526020017f4648452e72656d00000000000000000000000000000000000000000000000000815250614acc8461578d565b614ad58461578d565b604051602001614ae692919061868b565b604051602081830303815290604052614afe8761578d565b615ac6565b615430565b614b1383600f614388565b15614bb257614b3484614b25836123b1565b614b2e856123b1565b02612439565b614bad6040518060400160405280600781526020017f4648452e6d756c00000000000000000000000000000000000000000000000000815250614b768461578d565b614b7f8461578d565b604051602001614b90929190618423565b604051602081830303815290604052614ba88761578d565b615ac6565b615430565b614bbd836010614388565b15614c5d57614bdf84614bcf836123b1565b614bd8856123b1565b901b612439565b614c586040518060400160405280600781526020017f4648452e73686c00000000000000000000000000000000000000000000000000815250614c218461578d565b614c2a8461578d565b604051602001614c3b9291906186e3565b604051602081830303815290604052614c538761578d565b615ac6565b615430565b614c68836011614388565b15614d0857614c8a84614c7a836123b1565b614c83856123b1565b901c612439565b614d036040518060400160405280600781526020017f4648452e73687200000000000000000000000000000000000000000000000000815250614ccc8461578d565b614cd58461578d565b604051602001614ce692919061873b565b604051602081830303815290604052614cfe8761578d565b615ac6565b615430565b614d13836012614388565b15614db357614d3584614d25836123b1565b614d2e856123b1565b1015615e79565b614dae6040518060400160405280600781526020017f4648452e67746500000000000000000000000000000000000000000000000000815250614d778461578d565b614d808461578d565b604051602001614d91929190618793565b604051602081830303815290604052614da98761578d565b615ac6565b615430565b614dbe836013614388565b15614e5e57614de084614dd0836123b1565b614dd9856123b1565b1115615e79565b614e596040518060400160405280600781526020017f4648452e6c746500000000000000000000000000000000000000000000000000815250614e228461578d565b614e2b8461578d565b604051602001614e3c9291906187eb565b604051602081830303815290604052614e548761578d565b615ac6565b615430565b614e69836014614388565b15614f0857614e8a84614e7b836123b1565b614e84856123b1565b10615e79565b614f036040518060400160405280600681526020017f4648452e6c740000000000000000000000000000000000000000000000000000815250614ecc8461578d565b614ed58461578d565b604051602001614ee6929190618843565b604051602081830303815290604052614efe8761578d565b615ac6565b615430565b614f13836015614388565b15614fb257614f3484614f25836123b1565b614f2e856123b1565b11615e79565b614fad6040518060400160405280600681526020017f4648452e67740000000000000000000000000000000000000000000000000000815250614f768461578d565b614f7f8461578d565b604051602001614f9092919061889b565b604051602081830303815290604052614fa88761578d565b615ac6565b615430565b614fbd836016614388565b1561507d575f614fcc826123b1565b614fd5846123b1565b10614fe857614fe3826123b1565b614ff2565b614ff1836123b1565b5b9050614ffe8582612439565b6150776040518060400160405280600781526020017f4648452e6d696e000000000000000000000000000000000000000000000000008152506150408561578d565b6150498561578d565b60405160200161505a92919061893f565b6040516020818303038152906040526150728861578d565b615ac6565b50615430565b615088836017614388565b15615148575f615097826123b1565b6150a0846123b1565b116150b3576150ae826123b1565b6150bd565b6150bc836123b1565b5b90506150c98582612439565b6151426040518060400160405280600781526020017f4648452e6d61780000000000000000000000000000000000000000000000000081525061510b8561578d565b6151148561578d565b6040516020016151259291906189b5565b60405160208183030381529060405261513d8861578d565b615ac6565b50615430565b615153836018614388565b156151f25761517484615165836123b1565b61516e856123b1565b14615e79565b6151ed6040518060400160405280600681526020017f4648452e657100000000000000000000000000000000000000000000000000008152506151b68461578d565b6151bf8461578d565b6040516020016151d0929190618a2b565b6040516020818303038152906040526151e88761578d565b615ac6565b615430565b6151fd836019614388565b1561529d5761521f8461520f836123b1565b615218856123b1565b1415615e79565b6152986040518060400160405280600681526020017f4648452e6e6500000000000000000000000000000000000000000000000000008152506152618461578d565b61526a8461578d565b60405160200161527b929190618a83565b6040516020818303038152906040526152938761578d565b615ac6565b615430565b6152a883601c614388565b15615348576152ca846152ba836123b1565b6152c3856123b1565b901b612439565b6153436040518060400160405280600781526020017f4648452e726f6c0000000000000000000000000000000000000000000000000081525061530c8461578d565b6153158461578d565b6040516020016153269291906186e3565b60405160208183030381529060405261533e8761578d565b615ac6565b615430565b61535383601d614388565b156153f35761537584615365836123b1565b61536e856123b1565b901c612439565b6153ee6040518060400160405280600781526020017f4648452e726f72000000000000000000000000000000000000000000000000008152506153b78461578d565b6153c08461578d565b6040516020016153d192919061873b565b6040516020818303038152906040526153e98761578d565b615ac6565b615430565b826040517fcef608850000000000000000000000000000000000000000000000000000000081526004016154279190617291565b60405180910390fd5b50505050565b61544184601a614388565b156154d0576154508584612439565b6154cb61546461545f87615e97565b611fe1565b6040516020016154749190618adb565b60405160208183030381529060405261549461548f88615e97565b611fe1565b61549d86616143565b6040516020016154ae929190618b26565b6040516020818303038152906040526154c68861578d565b615ac6565b6155d6565b6154db846004614388565b15615599576155118560016154ef866123b1565b14615502576154fd836123b1565b61550c565b61550b846123b1565b5b612439565b6155946040518060400160405280600a81526020017f4648452e73656c656374000000000000000000000000000000000000000000008152506155538561578d565b61555c8561578d565b6155658561578d565b60405160200161557793929190618bb3565b60405160208183030381529060405261558f8861578d565b615ac6565b6155d6565b836040517f5e45fa010000000000000000000000000000000000000000000000000000000081526004016155cd9190617291565b60405180910390fd5b5050505050565b5f5f5f5f6155eb8686613d8e565b9250925092506155fb828261620d565b82935050505092915050565b5f600160ff8016901c60ff168260ff161683615623575f61563d565b600160ff8016901c60ff1660ff801661563c9190617dd6565b5b17905092915050565b60605f8490508381511061565d5784915050615786565b5f8467ffffffffffffffff811115615678576156776169da565b5b6040519080825280601f01601f1916602001820160405280156156aa5781602001600182028036833780820191505090505b5090505f5f90505b8251811015615727578281815181106156ce576156cd6179c1565b5b602001015160f81c60f81b8282815181106156ec576156eb6179c1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a90535080806001019150506156b2565b5b8581101561577f5784828281518110615744576157436179c1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053508080600101915050615728565b8193505050505b9392505050565b60605f61579983616143565b90505f81519050600681116157b2578192505050615924565b5f60025f8681526020019081526020015f205f9054906101000a900460ff1690505f60015f8781526020019081526020015f205490505f6157f28761636f565b90505f816158085761580383616143565b615883565b6001831461584b576040518060400160405280600581526020017f66616c7365000000000000000000000000000000000000000000000000000000815250615882565b6040518060400160405280600481526020017f74727565000000000000000000000000000000000000000000000000000000008152505b5b90505f61588f89615e97565b61589b885f6004611730565b6158b38960048a6158ac9190617dd6565b6004611730565b876158f3576040518060400160405280600581526020017f454d5054590000000000000000000000000000000000000000000000000000008152506158f5565b845b6040516020016159089493929190618c73565b6040516020818303038152906040529050809750505050505050505b919050565b606061594f8273ffffffffffffffffffffffffffffffffffffffff16601460ff1661638c565b9050919050565b6159ec8160405160240161596a9190617291565b6040516020818303038152906040527f41304fac000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506165ca565b50565b5f5f6159fa836165e4565b90505f60ff168160ff1603615a13576008915050615ac1565b600260ff168160ff1603615a2b576008915050615ac1565b600360ff168160ff1603615a43576010915050615ac1565b600460ff168160ff1603615a5b576020915050615ac1565b600560ff168160ff1603615a73576040915050615ac1565b600660ff168160ff1603615a8b576080915050615ac1565b600860ff168160ff1603615aa457610100915050615ac1565b600760ff168160ff1603615abc5760a0915050615ac1565b5f9150505b919050565b5f5f9054906101000a900460ff1615615b9f57615b9e6040518060400160405280600481526020017fe2949c2000000000000000000000000000000000000000000000000000000000815250615b3e8560107f2000000000000000000000000000000000000000000000000000000000000000615646565b6040518060400160405280600381526020017f207c2000000000000000000000000000000000000000000000000000000000008152508585604051602001615b8a959493929190618d12565b604051602081830303815290604052615956565b5b505050565b5f5f5f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c1115615be0575f600385925092509250615c81565b5f6001888888886040515f8152602001604052604051615c039493929190618d7a565b6020604051602081039080840390855afa158015615c23573d5f5f3e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603615c74575f60015f5f1b93509350935050615c81565b805f5f5f1b935093509350505b9450945094915050565b5f600880600160ff8016901c60ff16901b8316901c9050919050565b5f6004601f811115615cbc57615cbb6177d6565b5b82601f811115615ccf57615cce6177d6565b5b1480615cff57506018601f811115615cea57615ce96177d6565b5b82601f811115615cfd57615cfc6177d6565b5b145b80615d2e57506019601f811115615d1957615d186177d6565b5b82601f811115615d2c57615d2b6177d6565b5b145b80615d5d57506002601f811115615d4857615d476177d6565b5b82601f811115615d5b57615d5a6177d6565b5b145b9050919050565b5f6009601f811115615d7957615d786177d6565b5b82601f811115615d8c57615d8b6177d6565b5b1480615dbc5750600a601f811115615da757615da66177d6565b5b82601f811115615dba57615db96177d6565b5b145b80615deb5750600b601f811115615dd657615dd56177d6565b5b82601f811115615de957615de86177d6565b5b145b80615e1a5750600c601f811115615e0557615e046177d6565b5b82601f811115615e1857615e176177d6565b5b145b9050919050565b5f81604051602001615e339190618dbd565b6040516020818303038152906040528051906020012083604051602001615e5a9190618dbd565b6040516020818303038152906040528051906020012014905092915050565b615e938282615e88575f615e8b565b60015b60ff16612439565b5050565b60605f615ea3836165e4565b90505f60ff168160ff1603615ef0576040518060400160405280600581526020017f65626f6f6c00000000000000000000000000000000000000000000000000000081525091505061613e565b600260ff168160ff1603615f3c576040518060400160405280600681526020017f6575696e7438000000000000000000000000000000000000000000000000000081525091505061613e565b600360ff168160ff1603615f88576040518060400160405280600781526020017f6575696e7431360000000000000000000000000000000000000000000000000081525091505061613e565b600460ff168160ff1603615fd4576040518060400160405280600781526020017f6575696e7433320000000000000000000000000000000000000000000000000081525091505061613e565b600560ff168160ff1603616020576040518060400160405280600781526020017f6575696e7436340000000000000000000000000000000000000000000000000081525091505061613e565b600660ff168160ff160361606c576040518060400160405280600881526020017f6575696e7431323800000000000000000000000000000000000000000000000081525091505061613e565b600860ff168160ff16036160b8576040518060400160405280600881526020017f6575696e7432353600000000000000000000000000000000000000000000000081525091505061613e565b600760ff168160ff1603616104576040518060400160405280600881526020017f656164647265737300000000000000000000000000000000000000000000000081525091505061613e565b6040518060400160405280600781526020017f756e6b6e6f776e000000000000000000000000000000000000000000000000008152509150505b919050565b60605f600161615184616600565b0190505f8167ffffffffffffffff81111561616f5761616e6169da565b5b6040519080825280601f01601f1916602001820160405280156161a15781602001600182028036833780820191505090505b5090505f82602083010190505b600115616202578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816161f7576161f66176b7565b5b0494505f85036161ae575b819350505050919050565b5f60038111156162205761621f6177d6565b5b826003811115616233576162326177d6565b5b031561636b576001600381111561624d5761624c6177d6565b5b8260038111156162605761625f6177d6565b5b03616297576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260038111156162ab576162aa6177d6565b5b8260038111156162be576162bd6177d6565b5b0361630257805f1c6040517ffce698f70000000000000000000000000000000000000000000000000000000081526004016162f99190616bbd565b60405180910390fd5b600380811115616315576163146177d6565b5b826003811115616328576163276177d6565b5b0361636a57806040517fd78bce0c0000000000000000000000000000000000000000000000000000000081526004016163619190618dd3565b60405180910390fd5b5b5050565b5f5f61637a836165e4565b90505f5f821860ff1614915050919050565b60605f8390505f60028460026163a29190618dec565b6163ac9190617741565b67ffffffffffffffff8111156163c5576163c46169da565b5b6040519080825280601f01601f1916602001820160405280156163f75781602001600182028036833780820191505090505b5090507f3000000000000000000000000000000000000000000000000000000000000000815f8151811061642e5761642d6179c1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110616491576164906179c1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f60018560026164cf9190618dec565b6164d99190617741565b90505b6001811115616578577f3031323334353637383961626364656600000000000000000000000000000000600f84166010811061651b5761651a6179c1565b5b1a60f81b828281518110616532576165316179c1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350600483901c92508061657190618e2d565b90506164dc565b505f82146165bf5784846040517fe22e27eb0000000000000000000000000000000000000000000000000000000081526004016165b69291906177af565b60405180910390fd5b809250505092915050565b6165e1816165d9616751616770565b63ffffffff16565b50565b5f600880600160ff8016901c60ff16901b8316901c9050919050565b5f5f5f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000831061665c577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381616652576166516176b7565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310616699576d04ee2d6d415b85acef8100000000838161668f5761668e6176b7565b5b0492506020810190505b662386f26fc1000083106166c857662386f26fc1000083816166be576166bd6176b7565b5b0492506010810190505b6305f5e10083106166f1576305f5e10083816166e7576166e66176b7565b5b0492506008810190505b612710831061671657612710838161670c5761670b6176b7565b5b0492506004810190505b60648310616739576064838161672f5761672e6176b7565b5b0492506002810190505b600a8310616748576001810190505b80915050919050565b5f6a636f6e736f6c652e6c6f6790505f5f835160208501845afa505050565b61677b819050919050565b616783618e54565b565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6167a881616796565b81146167b2575f5ffd5b50565b5f813590506167c38161679f565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6167f2826167c9565b9050919050565b616802816167e8565b811461680c575f5ffd5b50565b5f8135905061681d816167f9565b92915050565b5f5f604083850312156168395761683861678e565b5b5f616846858286016167b5565b92505060206168578582860161680f565b9150509250929050565b5f5f604083850312156168775761687661678e565b5b5f616884858286016167b5565b9250506020616895858286016167b5565b9150509250929050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f8401126168c0576168bf61689f565b5b8235905067ffffffffffffffff8111156168dd576168dc6168a3565b5b6020830191508360018202830111156168f9576168f86168a7565b5b9250929050565b5f5f5f5f606085870312156169185761691761678e565b5b5f616925878288016167b5565b9450506020616936878288016167b5565b935050604085013567ffffffffffffffff81111561695757616956616792565b5b616963878288016168ab565b925092505092959194509250565b5f60ff82169050919050565b61698681616971565b8114616990575f5ffd5b50565b5f813590506169a18161697d565b92915050565b602081106169b3575f5ffd5b50565b5f813590506169c4816169a7565b92915050565b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b616a10826169ca565b810181811067ffffffffffffffff82111715616a2f57616a2e6169da565b5b80604052505050565b5f616a41616785565b9050616a4d8282616a07565b919050565b5f67ffffffffffffffff821115616a6c57616a6b6169da565b5b602082029050602081019050919050565b5f616a8f616a8a84616a52565b616a38565b90508083825260208201905060208402830185811115616ab257616ab16168a7565b5b835b81811015616adb5780616ac788826167b5565b845260208401935050602081019050616ab4565b5050509392505050565b5f82601f830112616af957616af861689f565b5b8135616b09848260208601616a7d565b91505092915050565b5f5f5f5f60808587031215616b2a57616b2961678e565b5b5f616b3787828801616993565b9450506020616b48878288016169b6565b935050604085013567ffffffffffffffff811115616b6957616b68616792565b5b616b7587828801616ae5565b925050606085013567ffffffffffffffff811115616b9657616b95616792565b5b616ba287828801616ae5565b91505092959194509250565b616bb781616796565b82525050565b5f602082019050616bd05f830184616bae565b92915050565b5f60208284031215616beb57616bea61678e565b5b5f616bf8848285016167b5565b91505092915050565b5f8115159050919050565b616c1581616c01565b82525050565b5f602082019050616c2e5f830184616c0c565b92915050565b616c3d816167e8565b82525050565b5f602082019050616c565f830184616c34565b92915050565b5f60208284031215616c7157616c7061678e565b5b5f616c7e8482850161680f565b91505092915050565b5f8160030b9050919050565b616c9c81616c87565b8114616ca6575f5ffd5b50565b5f81359050616cb781616c93565b92915050565b5f5f60408385031215616cd357616cd261678e565b5b5f616ce085828601616ca9565b9250506020616cf185828601616ca9565b9150509250929050565b5f5ffd5b5f5ffd5b5f5ffd5b5f67ffffffffffffffff821115616d2157616d206169da565b5b616d2a826169ca565b9050602081019050919050565b828183375f83830152505050565b5f616d57616d5284616d07565b616a38565b905082815260208101848484011115616d7357616d72616d03565b5b616d7e848285616d37565b509392505050565b5f82601f830112616d9a57616d9961689f565b5b8135616daa848260208601616d45565b91505092915050565b5f60808284031215616dc857616dc7616cfb565b5b616dd26080616a38565b90505f616de1848285016167b5565b5f830152506020616df484828501616993565b6020830152506040616e0884828501616993565b604083015250606082013567ffffffffffffffff811115616e2c57616e2b616cff565b5b616e3884828501616d86565b60608301525092915050565b5f5f60408385031215616e5a57616e5961678e565b5b5f83013567ffffffffffffffff811115616e7757616e76616792565b5b616e8385828601616db3565b9250506020616e948582860161680f565b9150509250929050565b5f604082019050616eb15f830185616bae565b616ebe6020830184616c0c565b9392505050565b5f67ffffffffffffffff821115616edf57616ede6169da565b5b616ee8826169ca565b9050602081019050919050565b5f616f07616f0284616ec5565b616a38565b905082815260208101848484011115616f2357616f22616d03565b5b616f2e848285616d37565b509392505050565b5f82601f830112616f4a57616f4961689f565b5b8135616f5a848260208601616ef5565b91505092915050565b5f5f5f60608486031215616f7a57616f7961678e565b5b5f616f87868287016167b5565b935050602084013567ffffffffffffffff811115616fa857616fa7616792565b5b616fb486828701616f36565b925050604084013567ffffffffffffffff811115616fd557616fd4616792565b5b616fe186828701616f36565b9150509250925092565b5f6020828403121561700057616fff61678e565b5b5f61700d84828501616ca9565b91505092915050565b61701f81616c01565b8114617029575f5ffd5b50565b5f8135905061703a81617016565b92915050565b5f602082840312156170555761705461678e565b5b5f6170628482850161702c565b91505092915050565b5f5f83601f8401126170805761707f61689f565b5b8235905067ffffffffffffffff81111561709d5761709c6168a3565b5b6020830191508360208202830111156170b9576170b86168a7565b5b9250929050565b5f5f83601f8401126170d5576170d461689f565b5b8235905067ffffffffffffffff8111156170f2576170f16168a3565b5b60208301915083602082028301111561710e5761710d6168a7565b5b9250929050565b5f5f5f5f5f5f6060878903121561712f5761712e61678e565b5b5f87013567ffffffffffffffff81111561714c5761714b616792565b5b61715889828a0161706b565b9650965050602087013567ffffffffffffffff81111561717b5761717a616792565b5b61718789828a0161706b565b9450945050604087013567ffffffffffffffff8111156171aa576171a9616792565b5b6171b689828a016170c0565b92509250509295509295509295565b5f5f5f606084860312156171dc576171db61678e565b5b5f84013567ffffffffffffffff8111156171f9576171f8616792565b5b61720586828701616f36565b9350506020617216868287016167b5565b9250506040617227868287016167b5565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f61726382617231565b61726d818561723b565b935061727d81856020860161724b565b617286816169ca565b840191505092915050565b5f6020820190508181035f8301526172a98184617259565b905092915050565b5f5f5f606084860312156172c8576172c761678e565b5b5f6172d586828701616993565b93505060206172e6868287016167b5565b92505060406172f786828701616ca9565b9150509250925092565b5f5f83601f8401126173165761731561689f565b5b8235905067ffffffffffffffff811115617333576173326168a3565b5b60208301915083602082028301111561734f5761734e6168a7565b5b9250929050565b5f5f5f5f6060858703121561736e5761736d61678e565b5b5f61737b878288016167b5565b945050602061738c878288016167b5565b935050604085013567ffffffffffffffff8111156173ad576173ac616792565b5b6173b987828801617301565b925092505092959194509250565b5f5f5f606084860312156173de576173dd61678e565b5b5f84013567ffffffffffffffff8111156173fb576173fa616792565b5b61740786828701616f36565b9350506020617418868287016167b5565b92505060406174298682870161680f565b9150509250925092565b5f67ffffffffffffffff82169050919050565b61744f81617433565b8114617459575f5ffd5b50565b5f8135905061746a81617446565b92915050565b5f819050919050565b61748281617470565b811461748c575f5ffd5b50565b5f8135905061749d81617479565b92915050565b5f61010082840312156174b9576174b8616cfb565b5b6174c4610100616a38565b90505f6174d38482850161680f565b5f8301525060206174e68482850161745c565b60208301525060406174fa8482850161680f565b604083015250606061750e848285016167b5565b60608301525060806175228482850161680f565b60808301525060a06175368482850161748f565b60a08301525060c082013567ffffffffffffffff81111561755a57617559616cff565b5b61756684828501616d86565b60c08301525060e082013567ffffffffffffffff81111561758a57617589616cff565b5b61759684828501616d86565b60e08301525092915050565b5f5f604083850312156175b8576175b761678e565b5b5f83013567ffffffffffffffff8111156175d5576175d4616792565b5b6175e1858286016174a3565b92505060206175f2858286016167b5565b9150509250929050565b5f602082840312156176115761761061678e565b5b5f82013567ffffffffffffffff81111561762e5761762d616792565b5b61763a84828501616f36565b91505092915050565b5f819050919050565b5f61766661766161765c846167c9565b617643565b6167c9565b9050919050565b5f6176778261764c565b9050919050565b5f6176888261766d565b9050919050565b6176988161767e565b82525050565b5f6020820190506176b15f83018461768f565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6176ee82616796565b91506176f983616796565b925082617709576177086176b7565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61774b82616796565b915061775683616796565b925082820190508082111561776e5761776d617714565b5b92915050565b5f61777e82617433565b915061778983617433565b9250828201905067ffffffffffffffff8111156177a9576177a8617714565b5b92915050565b5f6040820190506177c25f830185616bae565b6177cf6020830184616bae565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f819050919050565b5f61782661782161781c84617803565b617643565b616796565b9050919050565b6178368161780c565b82525050565b5f6060820190508181035f8301526178548186617259565b90506178636020830185616bae565b617870604083018461782d565b949350505050565b5f60608201905061788b5f830186616bae565b6178986020830185616c34565b6178a56040830184616c34565b949350505050565b6178b681616c87565b82525050565b5f6060820190506178cf5f8301866178ad565b6178dc60208301856178ad565b6178e960408301846178ad565b949350505050565b5f6040820190506179045f830185616c34565b6179116020830184616c34565b9392505050565b5f60408201905061792b5f830185616bae565b6179386020830184616c34565b9392505050565b5f6060820190506179525f830186616bae565b81810360208301526179648185617259565b905081810360408301526179788184617259565b9050949350505050565b5f8151905061799081617016565b92915050565b5f602082840312156179ab576179aa61678e565b5b5f6179b884828501617982565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83356001602003843603038112617a1657617a156179ee565b5b80840192508235915067ffffffffffffffff821115617a3857617a376179f2565b5b602083019250600182023603831315617a5457617a536179f6565b5b509250929050565b5f82825260208201905092915050565b5f617a778385617a5c565b9350617a84838584616d37565b617a8d836169ca565b840190509392505050565b5f606082019050617aab5f830187616bae565b617ab86020830186616bae565b8181036040830152617acb818486617a6c565b905095945050505050565b7f4f7574206f6620626f756e6473000000000000000000000000000000000000005f82015250565b5f617b0a600d8361723b565b9150617b1582617ad6565b602082019050919050565b5f6020820190508181035f830152617b3781617afe565b9050919050565b617b4781616971565b82525050565b5f608082019050617b605f830187617b3e565b617b6d6020830186616bae565b617b7a60408301856178ad565b617b876060830184616bae565b95945050505050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b617bc281616796565b82525050565b5f617bd38383617bb9565b60208301905092915050565b5f602082019050919050565b5f617bf582617b90565b617bff8185617b9a565b9350617c0a83617baa565b805f5b83811015617c3a578151617c218882617bc8565b9750617c2c83617bdf565b925050600181019050617c0d565b5085935050505092915050565b5f6040820190508181035f830152617c5f8185617beb565b9050617c6e6020830184616c34565b9392505050565b617c7e816167e8565b82525050565b617c8d81617433565b82525050565b617c9c81617470565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f617cc682617ca2565b617cd08185617cac565b9350617ce081856020860161724b565b617ce9816169ca565b840191505092915050565b5f61010083015f830151617d0a5f860182617c75565b506020830151617d1d6020860182617c84565b506040830151617d306040860182617c75565b506060830151617d436060860182617bb9565b506080830151617d566080860182617c75565b5060a0830151617d6960a0860182617c93565b5060c083015184820360c0860152617d818282617cbc565b91505060e083015184820360e0860152617d9b8282617cbc565b9150508091505092915050565b5f6040820190508181035f830152617dc08185617cf4565b9050617dcf6020830184616bae565b9392505050565b5f617de082616796565b9150617deb83616796565b9250828203905081811115617e0357617e02617714565b5b92915050565b5f819050919050565b617e23617e1e82616796565b617e09565b82525050565b5f617e348285617e12565b602082019150617e448284617e12565b6020820191508190509392505050565b5f819050919050565b5f617e77617e72617e6d84617e54565b617643565b616796565b9050919050565b617e8781617e5d565b82525050565b5f6060820190508181035f830152617ea58186617259565b9050617eb46020830185616bae565b617ec16040830184617e7e565b949350505050565b5f819050919050565b5f617eec617ee7617ee284617ec9565b617643565b616796565b9050919050565b617efc81617ed2565b82525050565b5f6060820190508181035f830152617f1a8186617259565b9050617f296020830185616bae565b617f366040830184617ef3565b949350505050565b5f617f4882616971565b915060ff8203617f5b57617f5a617714565b5b600182019050919050565b5f81905092915050565b5f617f7a82617ca2565b617f848185617f66565b9350617f9481856020860161724b565b80840191505092915050565b5f617fab8285617f70565b9150617fb78284617f70565b91508190509392505050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b5f819050919050565b61800861800382617fc3565b617fee565b82525050565b5f6180198285617f70565b91506180258284617ff7565b6001820191508190509392505050565b5f819050919050565b5f61805861805361804e84618035565b617643565b616796565b9050919050565b6180688161803e565b82525050565b5f60a0820190506180815f830188616bae565b81810360208301526180938187617259565b90506180a26040830186616bae565b6180af606083018561805f565b6180bc608083018461805f565b9695505050505050565b5f60a0820190506180d95f830188616bae565b81810360208301526180eb8187617259565b90506180fa6040830186616bae565b6181076060830185616bae565b618114608083018461805f565b9695505050505050565b5f60a0820190506181315f830188616bae565b81810360208301526181438187617259565b90506181526040830186616bae565b61815f6060830185616bae565b61816c6080830184616bae565b9695505050505050565b5f8160f81b9050919050565b5f61818c82618176565b9050919050565b6181a461819f82616971565b618182565b82525050565b5f8160601b9050919050565b5f6181c0826181aa565b9050919050565b5f6181d1826181b6565b9050919050565b6181e96181e4826167e8565b6181c7565b82525050565b5f6181fa8288617e12565b60208201915061820a8287618193565b60018201915061821a8286618193565b60018201915061822a82856181d8565b60148201915061823a8284617e12565b6020820191508190509695505050505050565b5f81905092915050565b5f61826182617231565b61826b818561824d565b935061827b81856020860161724b565b80840191505092915050565b7f202d3e2000000000000000000000000000000000000000000000000000000000815250565b5f6182b88288618257565b91506182c48287618257565b91506182d08286618257565b91506182dc8285618257565b91506182e782618287565b6004820191506182f78284618257565b91508190509695505050505050565b7f73656c65637400000000000000000000000000000000000000000000000000005f82015250565b5f61833a60068361723b565b915061834582618306565b602082019050919050565b5f6060820190508181035f8301526183678161832e565b90506183766020830185616bae565b618383604083018461782d565b9392505050565b5f6020820190508181035f8301526183a18161832e565b9050919050565b5f6040820190506183bb5f830185617b3e565b6183c86020830184617b3e565b9392505050565b5f6040820190508181035f8301526183e78185617259565b90506183f66020830184617b3e565b9392505050565b7f202a200000000000000000000000000000000000000000000000000000000000815250565b5f61842e8285618257565b9150618439826183fd565b6003820191506184498284618257565b91508190509392505050565b7f202d200000000000000000000000000000000000000000000000000000000000815250565b5f6184868285618257565b915061849182618455565b6003820191506184a18284618257565b91508190509392505050565b7f202b200000000000000000000000000000000000000000000000000000000000815250565b5f6184de8285618257565b91506184e9826184ad565b6003820191506184f98284618257565b91508190509392505050565b7f205e200000000000000000000000000000000000000000000000000000000000815250565b5f6185368285618257565b915061854182618505565b6003820191506185518284618257565b91508190509392505050565b7f2026200000000000000000000000000000000000000000000000000000000000815250565b5f61858e8285618257565b91506185998261855d565b6003820191506185a98284618257565b91508190509392505050565b7f207c200000000000000000000000000000000000000000000000000000000000815250565b5f6185e68285618257565b91506185f1826185b5565b6003820191506186018284618257565b91508190509392505050565b7f202f200000000000000000000000000000000000000000000000000000000000815250565b5f61863e8285618257565b91506186498261860d565b6003820191506186598284618257565b91508190509392505050565b7f2025200000000000000000000000000000000000000000000000000000000000815250565b5f6186968285618257565b91506186a182618665565b6003820191506186b18284618257565b91508190509392505050565b7f203c3c2000000000000000000000000000000000000000000000000000000000815250565b5f6186ee8285618257565b91506186f9826186bd565b6004820191506187098284618257565b91508190509392505050565b7f203e3e2000000000000000000000000000000000000000000000000000000000815250565b5f6187468285618257565b915061875182618715565b6004820191506187618284618257565b91508190509392505050565b7f203e3d2000000000000000000000000000000000000000000000000000000000815250565b5f61879e8285618257565b91506187a98261876d565b6004820191506187b98284618257565b91508190509392505050565b7f203c3d2000000000000000000000000000000000000000000000000000000000815250565b5f6187f68285618257565b9150618801826187c5565b6004820191506188118284618257565b91508190509392505050565b7f203c200000000000000000000000000000000000000000000000000000000000815250565b5f61884e8285618257565b91506188598261881d565b6003820191506188698284618257565b91508190509392505050565b7f203e200000000000000000000000000000000000000000000000000000000000815250565b5f6188a68285618257565b91506188b182618875565b6003820191506188c18284618257565b91508190509392505050565b7f6d696e2800000000000000000000000000000000000000000000000000000000815250565b7f2c20000000000000000000000000000000000000000000000000000000000000815250565b7f2900000000000000000000000000000000000000000000000000000000000000815250565b5f618949826188cd565b6004820191506189598285618257565b9150618964826188f3565b6002820191506189748284618257565b915061897f82618919565b6001820191508190509392505050565b7f6d61782800000000000000000000000000000000000000000000000000000000815250565b5f6189bf8261898f565b6004820191506189cf8285618257565b91506189da826188f3565b6002820191506189ea8284618257565b91506189f582618919565b6001820191508190509392505050565b7f203d3d2000000000000000000000000000000000000000000000000000000000815250565b5f618a368285618257565b9150618a4182618a05565b600482019150618a518284618257565b91508190509392505050565b7f20213d2000000000000000000000000000000000000000000000000000000000815250565b5f618a8e8285618257565b9150618a9982618a5d565b600482019150618aa98284618257565b91508190509392505050565b7f4648452e61734500000000000000000000000000000000000000000000000000815250565b5f618ae582618ab5565b600782019150618af58284618257565b915081905092915050565b7f2800000000000000000000000000000000000000000000000000000000000000815250565b5f618b318285618257565b9150618b3c82618b00565b600182019150618b4c8284618257565b9150618b5782618919565b6001820191508190509392505050565b7f203f200000000000000000000000000000000000000000000000000000000000815250565b7f203a200000000000000000000000000000000000000000000000000000000000815250565b5f618bbe8286618257565b9150618bc982618b67565b600382019150618bd98285618257565b9150618be482618b8d565b600382019150618bf48284618257565b9150819050949350505050565b7f2e2e000000000000000000000000000000000000000000000000000000000000815250565b7f295b000000000000000000000000000000000000000000000000000000000000815250565b7f5d00000000000000000000000000000000000000000000000000000000000000815250565b5f618c7e8287618257565b9150618c8982618b00565b600182019150618c998286618257565b9150618ca482618c01565b600282019150618cb48285618257565b9150618cbf82618c27565b600282019150618ccf8284618257565b9150618cda82618c4d565b60018201915081905095945050505050565b7f20203d3e20200000000000000000000000000000000000000000000000000000815250565b5f618d1d8288618257565b9150618d298287618257565b9150618d358286618257565b9150618d418285618257565b9150618d4c82618cec565b600682019150618d5c8284618257565b91508190509695505050505050565b618d7481617470565b82525050565b5f608082019050618d8d5f830187618d6b565b618d9a6020830186617b3e565b618da76040830185618d6b565b618db46060830184618d6b565b95945050505050565b5f618dc88284618257565b915081905092915050565b5f602082019050618de65f830184618d6b565b92915050565b5f618df682616796565b9150618e0183616796565b9250828202618e0f81616796565b91508282048414831517618e2657618e25617714565b5b5092915050565b5f618e3782616796565b91505f8203618e4957618e48617714565b5b600182039050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52605160045260245ffdfea26469706673582212207965592eeff6b151b0216692a669bd0f053b81c8a59abcd601e812944de1f5ca64736f6c63430008210033',\n} satisfies MockArtifact;\n","// This file is auto-generated by build-artifacts.ts\nimport { type MockArtifact } from './types';\n\nexport const MockACLArtifact = {\n contractName: 'MockACL',\n isFixed: false,\n abi: [\n {\n type: 'constructor',\n inputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'TASK_MANAGER_ADDRESS_',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'allow',\n inputs: [\n {\n name: 'handle',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'account',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'requester',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'allowForDecryption',\n inputs: [\n {\n name: 'handlesList',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n {\n name: 'requester',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'allowGlobal',\n inputs: [\n {\n name: 'handle',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'requester',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'allowTransient',\n inputs: [\n {\n name: 'handle',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'account',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'requester',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'allowedOnBehalf',\n inputs: [\n {\n name: 'delegatee',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'handle',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'contractAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'account',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'allowedTransient',\n inputs: [\n {\n name: 'handle',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'account',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'checkPermitValidity',\n inputs: [\n {\n name: 'permission',\n type: 'tuple',\n internalType: 'struct Permission',\n components: [\n {\n name: 'issuer',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'expiration',\n type: 'uint64',\n internalType: 'uint64',\n },\n {\n name: 'recipient',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'validatorId',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'validatorContract',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'sealingKey',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n {\n name: 'issuerSignature',\n type: 'bytes',\n internalType: 'bytes',\n },\n {\n name: 'recipientSignature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'cleanTransientStorage',\n inputs: [],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'delegateAccount',\n inputs: [\n {\n name: 'delegatee',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'delegateeContract',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'eip712Domain',\n inputs: [],\n outputs: [\n {\n name: 'fields',\n type: 'bytes1',\n internalType: 'bytes1',\n },\n {\n name: 'name',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'version',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'chainId',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'verifyingContract',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'salt',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n {\n name: 'extensions',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'exists',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'getTaskManagerAddress',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getVersion',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'string',\n internalType: 'string',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'globalAllowed',\n inputs: [\n {\n name: 'handle',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'hashTypedDataV4',\n inputs: [\n {\n name: 'structHash',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'isAllowed',\n inputs: [\n {\n name: 'handle',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'account',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'isAllowedForDecryption',\n inputs: [\n {\n name: 'handle',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'isAllowedWithPermission',\n inputs: [\n {\n name: 'permission',\n type: 'tuple',\n internalType: 'struct Permission',\n components: [\n {\n name: 'issuer',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'expiration',\n type: 'uint64',\n internalType: 'uint64',\n },\n {\n name: 'recipient',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'validatorId',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'validatorContract',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'sealingKey',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n {\n name: 'issuerSignature',\n type: 'bytes',\n internalType: 'bytes',\n },\n {\n name: 'recipientSignature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n {\n name: 'handle',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'persistAllowed',\n inputs: [\n {\n name: 'handle',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'account',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'event',\n name: 'AllowedForDecryption',\n inputs: [\n {\n name: 'handlesList',\n type: 'uint256[]',\n indexed: false,\n internalType: 'uint256[]',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'EIP712DomainChanged',\n inputs: [],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'NewDelegation',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'delegatee',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'contractAddress',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n ],\n anonymous: false,\n },\n {\n type: 'error',\n name: 'AlreadyDelegated',\n inputs: [],\n },\n {\n type: 'error',\n name: 'DirectAllowForbidden',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n internalType: 'address',\n },\n ],\n },\n {\n type: 'error',\n name: 'InvalidShortString',\n inputs: [],\n },\n {\n type: 'error',\n name: 'PermissionInvalid_Disabled',\n inputs: [],\n },\n {\n type: 'error',\n name: 'PermissionInvalid_Expired',\n inputs: [],\n },\n {\n type: 'error',\n name: 'PermissionInvalid_IssuerSignature',\n inputs: [],\n },\n {\n type: 'error',\n name: 'PermissionInvalid_RecipientSignature',\n inputs: [],\n },\n {\n type: 'error',\n name: 'SenderCannotBeDelegateeAddress',\n inputs: [],\n },\n {\n type: 'error',\n name: 'SenderNotAllowed',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n internalType: 'address',\n },\n ],\n },\n {\n type: 'error',\n name: 'StringTooLong',\n inputs: [\n {\n name: 'str',\n type: 'string',\n internalType: 'string',\n },\n ],\n },\n ],\n bytecode:\n '0x610160604052348015610010575f5ffd5b506040518060400160405280600381526020017f41434c00000000000000000000000000000000000000000000000000000000008152506040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506100905f8361012b60201b90919060201c565b61012081815250506100ac60018261012b60201b90919060201c565b6101408181525050818051906020012060e08181525050808051906020012061010081815250504660a081815250506100e961017860201b60201c565b608081815250503073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1681525050505061072d565b5f60208351101561014c57610145836101d260201b60201c565b9050610172565b8261015c8361023760201b60201c565b5f01908161016a919061048e565b5060ff5f1b90505b92915050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60e0516101005146306040516020016101b79594939291906105c3565b60405160208183030381529060405280519060200120905090565b5f5f829050601f8151111561021e57826040517f305a27a9000000000000000000000000000000000000000000000000000000008152600401610215919061067a565b60405180910390fd5b80518161022a906106c7565b5f1c175f1b915050919050565b5f819050919050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806102bb57607f821691505b6020821081036102ce576102cd610277565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026103307fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826102f5565b61033a86836102f5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f61037e61037961037484610352565b61035b565b610352565b9050919050565b5f819050919050565b61039783610364565b6103ab6103a382610385565b848454610301565b825550505050565b5f5f905090565b6103c26103b3565b6103cd81848461038e565b505050565b5f5b828110156103f3576103e85f8284016103ba565b6001810190506103d4565b505050565b601f821115610446578282111561044557610412816102d4565b61041b836102e6565b610424856102e6565b6020861015610431575f90505b808301610440828403826103d2565b505050505b5b505050565b5f82821c905092915050565b5f6104665f198460080261044b565b1980831691505092915050565b5f61047e8383610457565b9150826002028217905092915050565b61049782610240565b67ffffffffffffffff8111156104b0576104af61024a565b5b6104ba82546102a4565b6104c58282856103f8565b5f60209050601f8311600181146104f6575f84156104e4578287015190505b6104ee8582610473565b865550610555565b601f198416610504866102d4565b5f5b8281101561052b57848901518255600182019150602085019450602081019050610506565b868310156105485784890151610544601f891682610457565b8355505b6001600288020188555050505b505050505050565b5f819050919050565b61056f8161055d565b82525050565b61057e81610352565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6105ad82610584565b9050919050565b6105bd816105a3565b82525050565b5f60a0820190506105d65f830188610566565b6105e36020830187610566565b6105f06040830186610566565b6105fd6060830185610575565b61060a60808301846105b4565b9695505050505050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61064c82610240565b6106568185610614565b9350610666818560208601610624565b61066f81610632565b840191505092915050565b5f6020820190508181035f8301526106928184610642565b905092915050565b5f81519050919050565b5f819050602082019050919050565b5f6106be825161055d565b80915050919050565b5f6106d18261069a565b826106db846106a4565b90506106e6816106b3565b92506020821015610726576107217fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff836020036008026102f5565b831692505b5050919050565b60805160a05160c05160e05161010051610120516101405161309261077e5f395f6117a301525f61176801525f611ec701525f611ea601525f611a9001525f611ae601525f611b0f01526130925ff3fe608060405234801561000f575f5ffd5b506004361061012a575f3560e01c806365ce8df7116100ab57806394d9184c1161006f57806394d9184c14610334578063a8b7010014610364578063ae79f04a14610380578063cbf4f703146103b0578063ccd9a7cd146103e05761012a565b806365ce8df71461028a57806379a3a7fb146102a85780637a9a598e146102c4578063846cd433146102f457806384b0196e146103105761012a565b8063484de822116100f2578063484de822146101c05780634980f288146101dc57806351b8fd201461020c5780635faa299a1461022a5780636330a7091461025a5761012a565b80630d8e6e2c1461012e578063267c4ae41461014c57806335334c231461016a57806337e6b44f146101745780633c3839ba146101a4575b5f5ffd5b610136610410565b604051610143919061212e565b60405180910390f35b61015461048b565b6040516101619190612168565b60405180910390f35b610172610493565b005b61018e6004803603810190610189919061221f565b610544565b60405161019b9190612168565b60405180910390f35b6101be60048036038101906101b9919061239d565b6105b4565b005b6101da60048036038101906101d591906123f7565b610735565b005b6101f660048036038101906101f1919061247a565b610896565b60405161020391906124b4565b60405180910390f35b6102146108a7565b60405161022191906124dc565b60405180910390f35b610244600480360381019061023f919061221f565b6108bf565b6040516102519190612168565b60405180910390f35b610274600480360381019061026f91906124f5565b6108f3565b6040516102819190612168565b60405180910390f35b610292610927565b60405161029f91906124dc565b60405180910390f35b6102c260048036038101906102bd91906123f7565b610942565b005b6102de60048036038101906102d9919061221f565b610a88565b6040516102eb9190612168565b60405180910390f35b61030e6004803603810190610309919061221f565b610ac5565b005b610318610bce565b60405161032b9796959493929190612620565b60405180910390f35b61034e600480360381019061034991906124f5565b610c73565b60405161035b9190612168565b60405180910390f35b61037e600480360381019061037991906126a2565b610ca6565b005b61039a600480360381019061039591906128d4565b610fd6565b6040516103a79190612168565b60405180910390f35b6103ca60048036038101906103c5919061292e565b61122d565b6040516103d79190612168565b60405180910390f35b6103fa60048036038101906103f59190612975565b611478565b6040516104079190612168565b60405180910390f35b60606040518060400160405280600381526020017f41434c00000000000000000000000000000000000000000000000000000000008152506104515f611617565b61045b6001611617565b6104645f611617565b6040516020016104779493929190612aa7565b604051602081830303815290604052905090565b5f6001905090565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461051757336040517f3809a24300000000000000000000000000000000000000000000000000000000815260040161050e91906124dc565b60405180910390fd5b5f5c5f5f5d6001810160015b8181101561053f57805c5f825d5f815d50600181019050610523565b505050565b5f5f61054e6116e1565b9050806001015f8581526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1691505092915050565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461063857336040517f3809a24300000000000000000000000000000000000000000000000000000000815260040161062f91906124dc565b60405180910390fd5b5f825190505f6106466116e1565b90505f5f90505b828110156106f7575f85828151811061066957610668612b05565b5b6020026020010151905061067d81866108bf565b6106be57846040517fd0d259760000000000000000000000000000000000000000000000000000000081526004016106b591906124dc565b60405180910390fd5b6001836002015f8381526020019081526020015f205f6101000a81548160ff02191690831515021790555050808060010191505061064d565b507f2fd616621b8415a2efb27b224024340ac767797553ce6fdf4c1adefd160504c6846040516107279190612b32565b60405180910390a150505050565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107b957336040517f3809a2430000000000000000000000000000000000000000000000000000000081526004016107b091906124dc565b60405180910390fd5b6107c383826108bf565b158015610810575073ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1561085257806040517fd0d2597600000000000000000000000000000000000000000000000000000000815260040161084991906124dc565b60405180910390fd5b5f8383604051602001610866929190612bb7565b6040516020818303038152906040528051906020012090506001815d5f5c6001810182815d805f5d505050505050565b5f6108a082611747565b9050919050565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d981565b5f6108ca8383610a88565b806108db57506108da8383610544565b5b806108eb57506108ea83610c73565b5b905092915050565b5f5f6108fd6116e1565b9050806002015f8481526020019081526020015f205f9054906101000a900460ff16915050919050565b5f73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d9905090565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109c657336040517f3809a2430000000000000000000000000000000000000000000000000000000081526004016109bd91906124dc565b60405180910390fd5b6109d083826108bf565b610a1157806040517fd0d25976000000000000000000000000000000000000000000000000000000008152600401610a0891906124dc565b60405180910390fd5b5f610a1a6116e1565b90506001816001015f8681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050505050565b5f5f5f8484604051602001610a9e929190612bb7565b604051602081830303815290604052805190602001209050805c9150819250505092915050565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b4957336040517f3809a243000000000000000000000000000000000000000000000000000000008152600401610b4091906124dc565b60405180910390fd5b610b5382826108bf565b610b9457806040517fd0d25976000000000000000000000000000000000000000000000000000000008152600401610b8b91906124dc565b60405180910390fd5b5f610b9d6116e1565b90506001815f015f8581526020019081526020015f205f6101000a81548160ff021916908315150217905550505050565b5f6060805f5f5f6060610bdf611760565b610be761179a565b46305f5f1b5f67ffffffffffffffff811115610c0657610c05612261565b5b604051908082528060200260200182016040528015610c345781602001602082028036833780820191505090505b507f0f00000000000000000000000000000000000000000000000000000000000000959493929190965096509650965096509650965090919293949596565b5f5f610c7d6116e1565b9050805f015f8481526020019081526020015f205f9054906101000a900460ff16915050919050565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d2a57336040517f3809a243000000000000000000000000000000000000000000000000000000008152600401610d2191906124dc565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d8f576040517f30dc920300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f610d986116e1565b9050806003015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610e93576040517fd186046800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001816003015f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ff03b7c0d4879b0bcbbf440794871f139c96fd13a145a8172b33b9cab5fa2830a60405160405180910390a4505050565b5f8242816020015167ffffffffffffffff161015611020576040517fed0764a100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611042815f0151611038611033846117d5565b611747565b8360c0015161182e565b611078576040517f4c40eccb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff16816040015173ffffffffffffffffffffffffffffffffffffffff16141580156110d857506110d681604001516110cc6110c7846118da565b611747565b8360e0015161182e565b155b1561110f576040517f8e143bf700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f81606001511415801561115357505f73ffffffffffffffffffffffffffffffffffffffff16816080015173ffffffffffffffffffffffffffffffffffffffff1614155b80156111e05750806080015173ffffffffffffffffffffffffffffffffffffffff1663b63391e8825f015183606001516040518363ffffffff1660e01b81526004016111a0929190612be2565b602060405180830381865afa1580156111bb573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111df9190612c33565b5b15611217576040517fcbd3a96600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61122483855f01516108bf565b91505092915050565b5f8142816020015167ffffffffffffffff161015611277576040517fed0764a100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611299815f015161128f61128a846117d5565b611747565b8360c0015161182e565b6112cf576040517f4c40eccb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff16816040015173ffffffffffffffffffffffffffffffffffffffff161415801561132f575061132d816040015161132361131e846118da565b611747565b8360e0015161182e565b155b15611366576040517f8e143bf700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8160600151141580156113aa57505f73ffffffffffffffffffffffffffffffffffffffff16816080015173ffffffffffffffffffffffffffffffffffffffff1614155b80156114375750806080015173ffffffffffffffffffffffffffffffffffffffff1663b63391e8825f015183606001516040518363ffffffff1660e01b81526004016113f7929190612be2565b602060405180830381865afa158015611412573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114369190612c33565b5b1561146e576040517fcbd3a96600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001915050919050565b5f5f6114826116e1565b9050806001015f8681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156115425750806001015f8681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b801561160c5750806003015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b915050949350505050565b60605f60016116258461193c565b0190505f8167ffffffffffffffff81111561164357611642612261565b5b6040519080825280601f01601f1916602001820160405280156116755781602001600182028036833780820191505090505b5090505f82602083010190505b6001156116d6578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a85816116cb576116ca612c5e565b5b0494505f8503611682575b819350505050919050565b5f5f60ff5f1b1960017fc4eb438ffad04c606bb4f9c3576c0f142d5dc3782731029ea1ab95b6483220115f1c6117179190612cb8565b6040516020016117279190612ceb565b604051602081830303815290604052805190602001201690508091505090565b5f611759611753611a8d565b83611b43565b9050919050565b60606117955f7f0000000000000000000000000000000000000000000000000000000000000000611b8390919063ffffffff16565b905090565b60606117d060017f0000000000000000000000000000000000000000000000000000000000000000611b8390919063ffffffff16565b905090565b5f5f73ffffffffffffffffffffffffffffffffffffffff16826040015173ffffffffffffffffffffffffffffffffffffffff160361181d5761181682611c30565b9050611829565b61182682611ca2565b90505b919050565b5f5f8473ffffffffffffffffffffffffffffffffffffffff163b036118c5575f5f6118598585611d0e565b50915091505f600381111561187157611870612d04565b5b81600381111561188457611883612d04565b5b1480156118bc57508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b925050506118d3565b6118d0848484611d63565b90505b9392505050565b5f7f82af07a6c9eb6bb31a0c86f7f5cad0039589750ad5b4b925ed5741f7ad4e8d4b8260a001518360c001518051906020012060405160200161191f93929190612d31565b604051602081830303815290604052805190602001209050919050565b5f5f5f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611998577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161198e5761198d612c5e565b5b0492506040810190505b6d04ee2d6d415b85acef810000000083106119d5576d04ee2d6d415b85acef810000000083816119cb576119ca612c5e565b5b0492506020810190505b662386f26fc100008310611a0457662386f26fc1000083816119fa576119f9612c5e565b5b0492506010810190505b6305f5e1008310611a2d576305f5e1008381611a2357611a22612c5e565b5b0492506008810190505b6127108310611a52576127108381611a4857611a47612c5e565b5b0492506004810190505b60648310611a755760648381611a6b57611a6a612c5e565b5b0492506002810190505b600a8310611a84576001810190505b80915050919050565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16148015611b0857507f000000000000000000000000000000000000000000000000000000000000000046145b15611b35577f00000000000000000000000000000000000000000000000000000000000000009050611b40565b611b3d611e82565b90505b90565b5f6040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b606060ff5f1b8314611b9f57611b9883611f17565b9050611c2a565b818054611bab90612d93565b80601f0160208091040260200160405190810160405280929190818152602001828054611bd790612d93565b8015611c225780601f10611bf957610100808354040283529160200191611c22565b820191905f5260205f20905b815481529060010190602001808311611c0557829003601f168201915b505050505090505b92915050565b5f7f0ce0d938c38f948b8f9cf16098cd15ec62de132c8d422719ad270c5e2a101102825f015183602001518460400151856060015186608001518760a00151604051602001611c859796959493929190612dd2565b604051602081830303815290604052805190602001209050919050565b5f7f8549e986c64faf9b741179c61561f9d39f337cf9739f86178d84dabc6ca4cad5825f01518360200151846040015185606001518660800151604051602001611cf196959493929190612e3f565b604051602081830303815290604052805190602001209050919050565b5f5f5f6041845103611d4e575f5f5f602087015192506040870151915060608701515f1a9050611d4088828585611f89565b955095509550505050611d5c565b5f600285515f1b9250925092505b9250925092565b5f5f5f8573ffffffffffffffffffffffffffffffffffffffff168585604051602401611d90929190612ef0565b604051602081830303815290604052631626ba7e60e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050604051611de29190612f58565b5f60405180830381855afa9150503d805f8114611e1a576040519150601f19603f3d011682016040523d82523d5f602084013e611e1f565b606091505b5091509150818015611e3357506020815110155b8015611e775750631626ba7e60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681806020019051810190611e759190612f82565b145b925050509392505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000004630604051602001611efc959493929190612fad565b60405160208183030381529060405280519060200120905090565b60605f611f2383612070565b90505f602067ffffffffffffffff811115611f4157611f40612261565b5b6040519080825280601f01601f191660200182016040528015611f735781602001600182028036833780820191505090505b5090508181528360208201528092505050919050565b5f5f5f7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0845f1c1115611fc5575f600385925092509250612066565b5f6001888888886040515f8152602001604052604051611fe89493929190613019565b6020604051602081039080840390855afa158015612008573d5f5f3e3d5ffd5b5050506020604051035190505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612059575f60015f5f1b93509350935050612066565b805f5f5f1b935093509350505b9450945094915050565b5f5f60ff835f1c169050601f8111156120b5576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80915050919050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612100826120be565b61210a81856120c8565b935061211a8185602086016120d8565b612123816120e6565b840191505092915050565b5f6020820190508181035f83015261214681846120f6565b905092915050565b5f8115159050919050565b6121628161214e565b82525050565b5f60208201905061217b5f830184612159565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6121a481612192565b81146121ae575f5ffd5b50565b5f813590506121bf8161219b565b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6121ee826121c5565b9050919050565b6121fe816121e4565b8114612208575f5ffd5b50565b5f81359050612219816121f5565b92915050565b5f5f604083850312156122355761223461218a565b5b5f612242858286016121b1565b92505060206122538582860161220b565b9150509250929050565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612297826120e6565b810181811067ffffffffffffffff821117156122b6576122b5612261565b5b80604052505050565b5f6122c8612181565b90506122d4828261228e565b919050565b5f67ffffffffffffffff8211156122f3576122f2612261565b5b602082029050602081019050919050565b5f5ffd5b5f61231a612315846122d9565b6122bf565b9050808382526020820190506020840283018581111561233d5761233c612304565b5b835b81811015612366578061235288826121b1565b84526020840193505060208101905061233f565b5050509392505050565b5f82601f8301126123845761238361225d565b5b8135612394848260208601612308565b91505092915050565b5f5f604083850312156123b3576123b261218a565b5b5f83013567ffffffffffffffff8111156123d0576123cf61218e565b5b6123dc85828601612370565b92505060206123ed8582860161220b565b9150509250929050565b5f5f5f6060848603121561240e5761240d61218a565b5b5f61241b868287016121b1565b935050602061242c8682870161220b565b925050604061243d8682870161220b565b9150509250925092565b5f819050919050565b61245981612447565b8114612463575f5ffd5b50565b5f8135905061247481612450565b92915050565b5f6020828403121561248f5761248e61218a565b5b5f61249c84828501612466565b91505092915050565b6124ae81612447565b82525050565b5f6020820190506124c75f8301846124a5565b92915050565b6124d6816121e4565b82525050565b5f6020820190506124ef5f8301846124cd565b92915050565b5f6020828403121561250a5761250961218a565b5b5f612517848285016121b1565b91505092915050565b5f7fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b61255481612520565b82525050565b61256381612192565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61259b81612192565b82525050565b5f6125ac8383612592565b60208301905092915050565b5f602082019050919050565b5f6125ce82612569565b6125d88185612573565b93506125e383612583565b805f5b838110156126135781516125fa88826125a1565b9750612605836125b8565b9250506001810190506125e6565b5085935050505092915050565b5f60e0820190506126335f83018a61254b565b818103602083015261264581896120f6565b9050818103604083015261265981886120f6565b9050612668606083018761255a565b61267560808301866124cd565b61268260a08301856124a5565b81810360c083015261269481846125c4565b905098975050505050505050565b5f5f604083850312156126b8576126b761218a565b5b5f6126c58582860161220b565b92505060206126d68582860161220b565b9150509250929050565b5f5ffd5b5f5ffd5b5f67ffffffffffffffff82169050919050565b612704816126e8565b811461270e575f5ffd5b50565b5f8135905061271f816126fb565b92915050565b5f5ffd5b5f67ffffffffffffffff82111561274357612742612261565b5b61274c826120e6565b9050602081019050919050565b828183375f83830152505050565b5f61277961277484612729565b6122bf565b90508281526020810184848401111561279557612794612725565b5b6127a0848285612759565b509392505050565b5f82601f8301126127bc576127bb61225d565b5b81356127cc848260208601612767565b91505092915050565b5f61010082840312156127eb576127ea6126e0565b5b6127f66101006122bf565b90505f6128058482850161220b565b5f83015250602061281884828501612711565b602083015250604061282c8482850161220b565b6040830152506060612840848285016121b1565b60608301525060806128548482850161220b565b60808301525060a061286884828501612466565b60a08301525060c082013567ffffffffffffffff81111561288c5761288b6126e4565b5b612898848285016127a8565b60c08301525060e082013567ffffffffffffffff8111156128bc576128bb6126e4565b5b6128c8848285016127a8565b60e08301525092915050565b5f5f604083850312156128ea576128e961218a565b5b5f83013567ffffffffffffffff8111156129075761290661218e565b5b612913858286016127d5565b9250506020612924858286016121b1565b9150509250929050565b5f602082840312156129435761294261218a565b5b5f82013567ffffffffffffffff8111156129605761295f61218e565b5b61296c848285016127d5565b91505092915050565b5f5f5f5f6080858703121561298d5761298c61218a565b5b5f61299a8782880161220b565b94505060206129ab878288016121b1565b93505060406129bc8782880161220b565b92505060606129cd8782880161220b565b91505092959194509250565b5f81905092915050565b5f6129ed826120be565b6129f781856129d9565b9350612a078185602086016120d8565b80840191505092915050565b7f20760000000000000000000000000000000000000000000000000000000000005f82015250565b5f612a476002836129d9565b9150612a5282612a13565b600282019050919050565b7f2e000000000000000000000000000000000000000000000000000000000000005f82015250565b5f612a916001836129d9565b9150612a9c82612a5d565b600182019050919050565b5f612ab282876129e3565b9150612abd82612a3b565b9150612ac982866129e3565b9150612ad482612a85565b9150612ae082856129e3565b9150612aeb82612a85565b9150612af782846129e3565b915081905095945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6020820190508181035f830152612b4a81846125c4565b905092915050565b5f819050919050565b612b6c612b6782612192565b612b52565b82525050565b5f8160601b9050919050565b5f612b8882612b72565b9050919050565b5f612b9982612b7e565b9050919050565b612bb1612bac826121e4565b612b8f565b82525050565b5f612bc28285612b5b565b602082019150612bd28284612ba0565b6014820191508190509392505050565b5f604082019050612bf55f8301856124cd565b612c02602083018461255a565b9392505050565b612c128161214e565b8114612c1c575f5ffd5b50565b5f81519050612c2d81612c09565b92915050565b5f60208284031215612c4857612c4761218a565b5b5f612c5584828501612c1f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612cc282612192565b9150612ccd83612192565b9250828203905081811115612ce557612ce4612c8b565b5b92915050565b5f602082019050612cfe5f83018461255a565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f606082019050612d445f8301866124a5565b612d5160208301856124a5565b612d5e60408301846124a5565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612daa57607f821691505b602082108103612dbd57612dbc612d66565b5b50919050565b612dcc816126e8565b82525050565b5f60e082019050612de55f83018a6124a5565b612df260208301896124cd565b612dff6040830188612dc3565b612e0c60608301876124cd565b612e19608083018661255a565b612e2660a08301856124cd565b612e3360c08301846124a5565b98975050505050505050565b5f60c082019050612e525f8301896124a5565b612e5f60208301886124cd565b612e6c6040830187612dc3565b612e7960608301866124cd565b612e86608083018561255a565b612e9360a08301846124cd565b979650505050505050565b5f81519050919050565b5f82825260208201905092915050565b5f612ec282612e9e565b612ecc8185612ea8565b9350612edc8185602086016120d8565b612ee5816120e6565b840191505092915050565b5f604082019050612f035f8301856124a5565b8181036020830152612f158184612eb8565b90509392505050565b5f81905092915050565b5f612f3282612e9e565b612f3c8185612f1e565b9350612f4c8185602086016120d8565b80840191505092915050565b5f612f638284612f28565b915081905092915050565b5f81519050612f7c81612450565b92915050565b5f60208284031215612f9757612f9661218a565b5b5f612fa484828501612f6e565b91505092915050565b5f60a082019050612fc05f8301886124a5565b612fcd60208301876124a5565b612fda60408301866124a5565b612fe7606083018561255a565b612ff460808301846124cd565b9695505050505050565b5f60ff82169050919050565b61301381612ffe565b82525050565b5f60808201905061302c5f8301876124a5565b613039602083018661300a565b61304660408301856124a5565b61305360608301846124a5565b9594505050505056fea2646970667358221220c5d6e82239a714c525252082469fbf71070b387cd176f4ba7dce187b64d2ae3964736f6c63430008210033',\n} satisfies MockArtifact;\n","// This file is auto-generated by build-artifacts.ts\nimport { type MockArtifact } from './types';\n\nexport const MockZkVerifierArtifact = {\n contractName: 'MockZkVerifier',\n isFixed: true,\n fixedAddress: '0x0000000000000000000000000000000000005001',\n abi: [\n {\n type: 'function',\n name: 'exists',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'insertCtHash',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'value',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'insertPackedCtHashes',\n inputs: [\n {\n name: 'ctHashes',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n {\n name: 'values',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'zkVerify',\n inputs: [\n {\n name: 'value',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'utype',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'user',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'securityZone',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'tuple',\n internalType: 'struct EncryptedInput',\n components: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'securityZone',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'utype',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n ],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'zkVerifyCalcCtHash',\n inputs: [\n {\n name: 'value',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'utype',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'user',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'securityZone',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'zkVerifyCalcCtHashesPacked',\n inputs: [\n {\n name: 'values',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n {\n name: 'utypes',\n type: 'uint8[]',\n internalType: 'uint8[]',\n },\n {\n name: 'user',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'securityZone',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'chainId',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: 'ctHashes',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'zkVerifyPacked',\n inputs: [\n {\n name: 'values',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n {\n name: 'utypes',\n type: 'uint8[]',\n internalType: 'uint8[]',\n },\n {\n name: 'user',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'securityZone',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'chainId',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: 'inputs',\n type: 'tuple[]',\n internalType: 'struct EncryptedInput[]',\n components: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'securityZone',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'utype',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n ],\n stateMutability: 'nonpayable',\n },\n {\n type: 'error',\n name: 'InvalidInputs',\n inputs: [],\n },\n ],\n deployedBytecode:\n '0x608060405234801561000f575f5ffd5b506004361061007b575f3560e01c8063772de59611610059578063772de596146100e9578063a2616ba914610119578063a9f046cd14610149578063d2a0693e146101655761007b565b8063267c4ae41461007f5780635946761f1461009d57806366dfcfc6146100cd575b5f5ffd5b610087610195565b6040516100949190610750565b60405180910390f35b6100b760048036038101906100b29190610a4d565b61019d565b6040516100c49190610c95565b60405180910390f35b6100e760048036038101906100e29190610cb5565b6102b5565b005b61010360048036038101906100fe9190610a4d565b61034d565b6040516101109190610d9b565b60405180910390f35b610133600480360381019061012e9190610dbb565b61045b565b6040516101409190610e92565b60405180910390f35b610163600480360381019061015e9190610eb2565b6104bd565b005b61017f600480360381019061017a9190610dbb565b61051b565b60405161018c9190610f37565b60405180910390f35b5f6001905090565b606085518551146101da576040517ff34cfab600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845167ffffffffffffffff8111156101f5576101f461078e565b5b60405190808252806020026020018201604052801561022e57816020015b61021b61070b565b8152602001906001900390816102135790505b5090505f5f90505b85518110156102ab5761028087828151811061025557610254610f50565b5b60200260200101518783815181106102705761026f610f50565b5b602002602001015187878761045b565b82828151811061029357610292610f50565b5b60200260200101819052508080600101915050610236565b5095945050505050565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff166315a486fe83836040518363ffffffff1660e01b8152600401610304929190610f7d565b5f604051808303815f87803b15801561031b575f5ffd5b505af115801561032d573d5f5f3e3d5ffd5b5050505060015f5f8282546103429190610fd1565b925050819055505050565b6060855185511461038a576040517ff34cfab600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845167ffffffffffffffff8111156103a5576103a461078e565b5b6040519080825280602002602001820160405280156103d35781602001602082028036833780820191505090505b5090505f5f90505b8551811015610451576104258782815181106103fa576103f9610f50565b5b602002602001015187838151811061041557610414610f50565b5b602002602001015187878761051b565b82828151811061043857610437610f50565b5b60200260200101818152505080806001019150506103db565b5095945050505050565b61046361070b565b5f6104708587868a610533565b905061047c81886102b5565b60405180608001604052808281526020018560ff1681526020018760ff16815260200160405180602001604052805f81525081525091505095945050505050565b5f5f90505b8251811015610516576105098382815181106104e1576104e0610f50565b5b60200260200101518383815181106104fc576104fb610f50565b5b60200260200101516102b5565b80806001019150506104c2565b505050565b5f61052884868589610533565b905095945050505050565b5f5f61053e83610611565b60405160200161054e919061103e565b60405160208183030381529060405290508061057f8773ffffffffffffffffffffffffffffffffffffffff16610611565b604051602001610590929190611054565b6040516020818303038152906040529050805f546040516020016105b49190611097565b604051602081830303815290604052805190602001206040516020016105db9291906110da565b60405160208183030381529060405290505f81805190602001209050610605815f1c86885f610673565b92505050949350505050565b60605f602067ffffffffffffffff81111561062f5761062e61078e565b5b6040519080825280601f01601f1916602001820160405280156106615781602001600182028036833780820191505090505b50905082602082015280915050919050565b5f61ffff80167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6106a49190611101565b851690505f8460ff1660086106b985876106cc565b901b179050808217915050949350505050565b5f600160ff8016901c60ff168260ff1616836106e8575f610702565b600160ff8016901c60ff1660ff80166107019190611101565b5b17905092915050565b60405180608001604052805f81526020015f60ff1681526020015f60ff168152602001606081525090565b5f8115159050919050565b61074a81610736565b82525050565b5f6020820190506107635f830184610741565b92915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6107c48261077e565b810181811067ffffffffffffffff821117156107e3576107e261078e565b5b80604052505050565b5f6107f5610769565b905061080182826107bb565b919050565b5f67ffffffffffffffff8211156108205761081f61078e565b5b602082029050602081019050919050565b5f5ffd5b5f819050919050565b61084781610835565b8114610851575f5ffd5b50565b5f813590506108628161083e565b92915050565b5f61087a61087584610806565b6107ec565b9050808382526020820190506020840283018581111561089d5761089c610831565b5b835b818110156108c657806108b28882610854565b84526020840193505060208101905061089f565b5050509392505050565b5f82601f8301126108e4576108e361077a565b5b81356108f4848260208601610868565b91505092915050565b5f67ffffffffffffffff8211156109175761091661078e565b5b602082029050602081019050919050565b5f60ff82169050919050565b61093d81610928565b8114610947575f5ffd5b50565b5f8135905061095881610934565b92915050565b5f61097061096b846108fd565b6107ec565b9050808382526020820190506020840283018581111561099357610992610831565b5b835b818110156109bc57806109a8888261094a565b845260208401935050602081019050610995565b5050509392505050565b5f82601f8301126109da576109d961077a565b5b81356109ea84826020860161095e565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610a1c826109f3565b9050919050565b610a2c81610a12565b8114610a36575f5ffd5b50565b5f81359050610a4781610a23565b92915050565b5f5f5f5f5f60a08688031215610a6657610a65610772565b5b5f86013567ffffffffffffffff811115610a8357610a82610776565b5b610a8f888289016108d0565b955050602086013567ffffffffffffffff811115610ab057610aaf610776565b5b610abc888289016109c6565b9450506040610acd88828901610a39565b9350506060610ade8882890161094a565b9250506080610aef88828901610854565b9150509295509295909350565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b610b2e81610835565b82525050565b610b3d81610928565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f610b7582610b43565b610b7f8185610b4d565b9350610b8f818560208601610b5d565b610b988161077e565b840191505092915050565b5f608083015f830151610bb85f860182610b25565b506020830151610bcb6020860182610b34565b506040830151610bde6040860182610b34565b5060608301518482036060860152610bf68282610b6b565b9150508091505092915050565b5f610c0e8383610ba3565b905092915050565b5f602082019050919050565b5f610c2c82610afc565b610c368185610b06565b935083602082028501610c4885610b16565b805f5b85811015610c835784840389528151610c648582610c03565b9450610c6f83610c16565b925060208a01995050600181019050610c4b565b50829750879550505050505092915050565b5f6020820190508181035f830152610cad8184610c22565b905092915050565b5f5f60408385031215610ccb57610cca610772565b5b5f610cd885828601610854565b9250506020610ce985828601610854565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f610d278383610b25565b60208301905092915050565b5f602082019050919050565b5f610d4982610cf3565b610d538185610cfd565b9350610d5e83610d0d565b805f5b83811015610d8e578151610d758882610d1c565b9750610d8083610d33565b925050600181019050610d61565b5085935050505092915050565b5f6020820190508181035f830152610db38184610d3f565b905092915050565b5f5f5f5f5f60a08688031215610dd457610dd3610772565b5b5f610de188828901610854565b9550506020610df28882890161094a565b9450506040610e0388828901610a39565b9350506060610e148882890161094a565b9250506080610e2588828901610854565b9150509295509295909350565b5f608083015f830151610e475f860182610b25565b506020830151610e5a6020860182610b34565b506040830151610e6d6040860182610b34565b5060608301518482036060860152610e858282610b6b565b9150508091505092915050565b5f6020820190508181035f830152610eaa8184610e32565b905092915050565b5f5f60408385031215610ec857610ec7610772565b5b5f83013567ffffffffffffffff811115610ee557610ee4610776565b5b610ef1858286016108d0565b925050602083013567ffffffffffffffff811115610f1257610f11610776565b5b610f1e858286016108d0565b9150509250929050565b610f3181610835565b82525050565b5f602082019050610f4a5f830184610f28565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f604082019050610f905f830185610f28565b610f9d6020830184610f28565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610fdb82610835565b9150610fe683610835565b9250828201905080821115610ffe57610ffd610fa4565b5b92915050565b5f81905092915050565b5f61101882610b43565b6110228185611004565b9350611032818560208601610b5d565b80840191505092915050565b5f611049828461100e565b915081905092915050565b5f61105f828561100e565b915061106b828461100e565b91508190509392505050565b5f819050919050565b61109161108c82610835565b611077565b82525050565b5f6110a28284611080565b60208201915081905092915050565b5f819050919050565b5f819050919050565b6110d46110cf826110b1565b6110ba565b82525050565b5f6110e5828561100e565b91506110f182846110c3565b6020820191508190509392505050565b5f61110b82610835565b915061111683610835565b925082820390508181111561112e5761112d610fa4565b5b9291505056fea264697066735822122081767d01c3147c84d2c5839102f5bfa57796abdfbdf1905ec61aacea5620dc3764736f6c63430008210033',\n} satisfies MockArtifact;\n","// This file is auto-generated by build-artifacts.ts\nimport { type MockArtifact } from './types';\n\nexport const MockThresholdNetworkArtifact = {\n contractName: 'MockThresholdNetwork',\n isFixed: true,\n fixedAddress: '0x0000000000000000000000000000000000005002',\n abi: [\n {\n type: 'function',\n name: 'decodeLowLevelReversion',\n inputs: [\n {\n name: 'data',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n outputs: [\n {\n name: 'error',\n type: 'string',\n internalType: 'string',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'decryptForTxWithPermit',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'permission',\n type: 'tuple',\n internalType: 'struct Permission',\n components: [\n {\n name: 'issuer',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'expiration',\n type: 'uint64',\n internalType: 'uint64',\n },\n {\n name: 'recipient',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'validatorId',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'validatorContract',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'sealingKey',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n {\n name: 'issuerSignature',\n type: 'bytes',\n internalType: 'bytes',\n },\n {\n name: 'recipientSignature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n ],\n outputs: [\n {\n name: 'allowed',\n type: 'bool',\n internalType: 'bool',\n },\n {\n name: 'error',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'decryptedValue',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'decryptForTxWithoutPermit',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: 'allowed',\n type: 'bool',\n internalType: 'bool',\n },\n {\n name: 'error',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'decryptedValue',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'exists',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'initialize',\n inputs: [\n {\n name: '_taskManager',\n type: 'address',\n internalType: 'address',\n },\n {\n name: '_acl',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'mockAcl',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'contract MockACL',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'mockQueryDecrypt',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'issuer',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [\n {\n name: 'allowed',\n type: 'bool',\n internalType: 'bool',\n },\n {\n name: 'error',\n type: 'string',\n internalType: 'string',\n },\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'mockTaskManager',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'contract MockTaskManager',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'queryDecrypt',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'permission',\n type: 'tuple',\n internalType: 'struct Permission',\n components: [\n {\n name: 'issuer',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'expiration',\n type: 'uint64',\n internalType: 'uint64',\n },\n {\n name: 'recipient',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'validatorId',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'validatorContract',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'sealingKey',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n {\n name: 'issuerSignature',\n type: 'bytes',\n internalType: 'bytes',\n },\n {\n name: 'recipientSignature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n ],\n outputs: [\n {\n name: 'allowed',\n type: 'bool',\n internalType: 'bool',\n },\n {\n name: 'error',\n type: 'string',\n internalType: 'string',\n },\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'querySealOutput',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'permission',\n type: 'tuple',\n internalType: 'struct Permission',\n components: [\n {\n name: 'issuer',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'expiration',\n type: 'uint64',\n internalType: 'uint64',\n },\n {\n name: 'recipient',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'validatorId',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'validatorContract',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'sealingKey',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n {\n name: 'issuerSignature',\n type: 'bytes',\n internalType: 'bytes',\n },\n {\n name: 'recipientSignature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n ],\n outputs: [\n {\n name: 'allowed',\n type: 'bool',\n internalType: 'bool',\n },\n {\n name: 'error',\n type: 'string',\n internalType: 'string',\n },\n {\n name: '',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'seal',\n inputs: [\n {\n name: 'input',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'key',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'unseal',\n inputs: [\n {\n name: 'hashed',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n {\n name: 'key',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'error',\n name: 'NotAllowed',\n inputs: [],\n },\n {\n type: 'error',\n name: 'SealingKeyInvalid',\n inputs: [],\n },\n {\n type: 'error',\n name: 'SealingKeyMissing',\n inputs: [],\n },\n ],\n deployedBytecode:\n '0x608060405234801561000f575f5ffd5b50600436106100b2575f3560e01c80638a5c8c7f1161006f5780638a5c8c7f1461018e5780638ca07b48146101be578063a02eb534146101f0578063a0639f5414610222578063b4bc28f814610254578063ff6957d314610286576100b2565b806309ba3156146100b65780631a1992a9146100e8578063267c4ae414610118578063485cc955146101365780634cdc014d146101525780637e0f4b5b14610170575b5f5ffd5b6100d060048036038101906100cb9190611723565b6102b6565b6040516100df93929190611818565b60405180910390f35b61010260048036038101906100fd9190611854565b610599565b60405161010f9190611892565b60405180910390f35b6101206105a7565b60405161012d91906118ab565b60405180910390f35b610150600480360381019061014b91906118c4565b6105af565b005b61015a610632565b604051610167919061195d565b60405180910390f35b610178610657565b6040516101859190611996565b60405180910390f35b6101a860048036038101906101a391906119af565b61067b565b6040516101b591906119fc565b60405180910390f35b6101d860048036038101906101d39190611a15565b610689565b6040516101e793929190611a6f565b60405180910390f35b61020a60048036038101906102059190611aab565b6107eb565b60405161021993929190611a6f565b60405180910390f35b61023c60048036038101906102379190611723565b610a7a565b60405161024b93929190611a6f565b60405180910390f35b61026e60048036038101906102699190611afb565b610d04565b60405161027d93929190611a6f565b60405180910390f35b6102a0600480360381019061029b9190611b26565b610deb565b6040516102ad9190611b6d565b60405180910390f35b5f60605f5f5f1b8460a00151036102f9576040517fb78926d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ae79f04a86896040518363ffffffff1660e01b8152600401610356929190611ccf565b602060405180830381865afa92505050801561039057506040513d601f19601f8201168201806040525081019061038d9190611d27565b60015b61047c5761039c611d5e565b806308c379a0036103cd57506103b0611d7d565b806103bb5750610432565b5f815f5f1b9450945094505050610590565b634e487b7103610432576103df611e0c565b906103ea5750610432565b5f5f5f1b6040518060400160405280600581526020017f50616e6963000000000000000000000000000000000000000000000000000000815250909450945094505050610590565b3d805f811461045c576040519150601f19603f3d011682016040523d82523d5f602084013e610461565b606091505b505f61046c82610deb565b5f5f1b9450945094505050610590565b80915050806104cc575f5f5f1b6040518060400160405280600a81526020017f4e6f74416c6c6f776564000000000000000000000000000000000000000000008152509093509350935050610590565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631c76642b896040518263ffffffff1660e01b815260040161052691906119fc565b602060405180830381865afa158015610541573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105659190611e3e565b90506001610577828860a00151610599565b60405180602001604052805f8152509094509450945050505b93509350939050565b5f81835f1b18905092915050565b5f6001905090565b815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8183185f1c905092915050565b5f60605f5f73ffffffffffffffffffffffffffffffffffffffff16845f015173ffffffffffffffffffffffffffffffffffffffff1603610707575f5f6040518060400160405280601181526020017f5065726d697373696f6e4d697373696e67000000000000000000000000000000815250909250925092506107e4565b5f5f6107138787611027565b915091508161072c575f815f94509450945050506107e4565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631c76642b896040518263ffffffff1660e01b815260040161078691906119fc565b602060405180830381865afa1580156107a1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107c59190611e3e565b905060018160405180602001604052805f815250909550955095505050505b9250925092565b5f60605f5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635faa299a88876040518363ffffffff1660e01b815260040161084c929190611e78565b602060405180830381865afa92505050801561088657506040513d601f19601f820116820180604052508101906108839190611d27565b60015b61096c57610892611d5e565b806308c379a0036108c157506108a6611d7d565b806108b15750610924565b5f815f9450945094505050610a71565b634e487b7103610924576108d3611e0c565b906108de5750610924565b5f5f6040518060400160405280600581526020017f50616e6963000000000000000000000000000000000000000000000000000000815250909450945094505050610a71565b3d805f811461094e576040519150601f19603f3d011682016040523d82523d5f602084013e610953565b606091505b505f61095e82610deb565b5f9450945094505050610a71565b80915050806109ba575f5f6040518060400160405280600a81526020017f4e6f74416c6c6f776564000000000000000000000000000000000000000000008152509093509350935050610a71565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631c76642b896040518263ffffffff1660e01b8152600401610a1491906119fc565b602060405180830381865afa158015610a2f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a539190611e3e565b905060018160405180602001604052805f8152509094509450945050505b93509350939050565b5f60605f5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ae79f04a86896040518363ffffffff1660e01b8152600401610adb929190611ccf565b602060405180830381865afa925050508015610b1557506040513d601f19601f82011682018060405250810190610b129190611d27565b60015b610bfb57610b21611d5e565b806308c379a003610b505750610b35611d7d565b80610b405750610bb3565b5f815f9450945094505050610cfb565b634e487b7103610bb357610b62611e0c565b90610b6d5750610bb3565b5f5f6040518060400160405280600581526020017f50616e6963000000000000000000000000000000000000000000000000000000815250909450945094505050610cfb565b3d805f8114610bdd576040519150601f19603f3d011682016040523d82523d5f602084013e610be2565b606091505b505f610bed82610deb565b5f9450945094505050610cfb565b8091505080610c49575f5f6040518060400160405280600a81526020017f4e6f74416c6c6f776564000000000000000000000000000000000000000000008152509093509350935050610cfb565b60015f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631c76642b896040518263ffffffff1660e01b8152600401610ca491906119fc565b602060405180830381865afa158015610cbf573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ce39190611e3e565b60405180602001604052805f81525090935093509350505b93509350939050565b5f60605f5f5f610d13866111fe565b9150915081610d2c575f815f9450945094505050610de4565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631c76642b886040518263ffffffff1660e01b8152600401610d8691906119fc565b602060405180830381865afa158015610da1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc59190611e3e565b905060018160405180602001604052805f815250909550955095505050505b9193909250565b60605f82610df890611ef9565b905063ed0764a160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191603610e84576040518060400160405280601981526020017f5065726d697373696f6e496e76616c69645f4578706972656400000000000000815250915050611022565b634c40eccb60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191603610ef157604051806060016040528060218152602001611f8460219139915050611022565b638e143bf760e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191603610f5e57604051806060016040528060248152602001611f6060249139915050611022565b63cbd3a96660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191603610fe8576040518060400160405280601a81526020017f5065726d697373696f6e496e76616c69645f44697361626c6564000000000000815250915050611022565b6040518060400160405280600f81526020017f4c6f77204c6576656c204572726f7200000000000000000000000000000000008152509150505b919050565b5f60605f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ae79f04a84866040518363ffffffff1660e01b8152600401611085929190611ccf565b602060405180830381865afa9250505080156110bf57506040513d601f19601f820116820180604052508101906110bc9190611d27565b60015b611198576110cb611d5e565b806308c379a0036110f657506110df611d7d565b806110ea5750611154565b5f8192509250506111f7565b634e487b710361115457611108611e0c565b906111135750611154565b5f6040518060400160405280600581526020017f50616e696300000000000000000000000000000000000000000000000000000081525092509250506111f7565b3d805f811461117e576040519150601f19603f3d011682016040523d82523d5f602084013e611183565b606091505b505f61118e82610deb565b92509250506111f7565b80925050816111e1575f6040518060400160405280600a81526020017f4e6f74416c6c6f77656400000000000000000000000000000000000000000000815250915091506111f7565b600160405180602001604052805f815250915091505b9250929050565b5f606060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166394d9184c846040518263ffffffff1660e01b815260040161125b91906119fc565b602060405180830381865afa92505050801561129557506040513d601f19601f820116820180604052508101906112929190611d27565b60015b61136e576112a1611d5e565b806308c379a0036112cc57506112b5611d7d565b806112c0575061132a565b5f8192509250506113cd565b634e487b710361132a576112de611e0c565b906112e9575061132a565b5f6040518060400160405280600581526020017f50616e696300000000000000000000000000000000000000000000000000000081525092509250506113cd565b3d805f8114611354576040519150601f19603f3d011682016040523d82523d5f602084013e611359565b606091505b505f61136482610deb565b92509250506113cd565b80925050816113b7575f6040518060400160405280600a81526020017f4e6f74416c6c6f77656400000000000000000000000000000000000000000000815250915091506113cd565b600160405180602001604052805f815250915091505b915091565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b6113f5816113e3565b81146113ff575f5ffd5b50565b5f81359050611410816113ec565b92915050565b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6114608261141a565b810181811067ffffffffffffffff8211171561147f5761147e61142a565b5b80604052505050565b5f6114916113d2565b905061149d8282611457565b919050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6114cf826114a6565b9050919050565b6114df816114c5565b81146114e9575f5ffd5b50565b5f813590506114fa816114d6565b92915050565b5f67ffffffffffffffff82169050919050565b61151c81611500565b8114611526575f5ffd5b50565b5f8135905061153781611513565b92915050565b5f819050919050565b61154f8161153d565b8114611559575f5ffd5b50565b5f8135905061156a81611546565b92915050565b5f5ffd5b5f5ffd5b5f67ffffffffffffffff8211156115925761159161142a565b5b61159b8261141a565b9050602081019050919050565b828183375f83830152505050565b5f6115c86115c384611578565b611488565b9050828152602081018484840111156115e4576115e3611574565b5b6115ef8482856115a8565b509392505050565b5f82601f83011261160b5761160a611570565b5b813561161b8482602086016115b6565b91505092915050565b5f610100828403121561163a57611639611416565b5b611645610100611488565b90505f611654848285016114ec565b5f83015250602061166784828501611529565b602083015250604061167b848285016114ec565b604083015250606061168f84828501611402565b60608301525060806116a3848285016114ec565b60808301525060a06116b78482850161155c565b60a08301525060c082013567ffffffffffffffff8111156116db576116da6114a2565b5b6116e7848285016115f7565b60c08301525060e082013567ffffffffffffffff81111561170b5761170a6114a2565b5b611717848285016115f7565b60e08301525092915050565b5f5f5f6060848603121561173a576117396113db565b5b5f61174786828701611402565b935050602061175886828701611402565b925050604084013567ffffffffffffffff811115611779576117786113df565b5b61178586828701611624565b9150509250925092565b5f8115159050919050565b6117a38161178f565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6117db826117a9565b6117e581856117b3565b93506117f58185602086016117c3565b6117fe8161141a565b840191505092915050565b6118128161153d565b82525050565b5f60608201905061182b5f83018661179a565b818103602083015261183d81856117d1565b905061184c6040830184611809565b949350505050565b5f5f6040838503121561186a576118696113db565b5b5f61187785828601611402565b92505060206118888582860161155c565b9150509250929050565b5f6020820190506118a55f830184611809565b92915050565b5f6020820190506118be5f83018461179a565b92915050565b5f5f604083850312156118da576118d96113db565b5b5f6118e7858286016114ec565b92505060206118f8858286016114ec565b9150509250929050565b5f819050919050565b5f61192561192061191b846114a6565b611902565b6114a6565b9050919050565b5f6119368261190b565b9050919050565b5f6119478261192c565b9050919050565b6119578161193d565b82525050565b5f6020820190506119705f83018461194e565b92915050565b5f6119808261192c565b9050919050565b61199081611976565b82525050565b5f6020820190506119a95f830184611987565b92915050565b5f5f604083850312156119c5576119c46113db565b5b5f6119d28582860161155c565b92505060206119e38582860161155c565b9150509250929050565b6119f6816113e3565b82525050565b5f602082019050611a0f5f8301846119ed565b92915050565b5f5f60408385031215611a2b57611a2a6113db565b5b5f611a3885828601611402565b925050602083013567ffffffffffffffff811115611a5957611a586113df565b5b611a6585828601611624565b9150509250929050565b5f606082019050611a825f83018661179a565b8181036020830152611a9481856117d1565b9050611aa360408301846119ed565b949350505050565b5f5f5f60608486031215611ac257611ac16113db565b5b5f611acf86828701611402565b9350506020611ae086828701611402565b9250506040611af1868287016114ec565b9150509250925092565b5f60208284031215611b1057611b0f6113db565b5b5f611b1d84828501611402565b91505092915050565b5f60208284031215611b3b57611b3a6113db565b5b5f82013567ffffffffffffffff811115611b5857611b576113df565b5b611b64848285016115f7565b91505092915050565b5f6020820190508181035f830152611b8581846117d1565b905092915050565b611b96816114c5565b82525050565b611ba581611500565b82525050565b611bb4816113e3565b82525050565b611bc38161153d565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f611bed82611bc9565b611bf78185611bd3565b9350611c078185602086016117c3565b611c108161141a565b840191505092915050565b5f61010083015f830151611c315f860182611b8d565b506020830151611c446020860182611b9c565b506040830151611c576040860182611b8d565b506060830151611c6a6060860182611bab565b506080830151611c7d6080860182611b8d565b5060a0830151611c9060a0860182611bba565b5060c083015184820360c0860152611ca88282611be3565b91505060e083015184820360e0860152611cc28282611be3565b9150508091505092915050565b5f6040820190508181035f830152611ce78185611c1b565b9050611cf660208301846119ed565b9392505050565b611d068161178f565b8114611d10575f5ffd5b50565b5f81519050611d2181611cfd565b92915050565b5f60208284031215611d3c57611d3b6113db565b5b5f611d4984828501611d13565b91505092915050565b5f8160e01c9050919050565b5f60033d1115611d7a5760045f5f3e611d775f51611d52565b90505b90565b5f60443d10611e0957611d8e6113d2565b60043d036004823e80513d602482011167ffffffffffffffff82111715611db6575050611e09565b808201805167ffffffffffffffff811115611dd45750505050611e09565b80602083010160043d038501811115611df1575050505050611e09565b611e0082602001850186611457565b82955050505050505b90565b5f5f60233d1115611e2657602060045f3e600191505f5190505b9091565b5f81519050611e38816113ec565b92915050565b5f60208284031215611e5357611e526113db565b5b5f611e6084828501611e2a565b91505092915050565b611e72816114c5565b82525050565b5f604082019050611e8b5f8301856119ed565b611e986020830184611e69565b9392505050565b5f819050602082019050919050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b5f611ee48251611eae565b80915050919050565b5f82821b905092915050565b5f611f0382611bc9565b82611f0d84611e9f565b9050611f1881611ed9565b92506004821015611f5857611f537fffffffff0000000000000000000000000000000000000000000000000000000083600403600802611eed565b831692505b505091905056fe5065726d697373696f6e496e76616c69645f526563697069656e745369676e61747572655065726d697373696f6e496e76616c69645f4973737565725369676e6174757265a26469706673582212204238d43d67b103f6a9ea7dee7d0be6fb9ecb3d1e437a5ae9377ff6c43314fd8e64736f6c63430008210033',\n} satisfies MockArtifact;\n","// This file is auto-generated by build-artifacts.ts\nimport { type MockArtifact } from './types';\n\nexport const TestBedArtifact = {\n contractName: 'TestBed',\n isFixed: true,\n fixedAddress: '0x0000000000000000000000000000000000005003',\n abi: [\n {\n type: 'function',\n name: 'add',\n inputs: [\n {\n name: 'inNumber',\n type: 'tuple',\n internalType: 'struct InEuint32',\n components: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'securityZone',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'utype',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'decrypt',\n inputs: [],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'eNumber',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'bytes32',\n internalType: 'euint32',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'exists',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'getDecryptResult',\n inputs: [\n {\n name: 'input1',\n type: 'bytes32',\n internalType: 'euint32',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint32',\n internalType: 'uint32',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getDecryptResultSafe',\n inputs: [\n {\n name: 'input1',\n type: 'bytes32',\n internalType: 'euint32',\n },\n ],\n outputs: [\n {\n name: 'value',\n type: 'uint32',\n internalType: 'uint32',\n },\n {\n name: 'decrypted',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'increment',\n inputs: [],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'mul',\n inputs: [\n {\n name: 'inNumber',\n type: 'tuple',\n internalType: 'struct InEuint32',\n components: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'securityZone',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'utype',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'numberHash',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'publishDecryptResult',\n inputs: [\n {\n name: 'input',\n type: 'bytes32',\n internalType: 'euint32',\n },\n {\n name: 'result',\n type: 'uint32',\n internalType: 'uint32',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'setNumber',\n inputs: [\n {\n name: 'inNumber',\n type: 'tuple',\n internalType: 'struct InEuint32',\n components: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'securityZone',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'utype',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'setNumberTrivial',\n inputs: [\n {\n name: 'inNumber',\n type: 'uint32',\n internalType: 'uint32',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'sub',\n inputs: [\n {\n name: 'inNumber',\n type: 'tuple',\n internalType: 'struct InEuint32',\n components: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'securityZone',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'utype',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'error',\n name: 'InvalidEncryptedInput',\n inputs: [\n {\n name: 'got',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'expected',\n type: 'uint8',\n internalType: 'uint8',\n },\n ],\n },\n {\n type: 'error',\n name: 'SecurityZoneOutOfBounds',\n inputs: [\n {\n name: 'value',\n type: 'int32',\n internalType: 'int32',\n },\n ],\n },\n ],\n deployedBytecode:\n '0x608060405234801561000f575f5ffd5b50600436106100cd575f3560e01c806367c651741161008a5780638562354e116100645780638562354e146101ea57806388762d8114610206578063b5872e8c14610222578063d09de08a1461023e576100cd565b806367c651741461019457806384f091db146101b257806384ff25c6146101ce576100cd565b80631292f65a146100d157806319d8a05b14610101578063260ec8891461011f578063267c4ae4146101505780633983d4301461016e5780636470960914610178575b5f5ffd5b6100eb60048036038101906100e691906110b8565b610248565b6040516100f89190611101565b60405180910390f35b610109610259565b604051610116919061113a565b60405180910390f35b610139600480360381019061013491906110b8565b61025e565b60405161014792919061116d565b60405180910390f35b610158610272565b6040516101659190611194565b60405180910390f35b61017661027a565b005b610192600480360381019061018d91906113eb565b610286565b005b61019c6102db565b6040516101a99190611441565b60405180910390f35b6101cc60048036038101906101c791906113eb565b6102e1565b005b6101e860048036038101906101e391906113eb565b610310565b005b61020460048036038101906101ff9190611484565b61033f565b005b610220600480360381019061021b91906114af565b610372565b005b61023c600480360381019061023791906113eb565b610382565b005b6102466103af565b005b5f610252826103de565b9050919050565b5f5481565b5f5f610269836103ef565b91509150915091565b5f6001905090565b6102845f5461040d565b565b5f61029082610433565b90505f6102b06102a1835f5461045b565b836102ab5f6104a4565b6104b6565b90506102bd5f5482610518565b5f819055506102cc5f54610561565b6102d65f546105e2565b505050565b60015481565b6102f45f546102ef83610433565b610663565b5f819055506103035f54610561565b61030d5f546105e2565b50565b6103235f5461031e83610433565b6106ac565b5f819055506103325f54610561565b61033c5f546105e2565b50565b61034e8163ffffffff166104a4565b5f819055505f546001819055506103655f54610561565b61036f5f546105e2565b50565b61037d8383836106f5565b505050565b61038b81610433565b5f819055505f546001819055506103a25f54610561565b6103ac5f546105e2565b50565b6103c35f546103be60016104a4565b6106ac565b5f819055506103d25f54610561565b6103dc5f546105e2565b565b5f6103e88261070b565b9050919050565b5f5f5f5f6103fc856107a1565b915091508181935093505050915091565b61041681610839565b610426576104235f6104a4565b90505b61042f8161084a565b5050565b5f610443826040015160046108d1565b61045461044f83610921565b610963565b9050919050565b5f61046583610839565b610475576104725f6104a4565b92505b61047e82610839565b61048e5761048b5f6104a4565b91505b61049c6004848460136109fc565b905092915050565b5f6104af825f610aed565b9050919050565b5f6104c084610b07565b6104d0576104cd5f610b18565b93505b6104d983610839565b6104e9576104e65f6104a4565b92505b6104f282610839565b610502576104ff5f6104a4565b91505b61050f6004858585610b2a565b90509392505050565b5f61052283610839565b6105325761052f5f6104a4565b92505b61053b82610839565b61054b576105485f6104a4565b91505b6105596004848460076109fc565b905092915050565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff166365d0509c825f1c306040518363ffffffff1660e01b81526004016105b2929190611569565b5f604051808303815f87803b1580156105c9575f5ffd5b505af11580156105db573d5f5f3e3d5ffd5b5050505050565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff166365d0509c825f1c336040518363ffffffff1660e01b8152600401610633929190611569565b5f604051808303815f87803b15801561064a575f5ffd5b505af115801561065c573d5f5f3e3d5ffd5b5050505050565b5f61066d83610839565b61067d5761067a5f6104a4565b92505b61068682610839565b610696576106935f6104a4565b91505b6106a460048484600f6109fc565b905092915050565b5f6106b683610839565b6106c6576106c35f6104a4565b92505b6106cf82610839565b6106df576106dc5f6104a4565b91505b6106ed6004848460086109fc565b905092915050565b610706838363ffffffff1683610c1d565b505050565b5f73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff1663f6bc7f3f835f1c6040518263ffffffff1660e01b815260040161075b9190611590565b602060405180830381865afa158015610776573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061079a91906115bd565b9050919050565b5f5f73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff1663458693c9845f1c6040518263ffffffff1660e01b81526004016107f29190611590565b6040805180830381865afa15801561080c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108309190611612565b91509150915091565b5f61084382610ca2565b9050919050565b5f73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff166308289827835f1c336040518363ffffffff1660e01b815260040161089c929190611569565b5f604051808303815f87803b1580156108b3575f5ffd5b505af11580156108c5573d5f5f3e3d5ffd5b50505050819050919050565b8060ff168260ff161461091d5781816040517f67cf307100000000000000000000000000000000000000000000000000000000815260040161091492919061165f565b60405180910390fd5b5050565b610929611049565b6040518060800160405280835f01518152602001836020015160ff168152602001600460ff16815260200183606001518152509050919050565b5f73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff166327f9c76283336040518363ffffffff1660e01b81526004016109b3929190611764565b6020604051808303815f875af11580156109cf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109f391906115bd565b5f1b9050919050565b5f73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff16631888debd8684610a398888610cb0565b5f67ffffffffffffffff811115610a5357610a526111c1565b5b604051908082528060200260200182016040528015610a815781602001602082028036833780820191505090505b506040518563ffffffff1660e01b8152600401610aa194939291906118ad565b6020604051808303815f875af1158015610abd573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae191906115bd565b5f1b9050949350505050565b5f5f610afb84600485610d4e565b90508091505092915050565b5f610b1182610ca2565b9050919050565b5f610b23825f610e4b565b9050919050565b5f73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff16631888debd866004610b69888888610e74565b5f67ffffffffffffffff811115610b8357610b826111c1565b5b604051908082528060200260200182016040528015610bb15781602001602082028036833780820191505090505b506040518563ffffffff1660e01b8152600401610bd194939291906118ad565b6020604051808303815f875af1158015610bed573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c1191906115bd565b5f1b9050949350505050565b73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff166318683701845f1c84846040518463ffffffff1660e01b8152600401610c7093929190611946565b5f604051808303815f87803b158015610c87575f5ffd5b505af1158015610c99573d5f5f3e3d5ffd5b50505050505050565b5f5f5f1b8214159050919050565b60605f600267ffffffffffffffff811115610cce57610ccd6111c1565b5b604051908082528060200260200182016040528015610cfc5781602001602082028036833780820191505090505b509050835f1c815f81518110610d1557610d14611982565b5b602002602001018181525050825f1c81600181518110610d3857610d37611982565b5b6020026020010181815250508091505092915050565b5f73ea30c4b8b44078bbf8a6ef5b9f1ec1626c7848d973ffffffffffffffffffffffffffffffffffffffff16631888debd84601a5f67ffffffffffffffff811115610d9c57610d9b6111c1565b5b604051908082528060200260200182016040528015610dca5781602001602082028036833780820191505090505b50610de1898960ff16610ddc8a610f36565b610f8d565b6040518563ffffffff1660e01b8152600401610e0094939291906118ad565b6020604051808303815f875af1158015610e1c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e4091906115bd565b5f1b90509392505050565b5f5f5f90508315610e5b57600190505b5f610e67825f86610d4e565b9050809250505092915050565b60605f600367ffffffffffffffff811115610e9257610e916111c1565b5b604051908082528060200260200182016040528015610ec05781602001602082028036833780820191505090505b509050845f1c815f81518110610ed957610ed8611982565b5b602002602001018181525050835f1c81600181518110610efc57610efb611982565b5b602002602001018181525050825f1c81600281518110610f1f57610f1e611982565b5b602002602001018181525050809150509392505050565b5f5f8260030b1215610f7f57816040517f8f568bf8000000000000000000000000000000000000000000000000000000008152600401610f7691906119ca565b60405180910390fd5b8163ffffffff169050919050565b60605f600367ffffffffffffffff811115610fab57610faa6111c1565b5b604051908082528060200260200182016040528015610fd95781602001602082028036833780820191505090505b50905084815f81518110610ff057610fef611982565b5b602002602001018181525050838160018151811061101157611010611982565b5b602002602001018181525050828160028151811061103257611031611982565b5b602002602001018181525050809150509392505050565b60405180608001604052805f81526020015f60ff1681526020015f60ff168152602001606081525090565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b61109781611085565b81146110a1575f5ffd5b50565b5f813590506110b28161108e565b92915050565b5f602082840312156110cd576110cc61107d565b5b5f6110da848285016110a4565b91505092915050565b5f63ffffffff82169050919050565b6110fb816110e3565b82525050565b5f6020820190506111145f8301846110f2565b92915050565b5f61112482611085565b9050919050565b6111348161111a565b82525050565b5f60208201905061114d5f83018461112b565b92915050565b5f8115159050919050565b61116781611153565b82525050565b5f6040820190506111805f8301856110f2565b61118d602083018461115e565b9392505050565b5f6020820190506111a75f83018461115e565b92915050565b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6111f7826111b1565b810181811067ffffffffffffffff82111715611216576112156111c1565b5b80604052505050565b5f611228611074565b905061123482826111ee565b919050565b5f5ffd5b5f819050919050565b61124f8161123d565b8114611259575f5ffd5b50565b5f8135905061126a81611246565b92915050565b5f60ff82169050919050565b61128581611270565b811461128f575f5ffd5b50565b5f813590506112a08161127c565b92915050565b5f5ffd5b5f5ffd5b5f67ffffffffffffffff8211156112c8576112c76111c1565b5b6112d1826111b1565b9050602081019050919050565b828183375f83830152505050565b5f6112fe6112f9846112ae565b61121f565b90508281526020810184848401111561131a576113196112aa565b5b6113258482856112de565b509392505050565b5f82601f830112611341576113406112a6565b5b81356113518482602086016112ec565b91505092915050565b5f6080828403121561136f5761136e6111ad565b5b611379608061121f565b90505f6113888482850161125c565b5f83015250602061139b84828501611292565b60208301525060406113af84828501611292565b604083015250606082013567ffffffffffffffff8111156113d3576113d2611239565b5b6113df8482850161132d565b60608301525092915050565b5f60208284031215611400576113ff61107d565b5b5f82013567ffffffffffffffff81111561141d5761141c611081565b5b6114298482850161135a565b91505092915050565b61143b81611085565b82525050565b5f6020820190506114545f830184611432565b92915050565b611463816110e3565b811461146d575f5ffd5b50565b5f8135905061147e8161145a565b92915050565b5f602082840312156114995761149861107d565b5b5f6114a684828501611470565b91505092915050565b5f5f5f606084860312156114c6576114c561107d565b5b5f6114d3868287016110a4565b93505060206114e486828701611470565b925050604084013567ffffffffffffffff81111561150557611504611081565b5b6115118682870161132d565b9150509250925092565b6115248161123d565b82525050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6115538261152a565b9050919050565b61156381611549565b82525050565b5f60408201905061157c5f83018561151b565b611589602083018461155a565b9392505050565b5f6020820190506115a35f83018461151b565b92915050565b5f815190506115b781611246565b92915050565b5f602082840312156115d2576115d161107d565b5b5f6115df848285016115a9565b91505092915050565b6115f181611153565b81146115fb575f5ffd5b50565b5f8151905061160c816115e8565b92915050565b5f5f604083850312156116285761162761107d565b5b5f611635858286016115a9565b9250506020611646858286016115fe565b9150509250929050565b61165981611270565b82525050565b5f6040820190506116725f830185611650565b61167f6020830184611650565b9392505050565b61168f8161123d565b82525050565b61169e81611270565b82525050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f6116d6826116a4565b6116e081856116ae565b93506116f08185602086016116be565b6116f9816111b1565b840191505092915050565b5f608083015f8301516117195f860182611686565b50602083015161172c6020860182611695565b50604083015161173f6040860182611695565b506060830151848203606086015261175782826116cc565b9150508091505092915050565b5f6040820190508181035f83015261177c8185611704565b905061178b602083018461155a565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b602081106117d0576117cf611792565b5b50565b5f8190506117e0826117bf565b919050565b5f6117ef826117d3565b9050919050565b6117ff816117e5565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f6118398383611686565b60208301905092915050565b5f602082019050919050565b5f61185b82611805565b611865818561180f565b93506118708361181f565b805f5b838110156118a0578151611887888261182e565b975061189283611845565b925050600181019050611873565b5085935050505092915050565b5f6080820190506118c05f830187611650565b6118cd60208301866117f6565b81810360408301526118df8185611851565b905081810360608301526118f38184611851565b905095945050505050565b5f82825260208201905092915050565b5f611918826116a4565b61192281856118fe565b93506119328185602086016116be565b61193b816111b1565b840191505092915050565b5f6060820190506119595f83018661151b565b611966602083018561151b565b8181036040830152611978818461190e565b9050949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8160030b9050919050565b6119c4816119af565b82525050565b5f6020820190506119dd5f8301846119bb565b9291505056fea2646970667358221220675beae239b364d7819668f820ab0ee5e5e31d4f00b27a9c8fa858af782f789764736f6c63430008210033',\n} satisfies MockArtifact;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/MockTaskManager.ts","../src/MockACL.ts","../src/MockZkVerifier.ts","../src/MockThresholdNetwork.ts","../src/TestBed.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["// This file is auto-generated by build-artifacts.ts\nimport { type MockArtifact } from './types';\n\nexport const MockTaskManagerArtifact = {\n contractName: 'MockTaskManager',\n isFixed: true,\n fixedAddress: '0xeA30c4B8b44078Bbf8a6ef5b9f1eC1626C7848D9',\n abi: [\n {\n type: 'constructor',\n inputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'MOCK_logAllow',\n inputs: [\n {\n name: 'operation',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'account',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'MOCK_setInEuintKey',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'value',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'acl',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'contract MockACL',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'aggregator',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'allow',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'account',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'allowForDecryption',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'allowGlobal',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'allowTransient',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'account',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'createDecryptTask',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'createRandomTask',\n inputs: [\n {\n name: 'returnType',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'seed',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'securityZone',\n type: 'int32',\n internalType: 'int32',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'createTask',\n inputs: [\n {\n name: 'returnType',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'funcId',\n type: 'uint8',\n internalType: 'enum FunctionId',\n },\n {\n name: 'encryptedHashes',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n {\n name: 'extraInputs',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'decryptResultSigner',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'exists',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'getDecryptResult',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getDecryptResultSafe',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: 'result',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'decrypted',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'handleDecryptResult',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'result',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: '',\n type: 'address[]',\n internalType: 'address[]',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'handleError',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'operation',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'errorMessage',\n type: 'string',\n internalType: 'string',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'inMockStorage',\n inputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'initialize',\n inputs: [\n {\n name: 'initialOwner',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'isAllowed',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'account',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'isAllowedWithPermission',\n inputs: [\n {\n name: 'permission',\n type: 'tuple',\n internalType: 'struct Permission',\n components: [\n {\n name: 'issuer',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'expiration',\n type: 'uint64',\n internalType: 'uint64',\n },\n {\n name: 'recipient',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'validatorId',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'validatorContract',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'sealingKey',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n {\n name: 'issuerSignature',\n type: 'bytes',\n internalType: 'bytes',\n },\n {\n name: 'recipientSignature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n {\n name: 'handle',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'isInitialized',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'isPubliclyAllowed',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'logOps',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'mockStorage',\n inputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'publishDecryptResult',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'result',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'publishDecryptResultBatch',\n inputs: [\n {\n name: 'ctHashes',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n {\n name: 'results',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n {\n name: 'signatures',\n type: 'bytes[]',\n internalType: 'bytes[]',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'removeFirstLetter',\n inputs: [\n {\n name: 'str',\n type: 'string',\n internalType: 'string',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'string',\n internalType: 'string',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'setACLContract',\n inputs: [\n {\n name: '_aclAddress',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'setAggregator',\n inputs: [\n {\n name: '_aggregatorAddress',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'setDecryptResultSigner',\n inputs: [\n {\n name: 'signer',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'setLogOps',\n inputs: [\n {\n name: '_logOps',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'setSecurityZoneMax',\n inputs: [\n {\n name: 'securityZone',\n type: 'int32',\n internalType: 'int32',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'setSecurityZoneMin',\n inputs: [\n {\n name: 'securityZone',\n type: 'int32',\n internalType: 'int32',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'setSecurityZones',\n inputs: [\n {\n name: 'minSZ',\n type: 'int32',\n internalType: 'int32',\n },\n {\n name: 'maxSZ',\n type: 'int32',\n internalType: 'int32',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'setVerifierSigner',\n inputs: [\n {\n name: 'signer',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'sliceString',\n inputs: [\n {\n name: 'str',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'start',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'length',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'string',\n internalType: 'string',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'verifyDecryptResult',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'result',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'verifyDecryptResultSafe',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'result',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'verifyInput',\n inputs: [\n {\n name: 'input',\n type: 'tuple',\n internalType: 'struct EncryptedInput',\n components: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'securityZone',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'utype',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n {\n name: 'sender',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n },\n {\n type: 'event',\n name: 'DecryptionResult',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n indexed: false,\n internalType: 'uint256',\n },\n {\n name: 'result',\n type: 'uint256',\n indexed: false,\n internalType: 'uint256',\n },\n {\n name: 'requestor',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'ProtocolNotification',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n indexed: false,\n internalType: 'uint256',\n },\n {\n name: 'operation',\n type: 'string',\n indexed: false,\n internalType: 'string',\n },\n {\n name: 'errorMessage',\n type: 'string',\n indexed: false,\n internalType: 'string',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'TaskCreated',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n indexed: false,\n internalType: 'uint256',\n },\n {\n name: 'operation',\n type: 'string',\n indexed: false,\n internalType: 'string',\n },\n {\n name: 'input1',\n type: 'uint256',\n indexed: false,\n internalType: 'uint256',\n },\n {\n name: 'input2',\n type: 'uint256',\n indexed: false,\n internalType: 'uint256',\n },\n {\n name: 'input3',\n type: 'uint256',\n indexed: false,\n internalType: 'uint256',\n },\n ],\n anonymous: false,\n },\n {\n type: 'error',\n name: 'ACLNotAllowed',\n inputs: [\n {\n name: 'handle',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'account',\n type: 'address',\n internalType: 'address',\n },\n ],\n },\n {\n type: 'error',\n name: 'DecryptionResultNotReady',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n },\n {\n type: 'error',\n name: 'ECDSAInvalidSignature',\n inputs: [],\n },\n {\n type: 'error',\n name: 'ECDSAInvalidSignatureLength',\n inputs: [\n {\n name: 'length',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n },\n {\n type: 'error',\n name: 'ECDSAInvalidSignatureS',\n inputs: [\n {\n name: 's',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n ],\n },\n {\n type: 'error',\n name: 'InputNotInMockStorage',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n },\n {\n type: 'error',\n name: 'InvalidAddress',\n inputs: [],\n },\n {\n type: 'error',\n name: 'InvalidInputForFunction',\n inputs: [\n {\n name: 'functionName',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'inputType',\n type: 'uint8',\n internalType: 'uint8',\n },\n ],\n },\n {\n type: 'error',\n name: 'InvalidInputType',\n inputs: [\n {\n name: 'actual',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'expected',\n type: 'uint8',\n internalType: 'uint8',\n },\n ],\n },\n {\n type: 'error',\n name: 'InvalidInputsAmount',\n inputs: [\n {\n name: 'operation',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'got',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'expected',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n },\n {\n type: 'error',\n name: 'InvalidOperationInputs',\n inputs: [\n {\n name: 'operation',\n type: 'string',\n internalType: 'string',\n },\n ],\n },\n {\n type: 'error',\n name: 'InvalidSecurityZone',\n inputs: [\n {\n name: 'zone',\n type: 'int32',\n internalType: 'int32',\n },\n {\n name: 'min',\n type: 'int32',\n internalType: 'int32',\n },\n {\n name: 'max',\n type: 'int32',\n internalType: 'int32',\n },\n ],\n },\n {\n type: 'error',\n name: 'InvalidSignature',\n inputs: [],\n },\n {\n type: 'error',\n name: 'InvalidSigner',\n inputs: [\n {\n name: 'signer',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'expectedSigner',\n type: 'address',\n internalType: 'address',\n },\n ],\n },\n {\n type: 'error',\n name: 'InvalidThreeInputOperation',\n inputs: [\n {\n name: 'operation',\n type: 'string',\n internalType: 'string',\n },\n ],\n },\n {\n type: 'error',\n name: 'InvalidTwoInputOperation',\n inputs: [\n {\n name: 'operation',\n type: 'string',\n internalType: 'string',\n },\n ],\n },\n {\n type: 'error',\n name: 'InvalidTypeOrSecurityZone',\n inputs: [\n {\n name: 'operation',\n type: 'string',\n internalType: 'string',\n },\n ],\n },\n {\n type: 'error',\n name: 'InvalidUnaryOperation',\n inputs: [\n {\n name: 'operation',\n type: 'string',\n internalType: 'string',\n },\n ],\n },\n {\n type: 'error',\n name: 'NotImplemented',\n inputs: [],\n },\n {\n type: 'error',\n name: 'OnlyAggregatorAllowed',\n inputs: [\n {\n name: 'caller',\n type: 'address',\n internalType: 'address',\n },\n ],\n },\n {\n type: 'error',\n name: 'OnlyOwnerAllowed',\n inputs: [\n {\n name: 'caller',\n type: 'address',\n internalType: 'address',\n },\n ],\n },\n {\n type: 'error',\n name: 'RandomFunctionNotSupported',\n inputs: [],\n },\n {\n type: 'error',\n name: 'StringsInsufficientHexLength',\n inputs: [\n {\n name: 'value',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'length',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n },\n {\n type: 'error',\n name: 'TooManyInputs',\n inputs: [\n {\n name: 'operation',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'got',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'maxAllowed',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n },\n ],\n} as const satisfies MockArtifact;\n","// This file is auto-generated by build-artifacts.ts\nimport { type MockArtifact } from './types';\n\nexport const MockACLArtifact = {\n contractName: 'MockACL',\n isFixed: false,\n abi: [\n {\n type: 'constructor',\n inputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'TASK_MANAGER_ADDRESS_',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'allow',\n inputs: [\n {\n name: 'handle',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'account',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'requester',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'allowForDecryption',\n inputs: [\n {\n name: 'handlesList',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n {\n name: 'requester',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'allowGlobal',\n inputs: [\n {\n name: 'handle',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'requester',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'allowTransient',\n inputs: [\n {\n name: 'handle',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'account',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'requester',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'allowedOnBehalf',\n inputs: [\n {\n name: 'delegatee',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'handle',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'contractAddress',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'account',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'allowedTransient',\n inputs: [\n {\n name: 'handle',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'account',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'checkPermitValidity',\n inputs: [\n {\n name: 'permission',\n type: 'tuple',\n internalType: 'struct Permission',\n components: [\n {\n name: 'issuer',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'expiration',\n type: 'uint64',\n internalType: 'uint64',\n },\n {\n name: 'recipient',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'validatorId',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'validatorContract',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'sealingKey',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n {\n name: 'issuerSignature',\n type: 'bytes',\n internalType: 'bytes',\n },\n {\n name: 'recipientSignature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'cleanTransientStorage',\n inputs: [],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'delegateAccount',\n inputs: [\n {\n name: 'delegatee',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'delegateeContract',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'eip712Domain',\n inputs: [],\n outputs: [\n {\n name: 'fields',\n type: 'bytes1',\n internalType: 'bytes1',\n },\n {\n name: 'name',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'version',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'chainId',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'verifyingContract',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'salt',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n {\n name: 'extensions',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'exists',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'getTaskManagerAddress',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getVersion',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'string',\n internalType: 'string',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'globalAllowed',\n inputs: [\n {\n name: 'handle',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'hashTypedDataV4',\n inputs: [\n {\n name: 'structHash',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'isAllowed',\n inputs: [\n {\n name: 'handle',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'account',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'isAllowedForDecryption',\n inputs: [\n {\n name: 'handle',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'isAllowedWithPermission',\n inputs: [\n {\n name: 'permission',\n type: 'tuple',\n internalType: 'struct Permission',\n components: [\n {\n name: 'issuer',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'expiration',\n type: 'uint64',\n internalType: 'uint64',\n },\n {\n name: 'recipient',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'validatorId',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'validatorContract',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'sealingKey',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n {\n name: 'issuerSignature',\n type: 'bytes',\n internalType: 'bytes',\n },\n {\n name: 'recipientSignature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n {\n name: 'handle',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'persistAllowed',\n inputs: [\n {\n name: 'handle',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'account',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'event',\n name: 'AllowedForDecryption',\n inputs: [\n {\n name: 'handlesList',\n type: 'uint256[]',\n indexed: false,\n internalType: 'uint256[]',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'EIP712DomainChanged',\n inputs: [],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'NewDelegation',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'delegatee',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'contractAddress',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n ],\n anonymous: false,\n },\n {\n type: 'error',\n name: 'AlreadyDelegated',\n inputs: [],\n },\n {\n type: 'error',\n name: 'DirectAllowForbidden',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n internalType: 'address',\n },\n ],\n },\n {\n type: 'error',\n name: 'InvalidShortString',\n inputs: [],\n },\n {\n type: 'error',\n name: 'PermissionInvalid_Disabled',\n inputs: [],\n },\n {\n type: 'error',\n name: 'PermissionInvalid_Expired',\n inputs: [],\n },\n {\n type: 'error',\n name: 'PermissionInvalid_IssuerSignature',\n inputs: [],\n },\n {\n type: 'error',\n name: 'PermissionInvalid_RecipientSignature',\n inputs: [],\n },\n {\n type: 'error',\n name: 'SenderCannotBeDelegateeAddress',\n inputs: [],\n },\n {\n type: 'error',\n name: 'SenderNotAllowed',\n inputs: [\n {\n name: 'sender',\n type: 'address',\n internalType: 'address',\n },\n ],\n },\n {\n type: 'error',\n name: 'StringTooLong',\n inputs: [\n {\n name: 'str',\n type: 'string',\n internalType: 'string',\n },\n ],\n },\n ],\n} as const satisfies MockArtifact;\n","// This file is auto-generated by build-artifacts.ts\nimport { type MockArtifact } from './types';\n\nexport const MockZkVerifierArtifact = {\n contractName: 'MockZkVerifier',\n isFixed: true,\n fixedAddress: '0x0000000000000000000000000000000000005001',\n abi: [\n {\n type: 'function',\n name: 'exists',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'insertCtHash',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'value',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'insertPackedCtHashes',\n inputs: [\n {\n name: 'ctHashes',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n {\n name: 'values',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'zkVerify',\n inputs: [\n {\n name: 'value',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'utype',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'user',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'securityZone',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'tuple',\n internalType: 'struct EncryptedInput',\n components: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'securityZone',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'utype',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n ],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'zkVerifyCalcCtHash',\n inputs: [\n {\n name: 'value',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'utype',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'user',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'securityZone',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'zkVerifyCalcCtHashesPacked',\n inputs: [\n {\n name: 'values',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n {\n name: 'utypes',\n type: 'uint8[]',\n internalType: 'uint8[]',\n },\n {\n name: 'user',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'securityZone',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'chainId',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: 'ctHashes',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'zkVerifyPacked',\n inputs: [\n {\n name: 'values',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n {\n name: 'utypes',\n type: 'uint8[]',\n internalType: 'uint8[]',\n },\n {\n name: 'user',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'securityZone',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'chainId',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: 'inputs',\n type: 'tuple[]',\n internalType: 'struct EncryptedInput[]',\n components: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'securityZone',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'utype',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n ],\n stateMutability: 'nonpayable',\n },\n {\n type: 'error',\n name: 'InvalidInputs',\n inputs: [],\n },\n ],\n} as const satisfies MockArtifact;\n","// This file is auto-generated by build-artifacts.ts\nimport { type MockArtifact } from './types';\n\nexport const MockThresholdNetworkArtifact = {\n contractName: 'MockThresholdNetwork',\n isFixed: true,\n fixedAddress: '0x0000000000000000000000000000000000005002',\n abi: [\n {\n type: 'function',\n name: 'decodeLowLevelReversion',\n inputs: [\n {\n name: 'data',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n outputs: [\n {\n name: 'error',\n type: 'string',\n internalType: 'string',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'decryptForTxWithPermit',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'permission',\n type: 'tuple',\n internalType: 'struct Permission',\n components: [\n {\n name: 'issuer',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'expiration',\n type: 'uint64',\n internalType: 'uint64',\n },\n {\n name: 'recipient',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'validatorId',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'validatorContract',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'sealingKey',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n {\n name: 'issuerSignature',\n type: 'bytes',\n internalType: 'bytes',\n },\n {\n name: 'recipientSignature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n ],\n outputs: [\n {\n name: 'allowed',\n type: 'bool',\n internalType: 'bool',\n },\n {\n name: 'error',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'decryptedValue',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'decryptForTxWithoutPermit',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: 'allowed',\n type: 'bool',\n internalType: 'bool',\n },\n {\n name: 'error',\n type: 'string',\n internalType: 'string',\n },\n {\n name: 'decryptedValue',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'exists',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'initialize',\n inputs: [\n {\n name: '_taskManager',\n type: 'address',\n internalType: 'address',\n },\n {\n name: '_acl',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'mockAcl',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'contract MockACL',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'mockQueryDecrypt',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'issuer',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [\n {\n name: 'allowed',\n type: 'bool',\n internalType: 'bool',\n },\n {\n name: 'error',\n type: 'string',\n internalType: 'string',\n },\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'mockTaskManager',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'contract MockTaskManager',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'queryDecrypt',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'permission',\n type: 'tuple',\n internalType: 'struct Permission',\n components: [\n {\n name: 'issuer',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'expiration',\n type: 'uint64',\n internalType: 'uint64',\n },\n {\n name: 'recipient',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'validatorId',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'validatorContract',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'sealingKey',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n {\n name: 'issuerSignature',\n type: 'bytes',\n internalType: 'bytes',\n },\n {\n name: 'recipientSignature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n ],\n outputs: [\n {\n name: 'allowed',\n type: 'bool',\n internalType: 'bool',\n },\n {\n name: 'error',\n type: 'string',\n internalType: 'string',\n },\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'querySealOutput',\n inputs: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'permission',\n type: 'tuple',\n internalType: 'struct Permission',\n components: [\n {\n name: 'issuer',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'expiration',\n type: 'uint64',\n internalType: 'uint64',\n },\n {\n name: 'recipient',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'validatorId',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'validatorContract',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'sealingKey',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n {\n name: 'issuerSignature',\n type: 'bytes',\n internalType: 'bytes',\n },\n {\n name: 'recipientSignature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n ],\n outputs: [\n {\n name: 'allowed',\n type: 'bool',\n internalType: 'bool',\n },\n {\n name: 'error',\n type: 'string',\n internalType: 'string',\n },\n {\n name: '',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'seal',\n inputs: [\n {\n name: 'input',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'key',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'unseal',\n inputs: [\n {\n name: 'hashed',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n {\n name: 'key',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'error',\n name: 'NotAllowed',\n inputs: [],\n },\n {\n type: 'error',\n name: 'SealingKeyInvalid',\n inputs: [],\n },\n {\n type: 'error',\n name: 'SealingKeyMissing',\n inputs: [],\n },\n ],\n} as const satisfies MockArtifact;\n","// This file is auto-generated by build-artifacts.ts\nimport { type MockArtifact } from './types';\n\nexport const TestBedArtifact = {\n contractName: 'TestBed',\n isFixed: true,\n fixedAddress: '0x0000000000000000000000000000000000005003',\n abi: [\n {\n type: 'function',\n name: 'add',\n inputs: [\n {\n name: 'inNumber',\n type: 'tuple',\n internalType: 'struct InEuint32',\n components: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'securityZone',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'utype',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'decrypt',\n inputs: [],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'eNumber',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'bytes32',\n internalType: 'euint32',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'exists',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'pure',\n },\n {\n type: 'function',\n name: 'getDecryptResult',\n inputs: [\n {\n name: 'input1',\n type: 'bytes32',\n internalType: 'euint32',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint32',\n internalType: 'uint32',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getDecryptResultSafe',\n inputs: [\n {\n name: 'input1',\n type: 'bytes32',\n internalType: 'euint32',\n },\n ],\n outputs: [\n {\n name: 'value',\n type: 'uint32',\n internalType: 'uint32',\n },\n {\n name: 'decrypted',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'increment',\n inputs: [],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'mul',\n inputs: [\n {\n name: 'inNumber',\n type: 'tuple',\n internalType: 'struct InEuint32',\n components: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'securityZone',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'utype',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'numberHash',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'bytes32',\n internalType: 'bytes32',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'publishDecryptResult',\n inputs: [\n {\n name: 'input',\n type: 'bytes32',\n internalType: 'euint32',\n },\n {\n name: 'result',\n type: 'uint32',\n internalType: 'uint32',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'setNumber',\n inputs: [\n {\n name: 'inNumber',\n type: 'tuple',\n internalType: 'struct InEuint32',\n components: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'securityZone',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'utype',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'setNumberTrivial',\n inputs: [\n {\n name: 'inNumber',\n type: 'uint32',\n internalType: 'uint32',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'sub',\n inputs: [\n {\n name: 'inNumber',\n type: 'tuple',\n internalType: 'struct InEuint32',\n components: [\n {\n name: 'ctHash',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'securityZone',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'utype',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'signature',\n type: 'bytes',\n internalType: 'bytes',\n },\n ],\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'error',\n name: 'InvalidEncryptedInput',\n inputs: [\n {\n name: 'got',\n type: 'uint8',\n internalType: 'uint8',\n },\n {\n name: 'expected',\n type: 'uint8',\n internalType: 'uint8',\n },\n ],\n },\n {\n type: 'error',\n name: 'SecurityZoneOutOfBounds',\n inputs: [\n {\n name: 'value',\n type: 'int32',\n internalType: 'int32',\n },\n ],\n },\n ],\n} as const satisfies MockArtifact;\n"]}
|