@inco/js 0.8.0-devnet-8 → 0.8.0-devnet-10

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.
Files changed (83) hide show
  1. package/dist/cjs/advancedacl/session-key.js +15 -6
  2. package/dist/cjs/attesteddecrypt/attested-decrypt.d.ts +2 -6
  3. package/dist/cjs/attesteddecrypt/attested-decrypt.js +15 -22
  4. package/dist/cjs/generated/abis/lightning.d.ts +990 -95
  5. package/dist/cjs/generated/abis/lightning.js +645 -6
  6. package/dist/cjs/generated/abis/test-elist.d.ts +1 -1
  7. package/dist/cjs/generated/abis/test-elist.js +2 -2
  8. package/dist/cjs/generated/abis/verifier.d.ts +43 -0
  9. package/dist/cjs/generated/abis/verifier.js +23 -1
  10. package/dist/cjs/generated/es/inco/sealingfetcher/v1/sealingfetcher_pb.d.ts +7 -0
  11. package/dist/cjs/generated/es/inco/sealingfetcher/v1/sealingfetcher_pb.js +2 -2
  12. package/dist/cjs/generated/lightning.d.ts +40 -0
  13. package/dist/cjs/generated/lightning.js +43 -1
  14. package/dist/cjs/generated/local-node.d.ts +4 -4
  15. package/dist/cjs/generated/local-node.js +22 -5
  16. package/dist/cjs/handle.d.ts +12 -0
  17. package/dist/cjs/handle.js +29 -2
  18. package/dist/cjs/kms/client.d.ts +1 -1
  19. package/dist/cjs/kms/client.js +4 -3
  20. package/dist/cjs/kms/quorumClient.d.ts +1 -0
  21. package/dist/cjs/kms/quorumClient.js +21 -4
  22. package/dist/cjs/lite/index.d.ts +1 -1
  23. package/dist/cjs/lite/index.js +2 -3
  24. package/dist/cjs/lite/lightning.d.ts +2 -3
  25. package/dist/cjs/lite/lightning.js +4 -14
  26. package/dist/cjs/lite/xwing.d.ts +25 -0
  27. package/dist/cjs/lite/xwing.js +49 -5
  28. package/dist/cjs/retry.d.ts +14 -0
  29. package/dist/cjs/retry.js +58 -2
  30. package/dist/cjs/test/mocks.d.ts +1 -0
  31. package/dist/cjs/test/mocks.js +3 -2
  32. package/dist/esm/advancedacl/session-key.js +13 -4
  33. package/dist/esm/attesteddecrypt/attested-decrypt.d.ts +2 -6
  34. package/dist/esm/attesteddecrypt/attested-decrypt.js +14 -20
  35. package/dist/esm/generated/abis/lightning.d.ts +990 -95
  36. package/dist/esm/generated/abis/lightning.js +643 -4
  37. package/dist/esm/generated/abis/test-elist.d.ts +1 -1
  38. package/dist/esm/generated/abis/test-elist.js +2 -2
  39. package/dist/esm/generated/abis/verifier.d.ts +43 -0
  40. package/dist/esm/generated/abis/verifier.js +23 -1
  41. package/dist/esm/generated/es/inco/sealingfetcher/v1/sealingfetcher_pb.d.ts +7 -0
  42. package/dist/esm/generated/es/inco/sealingfetcher/v1/sealingfetcher_pb.js +2 -2
  43. package/dist/esm/generated/lightning.d.ts +40 -0
  44. package/dist/esm/generated/lightning.js +43 -1
  45. package/dist/esm/generated/local-node.d.ts +4 -4
  46. package/dist/esm/generated/local-node.js +22 -5
  47. package/dist/esm/handle.d.ts +12 -0
  48. package/dist/esm/handle.js +27 -1
  49. package/dist/esm/kms/client.d.ts +1 -1
  50. package/dist/esm/kms/client.js +3 -2
  51. package/dist/esm/kms/quorumClient.d.ts +1 -0
  52. package/dist/esm/kms/quorumClient.js +21 -4
  53. package/dist/esm/lite/index.d.ts +1 -1
  54. package/dist/esm/lite/index.js +2 -2
  55. package/dist/esm/lite/lightning.d.ts +2 -3
  56. package/dist/esm/lite/lightning.js +6 -16
  57. package/dist/esm/lite/xwing.d.ts +25 -0
  58. package/dist/esm/lite/xwing.js +47 -5
  59. package/dist/esm/retry.d.ts +14 -0
  60. package/dist/esm/retry.js +56 -2
  61. package/dist/esm/test/mocks.d.ts +1 -0
  62. package/dist/esm/test/mocks.js +4 -3
  63. package/dist/types/attesteddecrypt/attested-decrypt.d.ts +2 -6
  64. package/dist/types/generated/abis/lightning.d.ts +990 -95
  65. package/dist/types/generated/abis/test-elist.d.ts +1 -1
  66. package/dist/types/generated/abis/verifier.d.ts +43 -0
  67. package/dist/types/generated/es/inco/sealingfetcher/v1/sealingfetcher_pb.d.ts +7 -0
  68. package/dist/types/generated/lightning.d.ts +40 -0
  69. package/dist/types/generated/local-node.d.ts +4 -4
  70. package/dist/types/handle.d.ts +12 -0
  71. package/dist/types/kms/client.d.ts +1 -1
  72. package/dist/types/kms/quorumClient.d.ts +1 -0
  73. package/dist/types/lite/index.d.ts +1 -1
  74. package/dist/types/lite/lightning.d.ts +2 -3
  75. package/dist/types/lite/xwing.d.ts +25 -0
  76. package/dist/types/retry.d.ts +14 -0
  77. package/dist/types/test/mocks.d.ts +1 -0
  78. package/package.json +1 -1
  79. package/dist/cjs/generated/abis/lightning-preview.d.ts +0 -1441
  80. package/dist/cjs/generated/abis/lightning-preview.js +0 -907
  81. package/dist/esm/generated/abis/lightning-preview.d.ts +0 -1441
  82. package/dist/esm/generated/abis/lightning-preview.js +0 -904
  83. package/dist/types/generated/abis/lightning-preview.d.ts +0 -1441
@@ -1,907 +0,0 @@
1
- "use strict";
2
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
3
- // ABIHelper
4
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.voucherEip712CheckerAbi = exports.iIncoLightningPreviewAbi = exports.advancedAccessControlAbi = exports.abiHelperAbi = void 0;
7
- exports.abiHelperAbi = [
8
- {
9
- type: 'function',
10
- inputs: [],
11
- name: 'getSession',
12
- outputs: [
13
- {
14
- name: '',
15
- internalType: 'struct Session',
16
- type: 'tuple',
17
- components: [
18
- { name: 'decrypter', internalType: 'address', type: 'address' },
19
- { name: 'expiresAt', internalType: 'uint256', type: 'uint256' },
20
- ],
21
- },
22
- ],
23
- stateMutability: 'pure',
24
- },
25
- ];
26
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
27
- // AdvancedAccessControl
28
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
29
- exports.advancedAccessControlAbi = [
30
- {
31
- type: 'function',
32
- inputs: [
33
- {
34
- name: 'voucher',
35
- internalType: 'struct AllowanceVoucher',
36
- type: 'tuple',
37
- components: [
38
- { name: 'sessionNonce', internalType: 'bytes32', type: 'bytes32' },
39
- {
40
- name: 'verifyingContract',
41
- internalType: 'address',
42
- type: 'address',
43
- },
44
- { name: 'callFunction', internalType: 'bytes4', type: 'bytes4' },
45
- { name: 'sharerArgData', internalType: 'bytes', type: 'bytes' },
46
- ],
47
- },
48
- ],
49
- name: 'allowanceVoucherDigest',
50
- outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
51
- stateMutability: 'view',
52
- },
53
- {
54
- type: 'function',
55
- inputs: [],
56
- name: 'eip712Domain',
57
- outputs: [
58
- { name: 'fields', internalType: 'bytes1', type: 'bytes1' },
59
- { name: 'name', internalType: 'string', type: 'string' },
60
- { name: 'version', internalType: 'string', type: 'string' },
61
- { name: 'chainId', internalType: 'uint256', type: 'uint256' },
62
- { name: 'verifyingContract', internalType: 'address', type: 'address' },
63
- { name: 'salt', internalType: 'bytes32', type: 'bytes32' },
64
- { name: 'extensions', internalType: 'uint256[]', type: 'uint256[]' },
65
- ],
66
- stateMutability: 'view',
67
- },
68
- {
69
- type: 'function',
70
- inputs: [{ name: 'account', internalType: 'address', type: 'address' }],
71
- name: 'getActiveVouchersSessionNonce',
72
- outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
73
- stateMutability: 'view',
74
- },
75
- {
76
- type: 'function',
77
- inputs: [
78
- { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
79
- { name: 'account', internalType: 'address', type: 'address' },
80
- {
81
- name: 'proof',
82
- internalType: 'struct AllowanceProof',
83
- type: 'tuple',
84
- components: [
85
- { name: 'sharer', internalType: 'address', type: 'address' },
86
- {
87
- name: 'voucher',
88
- internalType: 'struct AllowanceVoucher',
89
- type: 'tuple',
90
- components: [
91
- {
92
- name: 'sessionNonce',
93
- internalType: 'bytes32',
94
- type: 'bytes32',
95
- },
96
- {
97
- name: 'verifyingContract',
98
- internalType: 'address',
99
- type: 'address',
100
- },
101
- { name: 'callFunction', internalType: 'bytes4', type: 'bytes4' },
102
- { name: 'sharerArgData', internalType: 'bytes', type: 'bytes' },
103
- ],
104
- },
105
- { name: 'voucherSignature', internalType: 'bytes', type: 'bytes' },
106
- { name: 'requesterArgData', internalType: 'bytes', type: 'bytes' },
107
- ],
108
- },
109
- ],
110
- name: 'isAllowedWithProof',
111
- outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
112
- stateMutability: 'nonpayable',
113
- },
114
- {
115
- type: 'function',
116
- inputs: [],
117
- name: 'updateActiveVouchersSessionNonce',
118
- outputs: [],
119
- stateMutability: 'nonpayable',
120
- },
121
- { type: 'event', anonymous: false, inputs: [], name: 'EIP712DomainChanged' },
122
- {
123
- type: 'event',
124
- anonymous: false,
125
- inputs: [
126
- {
127
- name: 'version',
128
- internalType: 'uint64',
129
- type: 'uint64',
130
- indexed: false,
131
- },
132
- ],
133
- name: 'Initialized',
134
- },
135
- { type: 'error', inputs: [], name: 'InvalidInitialization' },
136
- {
137
- type: 'error',
138
- inputs: [
139
- {
140
- name: 'providedSessionNonce',
141
- internalType: 'bytes32',
142
- type: 'bytes32',
143
- },
144
- { name: 'activeSessionNonce', internalType: 'bytes32', type: 'bytes32' },
145
- ],
146
- name: 'InvalidVoucherSessionNonce',
147
- },
148
- {
149
- type: 'error',
150
- inputs: [
151
- { name: 'signer', internalType: 'address', type: 'address' },
152
- { name: 'digest', internalType: 'bytes32', type: 'bytes32' },
153
- { name: 'signature', internalType: 'bytes', type: 'bytes' },
154
- ],
155
- name: 'InvalidVoucherSignature',
156
- },
157
- { type: 'error', inputs: [], name: 'NotInitializing' },
158
- {
159
- type: 'error',
160
- inputs: [
161
- { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
162
- { name: 'sharer', internalType: 'address', type: 'address' },
163
- ],
164
- name: 'SharerNotAllowedForHandle',
165
- },
166
- ];
167
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
168
- // IIncoLightningPreview
169
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
170
- exports.iIncoLightningPreviewAbi = [
171
- {
172
- type: 'function',
173
- inputs: [{ name: 'version', internalType: 'uint16', type: 'uint16' }],
174
- name: 'addAcceptedVersion',
175
- outputs: [],
176
- stateMutability: 'nonpayable',
177
- },
178
- {
179
- type: 'function',
180
- inputs: [
181
- { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
182
- { name: 'account', internalType: 'address', type: 'address' },
183
- ],
184
- name: 'allow',
185
- outputs: [],
186
- stateMutability: 'nonpayable',
187
- },
188
- {
189
- type: 'function',
190
- inputs: [
191
- { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
192
- { name: 'account', internalType: 'address', type: 'address' },
193
- ],
194
- name: 'allowTransient',
195
- outputs: [],
196
- stateMutability: 'nonpayable',
197
- },
198
- {
199
- type: 'function',
200
- inputs: [
201
- { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
202
- { name: 'account', internalType: 'address', type: 'address' },
203
- ],
204
- name: 'allowedTransient',
205
- outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
206
- stateMutability: 'view',
207
- },
208
- {
209
- type: 'function',
210
- inputs: [{ name: 'value', internalType: 'address', type: 'address' }],
211
- name: 'asEaddress',
212
- outputs: [
213
- { name: 'newEaddress', internalType: 'eaddress', type: 'bytes32' },
214
- ],
215
- stateMutability: 'nonpayable',
216
- },
217
- {
218
- type: 'function',
219
- inputs: [{ name: 'value', internalType: 'bool', type: 'bool' }],
220
- name: 'asEbool',
221
- outputs: [{ name: 'newEbool', internalType: 'ebool', type: 'bytes32' }],
222
- stateMutability: 'nonpayable',
223
- },
224
- {
225
- type: 'function',
226
- inputs: [{ name: 'value', internalType: 'uint256', type: 'uint256' }],
227
- name: 'asEuint256',
228
- outputs: [
229
- { name: 'newEuint256', internalType: 'euint256', type: 'bytes32' },
230
- ],
231
- stateMutability: 'nonpayable',
232
- },
233
- {
234
- type: 'function',
235
- inputs: [
236
- { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
237
- {
238
- name: 'proof',
239
- internalType: 'struct AllowanceProof',
240
- type: 'tuple',
241
- components: [
242
- { name: 'sharer', internalType: 'address', type: 'address' },
243
- {
244
- name: 'voucher',
245
- internalType: 'struct AllowanceVoucher',
246
- type: 'tuple',
247
- components: [
248
- {
249
- name: 'sessionNonce',
250
- internalType: 'bytes32',
251
- type: 'bytes32',
252
- },
253
- {
254
- name: 'verifyingContract',
255
- internalType: 'address',
256
- type: 'address',
257
- },
258
- { name: 'callFunction', internalType: 'bytes4', type: 'bytes4' },
259
- { name: 'sharerArgData', internalType: 'bytes', type: 'bytes' },
260
- ],
261
- },
262
- { name: 'voucherSignature', internalType: 'bytes', type: 'bytes' },
263
- { name: 'requesterArgData', internalType: 'bytes', type: 'bytes' },
264
- ],
265
- },
266
- ],
267
- name: 'claimHandle',
268
- outputs: [],
269
- stateMutability: 'nonpayable',
270
- },
271
- {
272
- type: 'function',
273
- inputs: [],
274
- name: 'cleanTransientStorage',
275
- outputs: [],
276
- stateMutability: 'nonpayable',
277
- },
278
- {
279
- type: 'function',
280
- inputs: [
281
- { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
282
- { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
283
- ],
284
- name: 'eAdd',
285
- outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],
286
- stateMutability: 'nonpayable',
287
- },
288
- {
289
- type: 'function',
290
- inputs: [
291
- { name: 'lhs', internalType: 'bytes32', type: 'bytes32' },
292
- { name: 'rhs', internalType: 'bytes32', type: 'bytes32' },
293
- ],
294
- name: 'eBitAnd',
295
- outputs: [{ name: 'result', internalType: 'bytes32', type: 'bytes32' }],
296
- stateMutability: 'nonpayable',
297
- },
298
- {
299
- type: 'function',
300
- inputs: [
301
- { name: 'lhs', internalType: 'bytes32', type: 'bytes32' },
302
- { name: 'rhs', internalType: 'bytes32', type: 'bytes32' },
303
- ],
304
- name: 'eBitOr',
305
- outputs: [{ name: 'result', internalType: 'bytes32', type: 'bytes32' }],
306
- stateMutability: 'nonpayable',
307
- },
308
- {
309
- type: 'function',
310
- inputs: [
311
- { name: 'lhs', internalType: 'bytes32', type: 'bytes32' },
312
- { name: 'rhs', internalType: 'bytes32', type: 'bytes32' },
313
- ],
314
- name: 'eBitXor',
315
- outputs: [{ name: 'result', internalType: 'bytes32', type: 'bytes32' }],
316
- stateMutability: 'nonpayable',
317
- },
318
- {
319
- type: 'function',
320
- inputs: [
321
- { name: 'ct', internalType: 'bytes32', type: 'bytes32' },
322
- { name: 'toType', internalType: 'enum ETypes', type: 'uint8' },
323
- ],
324
- name: 'eCast',
325
- outputs: [{ name: 'result', internalType: 'bytes32', type: 'bytes32' }],
326
- stateMutability: 'nonpayable',
327
- },
328
- {
329
- type: 'function',
330
- inputs: [
331
- { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
332
- { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
333
- ],
334
- name: 'eDiv',
335
- outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],
336
- stateMutability: 'nonpayable',
337
- },
338
- {
339
- type: 'function',
340
- inputs: [
341
- { name: 'lhs', internalType: 'bytes32', type: 'bytes32' },
342
- { name: 'rhs', internalType: 'bytes32', type: 'bytes32' },
343
- ],
344
- name: 'eEq',
345
- outputs: [{ name: 'result', internalType: 'ebool', type: 'bytes32' }],
346
- stateMutability: 'nonpayable',
347
- },
348
- {
349
- type: 'function',
350
- inputs: [
351
- { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
352
- { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
353
- ],
354
- name: 'eGe',
355
- outputs: [{ name: 'result', internalType: 'ebool', type: 'bytes32' }],
356
- stateMutability: 'nonpayable',
357
- },
358
- {
359
- type: 'function',
360
- inputs: [
361
- { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
362
- { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
363
- ],
364
- name: 'eGt',
365
- outputs: [{ name: 'result', internalType: 'ebool', type: 'bytes32' }],
366
- stateMutability: 'nonpayable',
367
- },
368
- {
369
- type: 'function',
370
- inputs: [
371
- { name: 'condition', internalType: 'ebool', type: 'bytes32' },
372
- { name: 'ifTrue', internalType: 'bytes32', type: 'bytes32' },
373
- { name: 'ifFalse', internalType: 'bytes32', type: 'bytes32' },
374
- ],
375
- name: 'eIfThenElse',
376
- outputs: [{ name: 'result', internalType: 'bytes32', type: 'bytes32' }],
377
- stateMutability: 'nonpayable',
378
- },
379
- {
380
- type: 'function',
381
- inputs: [
382
- { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
383
- { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
384
- ],
385
- name: 'eLe',
386
- outputs: [{ name: 'result', internalType: 'ebool', type: 'bytes32' }],
387
- stateMutability: 'nonpayable',
388
- },
389
- {
390
- type: 'function',
391
- inputs: [
392
- { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
393
- { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
394
- ],
395
- name: 'eLt',
396
- outputs: [{ name: 'result', internalType: 'ebool', type: 'bytes32' }],
397
- stateMutability: 'nonpayable',
398
- },
399
- {
400
- type: 'function',
401
- inputs: [
402
- { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
403
- { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
404
- ],
405
- name: 'eMax',
406
- outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],
407
- stateMutability: 'nonpayable',
408
- },
409
- {
410
- type: 'function',
411
- inputs: [
412
- { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
413
- { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
414
- ],
415
- name: 'eMin',
416
- outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],
417
- stateMutability: 'nonpayable',
418
- },
419
- {
420
- type: 'function',
421
- inputs: [
422
- { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
423
- { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
424
- ],
425
- name: 'eMul',
426
- outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],
427
- stateMutability: 'nonpayable',
428
- },
429
- {
430
- type: 'function',
431
- inputs: [
432
- { name: 'lhs', internalType: 'bytes32', type: 'bytes32' },
433
- { name: 'rhs', internalType: 'bytes32', type: 'bytes32' },
434
- ],
435
- name: 'eNe',
436
- outputs: [{ name: 'result', internalType: 'ebool', type: 'bytes32' }],
437
- stateMutability: 'nonpayable',
438
- },
439
- {
440
- type: 'function',
441
- inputs: [{ name: 'operand', internalType: 'ebool', type: 'bytes32' }],
442
- name: 'eNot',
443
- outputs: [{ name: 'result', internalType: 'ebool', type: 'bytes32' }],
444
- stateMutability: 'nonpayable',
445
- },
446
- {
447
- type: 'function',
448
- inputs: [{ name: 'randType', internalType: 'enum ETypes', type: 'uint8' }],
449
- name: 'eRand',
450
- outputs: [{ name: 'result', internalType: 'bytes32', type: 'bytes32' }],
451
- stateMutability: 'payable',
452
- },
453
- {
454
- type: 'function',
455
- inputs: [
456
- { name: 'upperBound', internalType: 'bytes32', type: 'bytes32' },
457
- { name: 'randType', internalType: 'enum ETypes', type: 'uint8' },
458
- ],
459
- name: 'eRandBounded',
460
- outputs: [{ name: 'result', internalType: 'bytes32', type: 'bytes32' }],
461
- stateMutability: 'payable',
462
- },
463
- {
464
- type: 'function',
465
- inputs: [
466
- { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
467
- { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
468
- ],
469
- name: 'eRem',
470
- outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],
471
- stateMutability: 'nonpayable',
472
- },
473
- {
474
- type: 'function',
475
- inputs: [
476
- { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
477
- { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
478
- ],
479
- name: 'eRotl',
480
- outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],
481
- stateMutability: 'nonpayable',
482
- },
483
- {
484
- type: 'function',
485
- inputs: [
486
- { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
487
- { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
488
- ],
489
- name: 'eRotr',
490
- outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],
491
- stateMutability: 'nonpayable',
492
- },
493
- {
494
- type: 'function',
495
- inputs: [
496
- { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
497
- { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
498
- ],
499
- name: 'eShl',
500
- outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],
501
- stateMutability: 'nonpayable',
502
- },
503
- {
504
- type: 'function',
505
- inputs: [
506
- { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
507
- { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
508
- ],
509
- name: 'eShr',
510
- outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],
511
- stateMutability: 'nonpayable',
512
- },
513
- {
514
- type: 'function',
515
- inputs: [
516
- { name: 'lhs', internalType: 'euint256', type: 'bytes32' },
517
- { name: 'rhs', internalType: 'euint256', type: 'bytes32' },
518
- ],
519
- name: 'eSub',
520
- outputs: [{ name: 'result', internalType: 'euint256', type: 'bytes32' }],
521
- stateMutability: 'nonpayable',
522
- },
523
- {
524
- type: 'function',
525
- inputs: [],
526
- name: 'getMajorVersion',
527
- outputs: [{ name: '', internalType: 'string', type: 'string' }],
528
- stateMutability: 'view',
529
- },
530
- {
531
- type: 'function',
532
- inputs: [],
533
- name: 'getName',
534
- outputs: [{ name: '', internalType: 'string', type: 'string' }],
535
- stateMutability: 'view',
536
- },
537
- {
538
- type: 'function',
539
- inputs: [
540
- { name: 'op', internalType: 'enum EOps', type: 'uint8' },
541
- { name: 'returnType', internalType: 'enum ETypes', type: 'uint8' },
542
- { name: 'packedInputs', internalType: 'bytes', type: 'bytes' },
543
- ],
544
- name: 'getOpResultHandle',
545
- outputs: [
546
- { name: 'generatedHandle', internalType: 'bytes32', type: 'bytes32' },
547
- ],
548
- stateMutability: 'pure',
549
- },
550
- {
551
- type: 'function',
552
- inputs: [
553
- { name: 'plaintextBytes', internalType: 'bytes32', type: 'bytes32' },
554
- { name: 'handleType', internalType: 'enum ETypes', type: 'uint8' },
555
- ],
556
- name: 'getTrivialEncryptHandle',
557
- outputs: [
558
- { name: 'generatedHandle', internalType: 'bytes32', type: 'bytes32' },
559
- ],
560
- stateMutability: 'view',
561
- },
562
- {
563
- type: 'function',
564
- inputs: [],
565
- name: 'getVersion',
566
- outputs: [{ name: '', internalType: 'string', type: 'string' }],
567
- stateMutability: 'view',
568
- },
569
- {
570
- type: 'function',
571
- inputs: [],
572
- name: 'getVersionedName',
573
- outputs: [{ name: '', internalType: 'string', type: 'string' }],
574
- stateMutability: 'view',
575
- },
576
- {
577
- type: 'function',
578
- inputs: [],
579
- name: 'incoVerifier',
580
- outputs: [
581
- { name: '', internalType: 'contract IIncoVerifier', type: 'address' },
582
- ],
583
- stateMutability: 'view',
584
- },
585
- {
586
- type: 'function',
587
- inputs: [{ name: 'owner', internalType: 'address', type: 'address' }],
588
- name: 'initialize',
589
- outputs: [],
590
- stateMutability: 'nonpayable',
591
- },
592
- {
593
- type: 'function',
594
- inputs: [
595
- { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
596
- { name: 'account', internalType: 'address', type: 'address' },
597
- ],
598
- name: 'isAllowed',
599
- outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
600
- stateMutability: 'view',
601
- },
602
- {
603
- type: 'function',
604
- inputs: [{ name: 'handle', internalType: 'bytes32', type: 'bytes32' }],
605
- name: 'lengthOf',
606
- outputs: [{ name: '', internalType: 'uint16', type: 'uint16' }],
607
- stateMutability: 'pure',
608
- },
609
- {
610
- type: 'function',
611
- inputs: [
612
- { name: 'list', internalType: 'elist', type: 'bytes32' },
613
- { name: 'value', internalType: 'bytes32', type: 'bytes32' },
614
- ],
615
- name: 'listAppend',
616
- outputs: [{ name: 'result', internalType: 'elist', type: 'bytes32' }],
617
- stateMutability: 'nonpayable',
618
- },
619
- {
620
- type: 'function',
621
- inputs: [
622
- { name: 'lhs', internalType: 'elist', type: 'bytes32' },
623
- { name: 'rhs', internalType: 'elist', type: 'bytes32' },
624
- ],
625
- name: 'listConcat',
626
- outputs: [{ name: 'result', internalType: 'elist', type: 'bytes32' }],
627
- stateMutability: 'nonpayable',
628
- },
629
- {
630
- type: 'function',
631
- inputs: [
632
- { name: 'list', internalType: 'elist', type: 'bytes32' },
633
- { name: 'i', internalType: 'uint16', type: 'uint16' },
634
- ],
635
- name: 'listGet',
636
- outputs: [{ name: 'result', internalType: 'bytes32', type: 'bytes32' }],
637
- stateMutability: 'nonpayable',
638
- },
639
- {
640
- type: 'function',
641
- inputs: [
642
- { name: 'list', internalType: 'elist', type: 'bytes32' },
643
- { name: 'i', internalType: 'bytes32', type: 'bytes32' },
644
- { name: 'defaultValue', internalType: 'bytes32', type: 'bytes32' },
645
- ],
646
- name: 'listGetOr',
647
- outputs: [{ name: 'result', internalType: 'bytes32', type: 'bytes32' }],
648
- stateMutability: 'nonpayable',
649
- },
650
- {
651
- type: 'function',
652
- inputs: [
653
- { name: 'list', internalType: 'elist', type: 'bytes32' },
654
- { name: 'i', internalType: 'bytes32', type: 'bytes32' },
655
- { name: 'value', internalType: 'bytes32', type: 'bytes32' },
656
- ],
657
- name: 'listInsert',
658
- outputs: [{ name: 'result', internalType: 'elist', type: 'bytes32' }],
659
- stateMutability: 'nonpayable',
660
- },
661
- {
662
- type: 'function',
663
- inputs: [
664
- { name: 'start', internalType: 'uint16', type: 'uint16' },
665
- { name: 'end', internalType: 'uint16', type: 'uint16' },
666
- ],
667
- name: 'listRange',
668
- outputs: [{ name: 'result', internalType: 'elist', type: 'bytes32' }],
669
- stateMutability: 'nonpayable',
670
- },
671
- {
672
- type: 'function',
673
- inputs: [{ name: 'list', internalType: 'elist', type: 'bytes32' }],
674
- name: 'listReverse',
675
- outputs: [{ name: 'result', internalType: 'elist', type: 'bytes32' }],
676
- stateMutability: 'nonpayable',
677
- },
678
- {
679
- type: 'function',
680
- inputs: [
681
- { name: 'list', internalType: 'elist', type: 'bytes32' },
682
- { name: 'i', internalType: 'bytes32', type: 'bytes32' },
683
- { name: 'value', internalType: 'bytes32', type: 'bytes32' },
684
- ],
685
- name: 'listSet',
686
- outputs: [{ name: 'result', internalType: 'elist', type: 'bytes32' }],
687
- stateMutability: 'nonpayable',
688
- },
689
- {
690
- type: 'function',
691
- inputs: [{ name: 'list', internalType: 'elist', type: 'bytes32' }],
692
- name: 'listShuffle',
693
- outputs: [{ name: 'result', internalType: 'elist', type: 'bytes32' }],
694
- stateMutability: 'payable',
695
- },
696
- {
697
- type: 'function',
698
- inputs: [
699
- { name: 'list', internalType: 'elist', type: 'bytes32' },
700
- { name: 'start', internalType: 'bytes32', type: 'bytes32' },
701
- { name: 'len', internalType: 'uint16', type: 'uint16' },
702
- { name: 'defaultValue', internalType: 'bytes32', type: 'bytes32' },
703
- ],
704
- name: 'listSlice',
705
- outputs: [{ name: 'result', internalType: 'elist', type: 'bytes32' }],
706
- stateMutability: 'nonpayable',
707
- },
708
- {
709
- type: 'function',
710
- inputs: [],
711
- name: 'majorVersion',
712
- outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }],
713
- stateMutability: 'view',
714
- },
715
- {
716
- type: 'function',
717
- inputs: [],
718
- name: 'minorVersion',
719
- outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }],
720
- stateMutability: 'view',
721
- },
722
- {
723
- type: 'function',
724
- inputs: [
725
- { name: 'handles', internalType: 'bytes32[]', type: 'bytes32[]' },
726
- { name: 'listType', internalType: 'enum ETypes', type: 'uint8' },
727
- ],
728
- name: 'newEList',
729
- outputs: [{ name: 'newList', internalType: 'elist', type: 'bytes32' }],
730
- stateMutability: 'nonpayable',
731
- },
732
- {
733
- type: 'function',
734
- inputs: [
735
- { name: 'inputs', internalType: 'bytes[]', type: 'bytes[]' },
736
- { name: 'listType', internalType: 'enum ETypes', type: 'uint8' },
737
- { name: 'user', internalType: 'address', type: 'address' },
738
- ],
739
- name: 'newEList',
740
- outputs: [{ name: 'newList', internalType: 'elist', type: 'bytes32' }],
741
- stateMutability: 'payable',
742
- },
743
- {
744
- type: 'function',
745
- inputs: [
746
- { name: 'ciphertext', internalType: 'bytes', type: 'bytes' },
747
- { name: 'user', internalType: 'address', type: 'address' },
748
- ],
749
- name: 'newEaddress',
750
- outputs: [{ name: 'newValue', internalType: 'eaddress', type: 'bytes32' }],
751
- stateMutability: 'payable',
752
- },
753
- {
754
- type: 'function',
755
- inputs: [
756
- { name: 'ciphertext', internalType: 'bytes', type: 'bytes' },
757
- { name: 'user', internalType: 'address', type: 'address' },
758
- ],
759
- name: 'newEbool',
760
- outputs: [{ name: 'newValue', internalType: 'ebool', type: 'bytes32' }],
761
- stateMutability: 'payable',
762
- },
763
- {
764
- type: 'function',
765
- inputs: [
766
- { name: 'ciphertext', internalType: 'bytes', type: 'bytes' },
767
- { name: 'user', internalType: 'address', type: 'address' },
768
- ],
769
- name: 'newEuint256',
770
- outputs: [{ name: 'newValue', internalType: 'euint256', type: 'bytes32' }],
771
- stateMutability: 'payable',
772
- },
773
- {
774
- type: 'function',
775
- inputs: [],
776
- name: 'patchVersion',
777
- outputs: [{ name: '', internalType: 'uint8', type: 'uint8' }],
778
- stateMutability: 'view',
779
- },
780
- {
781
- type: 'function',
782
- inputs: [
783
- { name: 'handle', internalType: 'bytes32', type: 'bytes32' },
784
- { name: 'account', internalType: 'address', type: 'address' },
785
- ],
786
- name: 'persistAllowed',
787
- outputs: [{ name: '', internalType: 'bool', type: 'bool' }],
788
- stateMutability: 'view',
789
- },
790
- {
791
- type: 'function',
792
- inputs: [{ name: 'version', internalType: 'uint16', type: 'uint16' }],
793
- name: 'removeAcceptedVersion',
794
- outputs: [],
795
- stateMutability: 'nonpayable',
796
- },
797
- {
798
- type: 'function',
799
- inputs: [],
800
- name: 'salt',
801
- outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
802
- stateMutability: 'view',
803
- },
804
- {
805
- type: 'function',
806
- inputs: [],
807
- name: 'withdrawFees',
808
- outputs: [],
809
- stateMutability: 'nonpayable',
810
- },
811
- {
812
- type: 'event',
813
- anonymous: false,
814
- inputs: [
815
- {
816
- name: 'version',
817
- internalType: 'uint16',
818
- type: 'uint16',
819
- indexed: false,
820
- },
821
- ],
822
- name: 'VersionAccepted',
823
- },
824
- {
825
- type: 'event',
826
- anonymous: false,
827
- inputs: [
828
- {
829
- name: 'version',
830
- internalType: 'uint16',
831
- type: 'uint16',
832
- indexed: false,
833
- },
834
- ],
835
- name: 'VersionRemoved',
836
- },
837
- {
838
- type: 'error',
839
- inputs: [{ name: 'length', internalType: 'uint256', type: 'uint256' }],
840
- name: 'InputLengthTooShort',
841
- },
842
- {
843
- type: 'error',
844
- inputs: [{ name: 'version', internalType: 'uint16', type: 'uint16' }],
845
- name: 'InvalidInputVersion',
846
- },
847
- ];
848
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
849
- // VoucherEip712Checker
850
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
851
- exports.voucherEip712CheckerAbi = [
852
- {
853
- type: 'function',
854
- inputs: [
855
- {
856
- name: 'voucher',
857
- internalType: 'struct AllowanceVoucher',
858
- type: 'tuple',
859
- components: [
860
- { name: 'sessionNonce', internalType: 'bytes32', type: 'bytes32' },
861
- {
862
- name: 'verifyingContract',
863
- internalType: 'address',
864
- type: 'address',
865
- },
866
- { name: 'callFunction', internalType: 'bytes4', type: 'bytes4' },
867
- { name: 'sharerArgData', internalType: 'bytes', type: 'bytes' },
868
- ],
869
- },
870
- ],
871
- name: 'allowanceVoucherDigest',
872
- outputs: [{ name: '', internalType: 'bytes32', type: 'bytes32' }],
873
- stateMutability: 'view',
874
- },
875
- {
876
- type: 'function',
877
- inputs: [],
878
- name: 'eip712Domain',
879
- outputs: [
880
- { name: 'fields', internalType: 'bytes1', type: 'bytes1' },
881
- { name: 'name', internalType: 'string', type: 'string' },
882
- { name: 'version', internalType: 'string', type: 'string' },
883
- { name: 'chainId', internalType: 'uint256', type: 'uint256' },
884
- { name: 'verifyingContract', internalType: 'address', type: 'address' },
885
- { name: 'salt', internalType: 'bytes32', type: 'bytes32' },
886
- { name: 'extensions', internalType: 'uint256[]', type: 'uint256[]' },
887
- ],
888
- stateMutability: 'view',
889
- },
890
- { type: 'event', anonymous: false, inputs: [], name: 'EIP712DomainChanged' },
891
- {
892
- type: 'event',
893
- anonymous: false,
894
- inputs: [
895
- {
896
- name: 'version',
897
- internalType: 'uint64',
898
- type: 'uint64',
899
- indexed: false,
900
- },
901
- ],
902
- name: 'Initialized',
903
- },
904
- { type: 'error', inputs: [], name: 'InvalidInitialization' },
905
- { type: 'error', inputs: [], name: 'NotInitializing' },
906
- ];
907
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlnaHRuaW5nLXByZXZpZXcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZ2VuZXJhdGVkL2FiaXMvbGlnaHRuaW5nLXByZXZpZXcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHNLQUFzSztBQUN0SyxZQUFZO0FBQ1osc0tBQXNLOzs7QUFFekosUUFBQSxZQUFZLEdBQUc7SUFDMUI7UUFDRSxJQUFJLEVBQUUsVUFBVTtRQUNoQixNQUFNLEVBQUUsRUFBRTtRQUNWLElBQUksRUFBRSxZQUFZO1FBQ2xCLE9BQU8sRUFBRTtZQUNQO2dCQUNFLElBQUksRUFBRSxFQUFFO2dCQUNSLFlBQVksRUFBRSxnQkFBZ0I7Z0JBQzlCLElBQUksRUFBRSxPQUFPO2dCQUNiLFVBQVUsRUFBRTtvQkFDVixFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO29CQUMvRCxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO2lCQUNoRTthQUNGO1NBQ0Y7UUFDRCxlQUFlLEVBQUUsTUFBTTtLQUN4QjtDQUNPLENBQUE7QUFFVixzS0FBc0s7QUFDdEssd0JBQXdCO0FBQ3hCLHNLQUFzSztBQUV6SixRQUFBLHdCQUF3QixHQUFHO0lBQ3RDO1FBQ0UsSUFBSSxFQUFFLFVBQVU7UUFDaEIsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsWUFBWSxFQUFFLHlCQUF5QjtnQkFDdkMsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsVUFBVSxFQUFFO29CQUNWLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7b0JBQ2xFO3dCQUNFLElBQUksRUFBRSxtQkFBbUI7d0JBQ3pCLFlBQVksRUFBRSxTQUFTO3dCQUN2QixJQUFJLEVB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RSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDckUsZUFBZSxFQUFFLFlBQVk7S0FDOUI7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUNsRSxJQUFJLEVBQUUsYUFBYTtRQUNuQixPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDckUsZUFBZSxFQUFFLFlBQVk7S0FDOUI7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLE1BQU0sRUFBRTtZQUNOLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDeEQsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUN2RCxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO1NBQzVEO1FBQ0QsSUFBSSxFQUFFLFNBQVM7UUFDZixPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDckUsZUFBZSxFQUFFLFlBQVk7S0FDOUI7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUNsRSxJQUFJLEVBQUUsYUFBYTtRQUNuQixPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDckUsZUFBZSxFQUFFLFNBQVM7S0FDM0I7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLE1BQU0sRUFBRTtZQUNOLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDeEQsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtZQUMzRCxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQ3ZELEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7U0FDbkU7UUFDRCxJQUFJLEVBQUUsV0FBVztRQUNqQixPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDckUsZUFBZSxFQUFFLFlBQVk7S0FDOUI7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLE1BQU0sRUFBRSxFQUFFO1FBQ1YsSUFBSSxFQUFFLGNBQWM7UUFDcEIsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzdELGVBQWUsRUFBRSxNQUFNO0tBQ3hCO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsVUFBVTtRQUNoQixNQUFNLEVBQUUsRUFBRTtRQUNWLElBQUksRUFBRSxjQUFjO1FBQ3BCLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUM3RCxlQUFlLEVBQUUsTUFBTTtLQUN4QjtJQUNEO1FBQ0UsSUFBSSxFQUFFLFVBQVU7UUFDaEIsTUFBTSxFQUFFO1lBQ04sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUNqRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFO1NBQ2pFO1FBQ0QsSUFBSSxFQUFFLFVBQVU7UUFDaEIsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ3RFLGVBQWUsRUFBRSxZQUFZO0tBQzlCO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsVUFBVTtRQUNoQixNQUFNLEVBQUU7WUFDTixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQzVELEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7WUFDaEUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtTQUMzRDtRQUNELElBQUksRUFBRSxVQUFVO1FBQ2hCLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUN0RSxlQUFlLEVBQUUsU0FBUztLQUMzQjtJQUNEO1FBQ0UsSUFBSSxFQUFFLFVBQVU7UUFDaEIsTUFBTSxFQUFFO1lBQ04sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRTtZQUM1RCxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO1NBQzNEO1FBQ0QsSUFBSSxFQUFFLGFBQWE7UUFDbkIsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQzFFLGVBQWUsRUFBRSxTQUFTO0tBQzNCO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsVUFBVTtRQUNoQixNQUFNLEVBQUU7WUFDTixFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFO1lBQzVELEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7U0FDM0Q7UUFDRCxJQUFJLEVBQUUsVUFBVTtRQUNoQixPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDdkUsZUFBZSxFQUFFLFNBQVM7S0FDM0I7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLE1BQU0sRUFBRTtZQUNOLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7WUFDNUQsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtTQUMzRDtRQUNELElBQUksRUFBRSxhQUFhO1FBQ25CLE9BQU8sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUMxRSxlQUFlLEVBQUUsU0FBUztLQUMzQjtJQUNEO1FBQ0UsSUFBSSxFQUFFLFVBQVU7UUFDaEIsTUFBTSxFQUFFLEVBQUU7UUFDVixJQUFJLEVBQUUsY0FBYztRQUNwQixPQUFPLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDN0QsZUFBZSxFQUFFLE1BQU07S0FDeEI7SUFDRDtRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLE1BQU0sRUFBRTtZQUNOLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDNUQsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtTQUM5RDtRQUNELElBQUksRUFBRSxnQkFBZ0I7UUFDdEIsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQzNELGVBQWUsRUFBRSxNQUFNO0tBQ3hCO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsVUFBVTtRQUNoQixNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDckUsSUFBSSxFQUFFLHVCQUF1QjtRQUM3QixPQUFPLEVBQUUsRUFBRTtRQUNYLGVBQWUsRUFBRSxZQUFZO0tBQzlCO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsVUFBVTtRQUNoQixNQUFNLEVBQUUsRUFBRTtRQUNWLElBQUksRUFBRSxNQUFNO1FBQ1osT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ2pFLGVBQWUsRUFBRSxNQUFNO0tBQ3hCO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsVUFBVTtRQUNoQixNQUFNLEVBQUUsRUFBRTtRQUNWLElBQUksRUFBRSxjQUFjO1FBQ3BCLE9BQU8sRUFBRSxFQUFFO1FBQ1gsZUFBZSxFQUFFLFlBQVk7S0FDOUI7SUFDRDtRQUNFLElBQUksRUFBRSxPQUFPO1FBQ2IsU0FBUyxFQUFFLEtBQUs7UUFDaEIsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsWUFBWSxFQUFFLFFBQVE7Z0JBQ3RCLElBQUksRUFBRSxRQUFRO2dCQUNkLE9BQU8sRUFBRSxLQUFLO2FBQ2Y7U0FDRjtRQUNELElBQUksRUFBRSxpQkFBaUI7S0FDeEI7SUFDRDtRQUNFLElBQUksRUFBRSxPQUFPO1FBQ2IsU0FBUyxFQUFFLEtBQUs7UUFDaEIsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsWUFBWSxFQUFFLFFBQVE7Z0JBQ3RCLElBQUksRUFBRSxRQUFRO2dCQUNkLE9BQU8sRUFBRSxLQUFLO2FBQ2Y7U0FDRjtRQUNELElBQUksRUFBRSxnQkFBZ0I7S0FDdkI7SUFDRDtRQUNFLElBQUksRUFBRSxPQUFPO1FBQ2IsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ3RFLElBQUksRUFBRSxxQkFBcUI7S0FDNUI7SUFDRDtRQUNFLElBQUksRUFBRSxPQUFPO1FBQ2IsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQ3JFLElBQUksRUFBRSxxQkFBcUI7S0FDNUI7Q0FDTyxDQUFBO0FBRVYsc0tBQXNLO0FBQ3RLLHVCQUF1QjtBQUN2QixzS0FBc0s7QUFFekosUUFBQSx1QkFBdUIsR0FBRztJQUNyQztRQUNFLElBQUksRUFBRSxVQUFVO1FBQ2hCLE1BQU0sRUFBRTtZQUNOO2dCQUNFLElBQUksRUFBRSxTQUFTO2dCQUNmLFlBQVksRUFBRSx5QkFBeUI7Z0JBQ3ZDLElBQUksRUFBRSxPQUFPO2dCQUNiLFVBQVUsRUFBRTtvQkFDVixFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO29CQUNsRTt3QkFDRSxJQUFJLEVBQUUsbUJBQW1CO3dCQUN6QixZQUFZLEVBQUUsU0FBUzt3QkFDdkIsSUFBSSxFQUFFLFNBQVM7cUJBQ2hCO29CQUNELEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7b0JBQ2hFLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUU7aUJBQ2hFO2FBQ0Y7U0FDRjtRQUNELElBQUksRUFBRSx3QkFBd0I7UUFDOUIsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ2pFLGVBQWUsRUFBRSxNQUFNO0tBQ3hCO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsVUFBVTtRQUNoQixNQUFNLEVBQUUsRUFBRTtRQUNWLElBQUksRUFBRSxjQUFjO1FBQ3BCLE9BQU8sRUFBRTtZQUNQLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7WUFDMUQsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUN4RCxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQzNELEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDN0QsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ3ZFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDMUQsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtTQUNyRTtRQUNELGVBQWUsRUFBRSxNQUFNO0tBQ3hCO0lBQ0QsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUU7SUFDNUU7UUFDRSxJQUFJLEVBQUUsT0FBTztRQUNiLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLE1BQU0sRUFBRTtZQUNOO2dCQUNFLElBQUksRUFBRSxTQUFTO2dCQUNmLFlBQVksRUFBRSxRQUFRO2dCQUN0QixJQUFJLEVBQUUsUUFBUTtnQkFDZCxPQUFPLEVBQUUsS0FBSzthQUNmO1NBQ0Y7UUFDRCxJQUFJLEVBQUUsYUFBYTtLQUNwQjtJQUNELEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSx1QkFBdUIsRUFBRTtJQUM1RCxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7Q0FDOUMsQ0FBQSJ9