@zkpassport/sdk 0.10.0 → 0.11.0-beta.2
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/dist/cjs/index.cjs +386 -854
- package/dist/cjs/public-input-checker.cjs +164 -84
- package/dist/cjs/public-input-checker.d.cts +1 -0
- package/dist/cjs/solidity-verifier.cjs +218 -767
- package/dist/cjs/types.d.cts +11 -2
- package/dist/esm/{chunk-O7ZONMCQ.js → chunk-6IK5VUOR.js} +168 -87
- package/dist/esm/chunk-CFGZMKF7.js +2019 -0
- package/dist/esm/index.js +6 -5
- package/dist/esm/public-input-checker.d.ts +1 -0
- package/dist/esm/public-input-checker.js +1 -1
- package/dist/esm/solidity-verifier.js +1 -1
- package/dist/esm/types.d.ts +11 -2
- package/package.json +3 -3
- package/dist/esm/chunk-I7PGO4XY.js +0 -2567
|
@@ -1,2567 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
DEFAULT_VALIDITY
|
|
3
|
-
} from "./chunk-JG37KYXW.js";
|
|
4
|
-
|
|
5
|
-
// src/solidity-verifier.ts
|
|
6
|
-
import {
|
|
7
|
-
formatBoundData,
|
|
8
|
-
getCommittedInputCount,
|
|
9
|
-
getNumberOfPublicInputs,
|
|
10
|
-
getParamCommitmentsFromOuterProof,
|
|
11
|
-
getProofData,
|
|
12
|
-
numberToBytesBE,
|
|
13
|
-
ProofType,
|
|
14
|
-
rightPadArrayWithZeros
|
|
15
|
-
} from "@zkpassport/utils";
|
|
16
|
-
import { sha256 } from "@noble/hashes/sha2";
|
|
17
|
-
import { bytesToHex, hexToBytes } from "@noble/hashes/utils";
|
|
18
|
-
|
|
19
|
-
// src/assets/abi/ZKPassportVerifier.json
|
|
20
|
-
var ZKPassportVerifier_default = {
|
|
21
|
-
abi: [
|
|
22
|
-
{
|
|
23
|
-
type: "constructor",
|
|
24
|
-
inputs: [{ name: "_rootRegistry", type: "address", internalType: "address" }],
|
|
25
|
-
stateMutability: "nonpayable"
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
type: "function",
|
|
29
|
-
name: "CERTIFICATE_REGISTRY_ID",
|
|
30
|
-
inputs: [],
|
|
31
|
-
outputs: [{ name: "", type: "bytes32", internalType: "bytes32" }],
|
|
32
|
-
stateMutability: "view"
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
type: "function",
|
|
36
|
-
name: "CIRCUIT_REGISTRY_ID",
|
|
37
|
-
inputs: [],
|
|
38
|
-
outputs: [{ name: "", type: "bytes32", internalType: "bytes32" }],
|
|
39
|
-
stateMutability: "view"
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
type: "function",
|
|
43
|
-
name: "SANCTIONS_REGISTRY_ID",
|
|
44
|
-
inputs: [],
|
|
45
|
-
outputs: [{ name: "", type: "bytes32", internalType: "bytes32" }],
|
|
46
|
-
stateMutability: "view"
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
type: "function",
|
|
50
|
-
name: "addVerifiers",
|
|
51
|
-
inputs: [
|
|
52
|
-
{ name: "vkeyHashes", type: "bytes32[]", internalType: "bytes32[]" },
|
|
53
|
-
{ name: "verifiers", type: "address[]", internalType: "address[]" }
|
|
54
|
-
],
|
|
55
|
-
outputs: [],
|
|
56
|
-
stateMutability: "nonpayable"
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
type: "function",
|
|
60
|
-
name: "admin",
|
|
61
|
-
inputs: [],
|
|
62
|
-
outputs: [{ name: "", type: "address", internalType: "address" }],
|
|
63
|
-
stateMutability: "view"
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
type: "function",
|
|
67
|
-
name: "enforceSanctionsRoot",
|
|
68
|
-
inputs: [
|
|
69
|
-
{
|
|
70
|
-
name: "commitments",
|
|
71
|
-
type: "tuple",
|
|
72
|
-
internalType: "struct Commitments",
|
|
73
|
-
components: [
|
|
74
|
-
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
75
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
76
|
-
]
|
|
77
|
-
}
|
|
78
|
-
],
|
|
79
|
-
outputs: [],
|
|
80
|
-
stateMutability: "view"
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
type: "function",
|
|
84
|
-
name: "getBoundData",
|
|
85
|
-
inputs: [
|
|
86
|
-
{
|
|
87
|
-
name: "commitments",
|
|
88
|
-
type: "tuple",
|
|
89
|
-
internalType: "struct Commitments",
|
|
90
|
-
components: [
|
|
91
|
-
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
92
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
93
|
-
]
|
|
94
|
-
}
|
|
95
|
-
],
|
|
96
|
-
outputs: [
|
|
97
|
-
{
|
|
98
|
-
name: "boundData",
|
|
99
|
-
type: "tuple",
|
|
100
|
-
internalType: "struct BoundData",
|
|
101
|
-
components: [
|
|
102
|
-
{ name: "senderAddress", type: "address", internalType: "address" },
|
|
103
|
-
{ name: "chainId", type: "uint256", internalType: "uint256" },
|
|
104
|
-
{ name: "customData", type: "string", internalType: "string" }
|
|
105
|
-
]
|
|
106
|
-
}
|
|
107
|
-
],
|
|
108
|
-
stateMutability: "pure"
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
type: "function",
|
|
112
|
-
name: "getDisclosedData",
|
|
113
|
-
inputs: [
|
|
114
|
-
{
|
|
115
|
-
name: "commitments",
|
|
116
|
-
type: "tuple",
|
|
117
|
-
internalType: "struct Commitments",
|
|
118
|
-
components: [
|
|
119
|
-
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
120
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
121
|
-
]
|
|
122
|
-
},
|
|
123
|
-
{ name: "isIDCard", type: "bool", internalType: "bool" }
|
|
124
|
-
],
|
|
125
|
-
outputs: [
|
|
126
|
-
{
|
|
127
|
-
name: "disclosedData",
|
|
128
|
-
type: "tuple",
|
|
129
|
-
internalType: "struct DisclosedData",
|
|
130
|
-
components: [
|
|
131
|
-
{ name: "name", type: "string", internalType: "string" },
|
|
132
|
-
{ name: "issuingCountry", type: "string", internalType: "string" },
|
|
133
|
-
{ name: "nationality", type: "string", internalType: "string" },
|
|
134
|
-
{ name: "gender", type: "string", internalType: "string" },
|
|
135
|
-
{ name: "birthDate", type: "string", internalType: "string" },
|
|
136
|
-
{ name: "expiryDate", type: "string", internalType: "string" },
|
|
137
|
-
{ name: "documentNumber", type: "string", internalType: "string" },
|
|
138
|
-
{ name: "documentType", type: "string", internalType: "string" }
|
|
139
|
-
]
|
|
140
|
-
}
|
|
141
|
-
],
|
|
142
|
-
stateMutability: "pure"
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
type: "function",
|
|
146
|
-
name: "isAgeAbove",
|
|
147
|
-
inputs: [
|
|
148
|
-
{ name: "minAge", type: "uint8", internalType: "uint8" },
|
|
149
|
-
{
|
|
150
|
-
name: "commitments",
|
|
151
|
-
type: "tuple",
|
|
152
|
-
internalType: "struct Commitments",
|
|
153
|
-
components: [
|
|
154
|
-
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
155
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
156
|
-
]
|
|
157
|
-
},
|
|
158
|
-
{
|
|
159
|
-
name: "serviceConfig",
|
|
160
|
-
type: "tuple",
|
|
161
|
-
internalType: "struct ServiceConfig",
|
|
162
|
-
components: [
|
|
163
|
-
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
164
|
-
{ name: "domain", type: "string", internalType: "string" },
|
|
165
|
-
{ name: "scope", type: "string", internalType: "string" },
|
|
166
|
-
{ name: "devMode", type: "bool", internalType: "bool" }
|
|
167
|
-
]
|
|
168
|
-
}
|
|
169
|
-
],
|
|
170
|
-
outputs: [{ name: "", type: "bool", internalType: "bool" }],
|
|
171
|
-
stateMutability: "view"
|
|
172
|
-
},
|
|
173
|
-
{
|
|
174
|
-
type: "function",
|
|
175
|
-
name: "isAgeAboveOrEqual",
|
|
176
|
-
inputs: [
|
|
177
|
-
{ name: "minAge", type: "uint8", internalType: "uint8" },
|
|
178
|
-
{
|
|
179
|
-
name: "commitments",
|
|
180
|
-
type: "tuple",
|
|
181
|
-
internalType: "struct Commitments",
|
|
182
|
-
components: [
|
|
183
|
-
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
184
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
185
|
-
]
|
|
186
|
-
},
|
|
187
|
-
{
|
|
188
|
-
name: "serviceConfig",
|
|
189
|
-
type: "tuple",
|
|
190
|
-
internalType: "struct ServiceConfig",
|
|
191
|
-
components: [
|
|
192
|
-
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
193
|
-
{ name: "domain", type: "string", internalType: "string" },
|
|
194
|
-
{ name: "scope", type: "string", internalType: "string" },
|
|
195
|
-
{ name: "devMode", type: "bool", internalType: "bool" }
|
|
196
|
-
]
|
|
197
|
-
}
|
|
198
|
-
],
|
|
199
|
-
outputs: [{ name: "", type: "bool", internalType: "bool" }],
|
|
200
|
-
stateMutability: "view"
|
|
201
|
-
},
|
|
202
|
-
{
|
|
203
|
-
type: "function",
|
|
204
|
-
name: "isAgeBelow",
|
|
205
|
-
inputs: [
|
|
206
|
-
{ name: "maxAge", type: "uint8", internalType: "uint8" },
|
|
207
|
-
{
|
|
208
|
-
name: "commitments",
|
|
209
|
-
type: "tuple",
|
|
210
|
-
internalType: "struct Commitments",
|
|
211
|
-
components: [
|
|
212
|
-
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
213
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
214
|
-
]
|
|
215
|
-
},
|
|
216
|
-
{
|
|
217
|
-
name: "serviceConfig",
|
|
218
|
-
type: "tuple",
|
|
219
|
-
internalType: "struct ServiceConfig",
|
|
220
|
-
components: [
|
|
221
|
-
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
222
|
-
{ name: "domain", type: "string", internalType: "string" },
|
|
223
|
-
{ name: "scope", type: "string", internalType: "string" },
|
|
224
|
-
{ name: "devMode", type: "bool", internalType: "bool" }
|
|
225
|
-
]
|
|
226
|
-
}
|
|
227
|
-
],
|
|
228
|
-
outputs: [{ name: "", type: "bool", internalType: "bool" }],
|
|
229
|
-
stateMutability: "view"
|
|
230
|
-
},
|
|
231
|
-
{
|
|
232
|
-
type: "function",
|
|
233
|
-
name: "isAgeBelowOrEqual",
|
|
234
|
-
inputs: [
|
|
235
|
-
{ name: "maxAge", type: "uint8", internalType: "uint8" },
|
|
236
|
-
{
|
|
237
|
-
name: "commitments",
|
|
238
|
-
type: "tuple",
|
|
239
|
-
internalType: "struct Commitments",
|
|
240
|
-
components: [
|
|
241
|
-
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
242
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
243
|
-
]
|
|
244
|
-
},
|
|
245
|
-
{
|
|
246
|
-
name: "serviceConfig",
|
|
247
|
-
type: "tuple",
|
|
248
|
-
internalType: "struct ServiceConfig",
|
|
249
|
-
components: [
|
|
250
|
-
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
251
|
-
{ name: "domain", type: "string", internalType: "string" },
|
|
252
|
-
{ name: "scope", type: "string", internalType: "string" },
|
|
253
|
-
{ name: "devMode", type: "bool", internalType: "bool" }
|
|
254
|
-
]
|
|
255
|
-
}
|
|
256
|
-
],
|
|
257
|
-
outputs: [{ name: "", type: "bool", internalType: "bool" }],
|
|
258
|
-
stateMutability: "view"
|
|
259
|
-
},
|
|
260
|
-
{
|
|
261
|
-
type: "function",
|
|
262
|
-
name: "isAgeBetween",
|
|
263
|
-
inputs: [
|
|
264
|
-
{ name: "minAge", type: "uint8", internalType: "uint8" },
|
|
265
|
-
{ name: "maxAge", type: "uint8", internalType: "uint8" },
|
|
266
|
-
{
|
|
267
|
-
name: "commitments",
|
|
268
|
-
type: "tuple",
|
|
269
|
-
internalType: "struct Commitments",
|
|
270
|
-
components: [
|
|
271
|
-
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
272
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
273
|
-
]
|
|
274
|
-
},
|
|
275
|
-
{
|
|
276
|
-
name: "serviceConfig",
|
|
277
|
-
type: "tuple",
|
|
278
|
-
internalType: "struct ServiceConfig",
|
|
279
|
-
components: [
|
|
280
|
-
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
281
|
-
{ name: "domain", type: "string", internalType: "string" },
|
|
282
|
-
{ name: "scope", type: "string", internalType: "string" },
|
|
283
|
-
{ name: "devMode", type: "bool", internalType: "bool" }
|
|
284
|
-
]
|
|
285
|
-
}
|
|
286
|
-
],
|
|
287
|
-
outputs: [{ name: "", type: "bool", internalType: "bool" }],
|
|
288
|
-
stateMutability: "view"
|
|
289
|
-
},
|
|
290
|
-
{
|
|
291
|
-
type: "function",
|
|
292
|
-
name: "isAgeEqual",
|
|
293
|
-
inputs: [
|
|
294
|
-
{ name: "age", type: "uint8", internalType: "uint8" },
|
|
295
|
-
{
|
|
296
|
-
name: "commitments",
|
|
297
|
-
type: "tuple",
|
|
298
|
-
internalType: "struct Commitments",
|
|
299
|
-
components: [
|
|
300
|
-
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
301
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
302
|
-
]
|
|
303
|
-
},
|
|
304
|
-
{
|
|
305
|
-
name: "serviceConfig",
|
|
306
|
-
type: "tuple",
|
|
307
|
-
internalType: "struct ServiceConfig",
|
|
308
|
-
components: [
|
|
309
|
-
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
310
|
-
{ name: "domain", type: "string", internalType: "string" },
|
|
311
|
-
{ name: "scope", type: "string", internalType: "string" },
|
|
312
|
-
{ name: "devMode", type: "bool", internalType: "bool" }
|
|
313
|
-
]
|
|
314
|
-
}
|
|
315
|
-
],
|
|
316
|
-
outputs: [{ name: "", type: "bool", internalType: "bool" }],
|
|
317
|
-
stateMutability: "view"
|
|
318
|
-
},
|
|
319
|
-
{
|
|
320
|
-
type: "function",
|
|
321
|
-
name: "isBirthdateAfter",
|
|
322
|
-
inputs: [
|
|
323
|
-
{ name: "minDate", type: "uint256", internalType: "uint256" },
|
|
324
|
-
{
|
|
325
|
-
name: "commitments",
|
|
326
|
-
type: "tuple",
|
|
327
|
-
internalType: "struct Commitments",
|
|
328
|
-
components: [
|
|
329
|
-
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
330
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
331
|
-
]
|
|
332
|
-
},
|
|
333
|
-
{
|
|
334
|
-
name: "serviceConfig",
|
|
335
|
-
type: "tuple",
|
|
336
|
-
internalType: "struct ServiceConfig",
|
|
337
|
-
components: [
|
|
338
|
-
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
339
|
-
{ name: "domain", type: "string", internalType: "string" },
|
|
340
|
-
{ name: "scope", type: "string", internalType: "string" },
|
|
341
|
-
{ name: "devMode", type: "bool", internalType: "bool" }
|
|
342
|
-
]
|
|
343
|
-
}
|
|
344
|
-
],
|
|
345
|
-
outputs: [{ name: "", type: "bool", internalType: "bool" }],
|
|
346
|
-
stateMutability: "view"
|
|
347
|
-
},
|
|
348
|
-
{
|
|
349
|
-
type: "function",
|
|
350
|
-
name: "isBirthdateAfterOrEqual",
|
|
351
|
-
inputs: [
|
|
352
|
-
{ name: "minDate", type: "uint256", internalType: "uint256" },
|
|
353
|
-
{
|
|
354
|
-
name: "commitments",
|
|
355
|
-
type: "tuple",
|
|
356
|
-
internalType: "struct Commitments",
|
|
357
|
-
components: [
|
|
358
|
-
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
359
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
360
|
-
]
|
|
361
|
-
},
|
|
362
|
-
{
|
|
363
|
-
name: "serviceConfig",
|
|
364
|
-
type: "tuple",
|
|
365
|
-
internalType: "struct ServiceConfig",
|
|
366
|
-
components: [
|
|
367
|
-
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
368
|
-
{ name: "domain", type: "string", internalType: "string" },
|
|
369
|
-
{ name: "scope", type: "string", internalType: "string" },
|
|
370
|
-
{ name: "devMode", type: "bool", internalType: "bool" }
|
|
371
|
-
]
|
|
372
|
-
}
|
|
373
|
-
],
|
|
374
|
-
outputs: [{ name: "", type: "bool", internalType: "bool" }],
|
|
375
|
-
stateMutability: "view"
|
|
376
|
-
},
|
|
377
|
-
{
|
|
378
|
-
type: "function",
|
|
379
|
-
name: "isBirthdateBefore",
|
|
380
|
-
inputs: [
|
|
381
|
-
{ name: "maxDate", type: "uint256", internalType: "uint256" },
|
|
382
|
-
{
|
|
383
|
-
name: "commitments",
|
|
384
|
-
type: "tuple",
|
|
385
|
-
internalType: "struct Commitments",
|
|
386
|
-
components: [
|
|
387
|
-
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
388
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
389
|
-
]
|
|
390
|
-
},
|
|
391
|
-
{
|
|
392
|
-
name: "serviceConfig",
|
|
393
|
-
type: "tuple",
|
|
394
|
-
internalType: "struct ServiceConfig",
|
|
395
|
-
components: [
|
|
396
|
-
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
397
|
-
{ name: "domain", type: "string", internalType: "string" },
|
|
398
|
-
{ name: "scope", type: "string", internalType: "string" },
|
|
399
|
-
{ name: "devMode", type: "bool", internalType: "bool" }
|
|
400
|
-
]
|
|
401
|
-
}
|
|
402
|
-
],
|
|
403
|
-
outputs: [{ name: "", type: "bool", internalType: "bool" }],
|
|
404
|
-
stateMutability: "view"
|
|
405
|
-
},
|
|
406
|
-
{
|
|
407
|
-
type: "function",
|
|
408
|
-
name: "isBirthdateBeforeOrEqual",
|
|
409
|
-
inputs: [
|
|
410
|
-
{ name: "maxDate", type: "uint256", internalType: "uint256" },
|
|
411
|
-
{
|
|
412
|
-
name: "commitments",
|
|
413
|
-
type: "tuple",
|
|
414
|
-
internalType: "struct Commitments",
|
|
415
|
-
components: [
|
|
416
|
-
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
417
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
418
|
-
]
|
|
419
|
-
},
|
|
420
|
-
{
|
|
421
|
-
name: "serviceConfig",
|
|
422
|
-
type: "tuple",
|
|
423
|
-
internalType: "struct ServiceConfig",
|
|
424
|
-
components: [
|
|
425
|
-
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
426
|
-
{ name: "domain", type: "string", internalType: "string" },
|
|
427
|
-
{ name: "scope", type: "string", internalType: "string" },
|
|
428
|
-
{ name: "devMode", type: "bool", internalType: "bool" }
|
|
429
|
-
]
|
|
430
|
-
}
|
|
431
|
-
],
|
|
432
|
-
outputs: [{ name: "", type: "bool", internalType: "bool" }],
|
|
433
|
-
stateMutability: "view"
|
|
434
|
-
},
|
|
435
|
-
{
|
|
436
|
-
type: "function",
|
|
437
|
-
name: "isBirthdateBetween",
|
|
438
|
-
inputs: [
|
|
439
|
-
{ name: "minDate", type: "uint256", internalType: "uint256" },
|
|
440
|
-
{ name: "maxDate", type: "uint256", internalType: "uint256" },
|
|
441
|
-
{
|
|
442
|
-
name: "commitments",
|
|
443
|
-
type: "tuple",
|
|
444
|
-
internalType: "struct Commitments",
|
|
445
|
-
components: [
|
|
446
|
-
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
447
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
448
|
-
]
|
|
449
|
-
},
|
|
450
|
-
{
|
|
451
|
-
name: "serviceConfig",
|
|
452
|
-
type: "tuple",
|
|
453
|
-
internalType: "struct ServiceConfig",
|
|
454
|
-
components: [
|
|
455
|
-
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
456
|
-
{ name: "domain", type: "string", internalType: "string" },
|
|
457
|
-
{ name: "scope", type: "string", internalType: "string" },
|
|
458
|
-
{ name: "devMode", type: "bool", internalType: "bool" }
|
|
459
|
-
]
|
|
460
|
-
}
|
|
461
|
-
],
|
|
462
|
-
outputs: [{ name: "", type: "bool", internalType: "bool" }],
|
|
463
|
-
stateMutability: "view"
|
|
464
|
-
},
|
|
465
|
-
{
|
|
466
|
-
type: "function",
|
|
467
|
-
name: "isBirthdateEqual",
|
|
468
|
-
inputs: [
|
|
469
|
-
{ name: "date", type: "uint256", internalType: "uint256" },
|
|
470
|
-
{
|
|
471
|
-
name: "commitments",
|
|
472
|
-
type: "tuple",
|
|
473
|
-
internalType: "struct Commitments",
|
|
474
|
-
components: [
|
|
475
|
-
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
476
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
477
|
-
]
|
|
478
|
-
},
|
|
479
|
-
{
|
|
480
|
-
name: "serviceConfig",
|
|
481
|
-
type: "tuple",
|
|
482
|
-
internalType: "struct ServiceConfig",
|
|
483
|
-
components: [
|
|
484
|
-
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
485
|
-
{ name: "domain", type: "string", internalType: "string" },
|
|
486
|
-
{ name: "scope", type: "string", internalType: "string" },
|
|
487
|
-
{ name: "devMode", type: "bool", internalType: "bool" }
|
|
488
|
-
]
|
|
489
|
-
}
|
|
490
|
-
],
|
|
491
|
-
outputs: [{ name: "", type: "bool", internalType: "bool" }],
|
|
492
|
-
stateMutability: "view"
|
|
493
|
-
},
|
|
494
|
-
{
|
|
495
|
-
type: "function",
|
|
496
|
-
name: "isExpiryDateAfter",
|
|
497
|
-
inputs: [
|
|
498
|
-
{ name: "minDate", type: "uint256", internalType: "uint256" },
|
|
499
|
-
{
|
|
500
|
-
name: "commitments",
|
|
501
|
-
type: "tuple",
|
|
502
|
-
internalType: "struct Commitments",
|
|
503
|
-
components: [
|
|
504
|
-
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
505
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
506
|
-
]
|
|
507
|
-
},
|
|
508
|
-
{
|
|
509
|
-
name: "serviceConfig",
|
|
510
|
-
type: "tuple",
|
|
511
|
-
internalType: "struct ServiceConfig",
|
|
512
|
-
components: [
|
|
513
|
-
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
514
|
-
{ name: "domain", type: "string", internalType: "string" },
|
|
515
|
-
{ name: "scope", type: "string", internalType: "string" },
|
|
516
|
-
{ name: "devMode", type: "bool", internalType: "bool" }
|
|
517
|
-
]
|
|
518
|
-
}
|
|
519
|
-
],
|
|
520
|
-
outputs: [{ name: "", type: "bool", internalType: "bool" }],
|
|
521
|
-
stateMutability: "view"
|
|
522
|
-
},
|
|
523
|
-
{
|
|
524
|
-
type: "function",
|
|
525
|
-
name: "isExpiryDateAfterOrEqual",
|
|
526
|
-
inputs: [
|
|
527
|
-
{ name: "minDate", type: "uint256", internalType: "uint256" },
|
|
528
|
-
{
|
|
529
|
-
name: "commitments",
|
|
530
|
-
type: "tuple",
|
|
531
|
-
internalType: "struct Commitments",
|
|
532
|
-
components: [
|
|
533
|
-
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
534
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
535
|
-
]
|
|
536
|
-
},
|
|
537
|
-
{
|
|
538
|
-
name: "serviceConfig",
|
|
539
|
-
type: "tuple",
|
|
540
|
-
internalType: "struct ServiceConfig",
|
|
541
|
-
components: [
|
|
542
|
-
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
543
|
-
{ name: "domain", type: "string", internalType: "string" },
|
|
544
|
-
{ name: "scope", type: "string", internalType: "string" },
|
|
545
|
-
{ name: "devMode", type: "bool", internalType: "bool" }
|
|
546
|
-
]
|
|
547
|
-
}
|
|
548
|
-
],
|
|
549
|
-
outputs: [{ name: "", type: "bool", internalType: "bool" }],
|
|
550
|
-
stateMutability: "view"
|
|
551
|
-
},
|
|
552
|
-
{
|
|
553
|
-
type: "function",
|
|
554
|
-
name: "isExpiryDateBefore",
|
|
555
|
-
inputs: [
|
|
556
|
-
{ name: "maxDate", type: "uint256", internalType: "uint256" },
|
|
557
|
-
{
|
|
558
|
-
name: "commitments",
|
|
559
|
-
type: "tuple",
|
|
560
|
-
internalType: "struct Commitments",
|
|
561
|
-
components: [
|
|
562
|
-
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
563
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
564
|
-
]
|
|
565
|
-
},
|
|
566
|
-
{
|
|
567
|
-
name: "serviceConfig",
|
|
568
|
-
type: "tuple",
|
|
569
|
-
internalType: "struct ServiceConfig",
|
|
570
|
-
components: [
|
|
571
|
-
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
572
|
-
{ name: "domain", type: "string", internalType: "string" },
|
|
573
|
-
{ name: "scope", type: "string", internalType: "string" },
|
|
574
|
-
{ name: "devMode", type: "bool", internalType: "bool" }
|
|
575
|
-
]
|
|
576
|
-
}
|
|
577
|
-
],
|
|
578
|
-
outputs: [{ name: "", type: "bool", internalType: "bool" }],
|
|
579
|
-
stateMutability: "view"
|
|
580
|
-
},
|
|
581
|
-
{
|
|
582
|
-
type: "function",
|
|
583
|
-
name: "isExpiryDateBeforeOrEqual",
|
|
584
|
-
inputs: [
|
|
585
|
-
{ name: "maxDate", type: "uint256", internalType: "uint256" },
|
|
586
|
-
{
|
|
587
|
-
name: "commitments",
|
|
588
|
-
type: "tuple",
|
|
589
|
-
internalType: "struct Commitments",
|
|
590
|
-
components: [
|
|
591
|
-
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
592
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
593
|
-
]
|
|
594
|
-
},
|
|
595
|
-
{
|
|
596
|
-
name: "serviceConfig",
|
|
597
|
-
type: "tuple",
|
|
598
|
-
internalType: "struct ServiceConfig",
|
|
599
|
-
components: [
|
|
600
|
-
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
601
|
-
{ name: "domain", type: "string", internalType: "string" },
|
|
602
|
-
{ name: "scope", type: "string", internalType: "string" },
|
|
603
|
-
{ name: "devMode", type: "bool", internalType: "bool" }
|
|
604
|
-
]
|
|
605
|
-
}
|
|
606
|
-
],
|
|
607
|
-
outputs: [{ name: "", type: "bool", internalType: "bool" }],
|
|
608
|
-
stateMutability: "view"
|
|
609
|
-
},
|
|
610
|
-
{
|
|
611
|
-
type: "function",
|
|
612
|
-
name: "isExpiryDateBetween",
|
|
613
|
-
inputs: [
|
|
614
|
-
{ name: "minDate", type: "uint256", internalType: "uint256" },
|
|
615
|
-
{ name: "maxDate", type: "uint256", internalType: "uint256" },
|
|
616
|
-
{
|
|
617
|
-
name: "commitments",
|
|
618
|
-
type: "tuple",
|
|
619
|
-
internalType: "struct Commitments",
|
|
620
|
-
components: [
|
|
621
|
-
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
622
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
623
|
-
]
|
|
624
|
-
},
|
|
625
|
-
{
|
|
626
|
-
name: "serviceConfig",
|
|
627
|
-
type: "tuple",
|
|
628
|
-
internalType: "struct ServiceConfig",
|
|
629
|
-
components: [
|
|
630
|
-
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
631
|
-
{ name: "domain", type: "string", internalType: "string" },
|
|
632
|
-
{ name: "scope", type: "string", internalType: "string" },
|
|
633
|
-
{ name: "devMode", type: "bool", internalType: "bool" }
|
|
634
|
-
]
|
|
635
|
-
}
|
|
636
|
-
],
|
|
637
|
-
outputs: [{ name: "", type: "bool", internalType: "bool" }],
|
|
638
|
-
stateMutability: "view"
|
|
639
|
-
},
|
|
640
|
-
{
|
|
641
|
-
type: "function",
|
|
642
|
-
name: "isExpiryDateEqual",
|
|
643
|
-
inputs: [
|
|
644
|
-
{ name: "date", type: "uint256", internalType: "uint256" },
|
|
645
|
-
{
|
|
646
|
-
name: "commitments",
|
|
647
|
-
type: "tuple",
|
|
648
|
-
internalType: "struct Commitments",
|
|
649
|
-
components: [
|
|
650
|
-
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
651
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
652
|
-
]
|
|
653
|
-
},
|
|
654
|
-
{
|
|
655
|
-
name: "serviceConfig",
|
|
656
|
-
type: "tuple",
|
|
657
|
-
internalType: "struct ServiceConfig",
|
|
658
|
-
components: [
|
|
659
|
-
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
660
|
-
{ name: "domain", type: "string", internalType: "string" },
|
|
661
|
-
{ name: "scope", type: "string", internalType: "string" },
|
|
662
|
-
{ name: "devMode", type: "bool", internalType: "bool" }
|
|
663
|
-
]
|
|
664
|
-
}
|
|
665
|
-
],
|
|
666
|
-
outputs: [{ name: "", type: "bool", internalType: "bool" }],
|
|
667
|
-
stateMutability: "view"
|
|
668
|
-
},
|
|
669
|
-
{
|
|
670
|
-
type: "function",
|
|
671
|
-
name: "isFaceMatchVerified",
|
|
672
|
-
inputs: [
|
|
673
|
-
{ name: "faceMatchMode", type: "uint8", internalType: "enum FaceMatchMode" },
|
|
674
|
-
{ name: "os", type: "uint8", internalType: "enum OS" },
|
|
675
|
-
{
|
|
676
|
-
name: "commitments",
|
|
677
|
-
type: "tuple",
|
|
678
|
-
internalType: "struct Commitments",
|
|
679
|
-
components: [
|
|
680
|
-
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
681
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
682
|
-
]
|
|
683
|
-
},
|
|
684
|
-
{
|
|
685
|
-
name: "serviceConfig",
|
|
686
|
-
type: "tuple",
|
|
687
|
-
internalType: "struct ServiceConfig",
|
|
688
|
-
components: [
|
|
689
|
-
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
690
|
-
{ name: "domain", type: "string", internalType: "string" },
|
|
691
|
-
{ name: "scope", type: "string", internalType: "string" },
|
|
692
|
-
{ name: "devMode", type: "bool", internalType: "bool" }
|
|
693
|
-
]
|
|
694
|
-
}
|
|
695
|
-
],
|
|
696
|
-
outputs: [{ name: "", type: "bool", internalType: "bool" }],
|
|
697
|
-
stateMutability: "pure"
|
|
698
|
-
},
|
|
699
|
-
{
|
|
700
|
-
type: "function",
|
|
701
|
-
name: "isIssuingCountryIn",
|
|
702
|
-
inputs: [
|
|
703
|
-
{ name: "countryList", type: "string[]", internalType: "string[]" },
|
|
704
|
-
{
|
|
705
|
-
name: "commitments",
|
|
706
|
-
type: "tuple",
|
|
707
|
-
internalType: "struct Commitments",
|
|
708
|
-
components: [
|
|
709
|
-
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
710
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
711
|
-
]
|
|
712
|
-
}
|
|
713
|
-
],
|
|
714
|
-
outputs: [{ name: "", type: "bool", internalType: "bool" }],
|
|
715
|
-
stateMutability: "pure"
|
|
716
|
-
},
|
|
717
|
-
{
|
|
718
|
-
type: "function",
|
|
719
|
-
name: "isIssuingCountryOut",
|
|
720
|
-
inputs: [
|
|
721
|
-
{ name: "countryList", type: "string[]", internalType: "string[]" },
|
|
722
|
-
{
|
|
723
|
-
name: "commitments",
|
|
724
|
-
type: "tuple",
|
|
725
|
-
internalType: "struct Commitments",
|
|
726
|
-
components: [
|
|
727
|
-
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
728
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
729
|
-
]
|
|
730
|
-
}
|
|
731
|
-
],
|
|
732
|
-
outputs: [{ name: "", type: "bool", internalType: "bool" }],
|
|
733
|
-
stateMutability: "pure"
|
|
734
|
-
},
|
|
735
|
-
{
|
|
736
|
-
type: "function",
|
|
737
|
-
name: "isNationalityIn",
|
|
738
|
-
inputs: [
|
|
739
|
-
{ name: "countryList", type: "string[]", internalType: "string[]" },
|
|
740
|
-
{
|
|
741
|
-
name: "commitments",
|
|
742
|
-
type: "tuple",
|
|
743
|
-
internalType: "struct Commitments",
|
|
744
|
-
components: [
|
|
745
|
-
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
746
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
747
|
-
]
|
|
748
|
-
}
|
|
749
|
-
],
|
|
750
|
-
outputs: [{ name: "", type: "bool", internalType: "bool" }],
|
|
751
|
-
stateMutability: "pure"
|
|
752
|
-
},
|
|
753
|
-
{
|
|
754
|
-
type: "function",
|
|
755
|
-
name: "isNationalityOut",
|
|
756
|
-
inputs: [
|
|
757
|
-
{ name: "countryList", type: "string[]", internalType: "string[]" },
|
|
758
|
-
{
|
|
759
|
-
name: "commitments",
|
|
760
|
-
type: "tuple",
|
|
761
|
-
internalType: "struct Commitments",
|
|
762
|
-
components: [
|
|
763
|
-
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
764
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
765
|
-
]
|
|
766
|
-
}
|
|
767
|
-
],
|
|
768
|
-
outputs: [{ name: "", type: "bool", internalType: "bool" }],
|
|
769
|
-
stateMutability: "pure"
|
|
770
|
-
},
|
|
771
|
-
{
|
|
772
|
-
type: "function",
|
|
773
|
-
name: "paused",
|
|
774
|
-
inputs: [],
|
|
775
|
-
outputs: [{ name: "", type: "bool", internalType: "bool" }],
|
|
776
|
-
stateMutability: "view"
|
|
777
|
-
},
|
|
778
|
-
{
|
|
779
|
-
type: "function",
|
|
780
|
-
name: "removeVerifiers",
|
|
781
|
-
inputs: [{ name: "vkeyHashes", type: "bytes32[]", internalType: "bytes32[]" }],
|
|
782
|
-
outputs: [],
|
|
783
|
-
stateMutability: "nonpayable"
|
|
784
|
-
},
|
|
785
|
-
{
|
|
786
|
-
type: "function",
|
|
787
|
-
name: "rootRegistry",
|
|
788
|
-
inputs: [],
|
|
789
|
-
outputs: [{ name: "", type: "address", internalType: "contract IRootRegistry" }],
|
|
790
|
-
stateMutability: "view"
|
|
791
|
-
},
|
|
792
|
-
{
|
|
793
|
-
type: "function",
|
|
794
|
-
name: "setPaused",
|
|
795
|
-
inputs: [{ name: "_paused", type: "bool", internalType: "bool" }],
|
|
796
|
-
outputs: [],
|
|
797
|
-
stateMutability: "nonpayable"
|
|
798
|
-
},
|
|
799
|
-
{
|
|
800
|
-
type: "function",
|
|
801
|
-
name: "transferAdmin",
|
|
802
|
-
inputs: [{ name: "newAdmin", type: "address", internalType: "address" }],
|
|
803
|
-
outputs: [],
|
|
804
|
-
stateMutability: "nonpayable"
|
|
805
|
-
},
|
|
806
|
-
{
|
|
807
|
-
type: "function",
|
|
808
|
-
name: "updateRootRegistry",
|
|
809
|
-
inputs: [{ name: "_rootRegistry", type: "address", internalType: "address" }],
|
|
810
|
-
outputs: [],
|
|
811
|
-
stateMutability: "nonpayable"
|
|
812
|
-
},
|
|
813
|
-
{
|
|
814
|
-
type: "function",
|
|
815
|
-
name: "verifyProof",
|
|
816
|
-
inputs: [
|
|
817
|
-
{
|
|
818
|
-
name: "params",
|
|
819
|
-
type: "tuple",
|
|
820
|
-
internalType: "struct ProofVerificationParams",
|
|
821
|
-
components: [
|
|
822
|
-
{
|
|
823
|
-
name: "proofVerificationData",
|
|
824
|
-
type: "tuple",
|
|
825
|
-
internalType: "struct ProofVerificationData",
|
|
826
|
-
components: [
|
|
827
|
-
{ name: "vkeyHash", type: "bytes32", internalType: "bytes32" },
|
|
828
|
-
{ name: "proof", type: "bytes", internalType: "bytes" },
|
|
829
|
-
{ name: "publicInputs", type: "bytes32[]", internalType: "bytes32[]" }
|
|
830
|
-
]
|
|
831
|
-
},
|
|
832
|
-
{
|
|
833
|
-
name: "commitments",
|
|
834
|
-
type: "tuple",
|
|
835
|
-
internalType: "struct Commitments",
|
|
836
|
-
components: [
|
|
837
|
-
{ name: "committedInputs", type: "bytes", internalType: "bytes" },
|
|
838
|
-
{ name: "committedInputCounts", type: "uint256[]", internalType: "uint256[]" }
|
|
839
|
-
]
|
|
840
|
-
},
|
|
841
|
-
{
|
|
842
|
-
name: "serviceConfig",
|
|
843
|
-
type: "tuple",
|
|
844
|
-
internalType: "struct ServiceConfig",
|
|
845
|
-
components: [
|
|
846
|
-
{ name: "validityPeriodInSeconds", type: "uint256", internalType: "uint256" },
|
|
847
|
-
{ name: "domain", type: "string", internalType: "string" },
|
|
848
|
-
{ name: "scope", type: "string", internalType: "string" },
|
|
849
|
-
{ name: "devMode", type: "bool", internalType: "bool" }
|
|
850
|
-
]
|
|
851
|
-
}
|
|
852
|
-
]
|
|
853
|
-
}
|
|
854
|
-
],
|
|
855
|
-
outputs: [
|
|
856
|
-
{ name: "isValid", type: "bool", internalType: "bool" },
|
|
857
|
-
{ name: "uniqueIdentifier", type: "bytes32", internalType: "bytes32" }
|
|
858
|
-
],
|
|
859
|
-
stateMutability: "view"
|
|
860
|
-
},
|
|
861
|
-
{
|
|
862
|
-
type: "function",
|
|
863
|
-
name: "verifyScopes",
|
|
864
|
-
inputs: [
|
|
865
|
-
{ name: "publicInputs", type: "bytes32[]", internalType: "bytes32[]" },
|
|
866
|
-
{ name: "domain", type: "string", internalType: "string" },
|
|
867
|
-
{ name: "scope", type: "string", internalType: "string" }
|
|
868
|
-
],
|
|
869
|
-
outputs: [{ name: "", type: "bool", internalType: "bool" }],
|
|
870
|
-
stateMutability: "pure"
|
|
871
|
-
},
|
|
872
|
-
{
|
|
873
|
-
type: "function",
|
|
874
|
-
name: "vkeyHashToVerifier",
|
|
875
|
-
inputs: [{ name: "", type: "bytes32", internalType: "bytes32" }],
|
|
876
|
-
outputs: [{ name: "", type: "address", internalType: "address" }],
|
|
877
|
-
stateMutability: "view"
|
|
878
|
-
},
|
|
879
|
-
{
|
|
880
|
-
type: "event",
|
|
881
|
-
name: "AdminUpdated",
|
|
882
|
-
inputs: [
|
|
883
|
-
{ name: "oldAdmin", type: "address", indexed: true, internalType: "address" },
|
|
884
|
-
{ name: "newAdmin", type: "address", indexed: true, internalType: "address" }
|
|
885
|
-
],
|
|
886
|
-
anonymous: false
|
|
887
|
-
},
|
|
888
|
-
{
|
|
889
|
-
type: "event",
|
|
890
|
-
name: "CertificateRegistryRootAdded",
|
|
891
|
-
inputs: [
|
|
892
|
-
{
|
|
893
|
-
name: "certificateRegistryRoot",
|
|
894
|
-
type: "bytes32",
|
|
895
|
-
indexed: true,
|
|
896
|
-
internalType: "bytes32"
|
|
897
|
-
}
|
|
898
|
-
],
|
|
899
|
-
anonymous: false
|
|
900
|
-
},
|
|
901
|
-
{
|
|
902
|
-
type: "event",
|
|
903
|
-
name: "CertificateRegistryRootRemoved",
|
|
904
|
-
inputs: [
|
|
905
|
-
{
|
|
906
|
-
name: "certificateRegistryRoot",
|
|
907
|
-
type: "bytes32",
|
|
908
|
-
indexed: true,
|
|
909
|
-
internalType: "bytes32"
|
|
910
|
-
}
|
|
911
|
-
],
|
|
912
|
-
anonymous: false
|
|
913
|
-
},
|
|
914
|
-
{
|
|
915
|
-
type: "event",
|
|
916
|
-
name: "PausedStatusChanged",
|
|
917
|
-
inputs: [{ name: "paused", type: "bool", indexed: false, internalType: "bool" }],
|
|
918
|
-
anonymous: false
|
|
919
|
-
},
|
|
920
|
-
{
|
|
921
|
-
type: "event",
|
|
922
|
-
name: "SanctionsTreesRootUpdates",
|
|
923
|
-
inputs: [
|
|
924
|
-
{
|
|
925
|
-
name: "_sanctionsTreesRoot",
|
|
926
|
-
type: "bytes32",
|
|
927
|
-
indexed: true,
|
|
928
|
-
internalType: "bytes32"
|
|
929
|
-
}
|
|
930
|
-
],
|
|
931
|
-
anonymous: false
|
|
932
|
-
},
|
|
933
|
-
{
|
|
934
|
-
type: "event",
|
|
935
|
-
name: "VerifierAdded",
|
|
936
|
-
inputs: [
|
|
937
|
-
{ name: "vkeyHash", type: "bytes32", indexed: true, internalType: "bytes32" },
|
|
938
|
-
{ name: "verifier", type: "address", indexed: true, internalType: "address" }
|
|
939
|
-
],
|
|
940
|
-
anonymous: false
|
|
941
|
-
},
|
|
942
|
-
{
|
|
943
|
-
type: "event",
|
|
944
|
-
name: "VerifierRemoved",
|
|
945
|
-
inputs: [
|
|
946
|
-
{ name: "vkeyHash", type: "bytes32", indexed: true, internalType: "bytes32" }
|
|
947
|
-
],
|
|
948
|
-
anonymous: false
|
|
949
|
-
},
|
|
950
|
-
{
|
|
951
|
-
type: "event",
|
|
952
|
-
name: "ZKPassportVerifierDeployed",
|
|
953
|
-
inputs: [
|
|
954
|
-
{ name: "admin", type: "address", indexed: true, internalType: "address" },
|
|
955
|
-
{ name: "timestamp", type: "uint256", indexed: false, internalType: "uint256" }
|
|
956
|
-
],
|
|
957
|
-
anonymous: false
|
|
958
|
-
}
|
|
959
|
-
],
|
|
960
|
-
bytecode: {
|
|
961
|
-
object: "0x608060405234801561000f575f5ffd5b50604051613e06380380613e0683398101604081905261002e916100f6565b6001600160a01b0381166100945760405162461bcd60e51b8152602060048201526024808201527f526f6f742072656769737472792063616e6e6f74206265207a65726f206164646044820152637265737360e01b606482015260840160405180910390fd5b5f8054336001600160a01b03199182168117909255600280549091166001600160a01b0384161790556040514281527ff29b53747ae7121d0958d490ad3d5cf6767119b0fdbd8389d918de3a12cf5a299060200160405180910390a250610123565b5f60208284031215610106575f5ffd5b81516001600160a01b038116811461011c575f5ffd5b9392505050565b613cd6806101305f395ff3fe608060405234801561000f575f5ffd5b506004361061023f575f3560e01c80638d6937b811610135578063c3fa6f22116100b4578063ddd8f8e311610079578063ddd8f8e31461051a578063ec8e07291461052d578063f3757ad414610557578063f851a44014610577578063ff20370714610589575f5ffd5b8063c3fa6f22146104bb578063ca4051f2146104ce578063cf515d37146104e1578063d39a5cf9146104f4578063d4932b4e14610507575f5ffd5b8063ac20d678116100fa578063ac20d6781461045c578063b8bd48791461046f578063b96b161c14610482578063c04fa6fe14610495578063c1b77162146104a8575f5ffd5b80638d6937b8146103f05780638e2e2e621461040357806398e73ac3146104165780639c1a81a314610436578063a6df2c0114610449575f5ffd5b80635b7ab929116101c15780637e5a88f3116101865780637e5a88f3146103645780638163f23114610377578063818694f1146103b7578063847755e3146103ca5780638b2ec611146103dd575f5ffd5b80635b7ab9291461031b5780635c975abb1461032e578063652ba33d146103415780636c40d5d61461034957806375829def14610351575f5ffd5b8063311a335c11610207578063311a335c146102b9578063320d3b55146102cc5780633d6ed975146102df57806341a0e2c2146102f257806346b758a014610308575f5ffd5b806316c38b3c1461024357806316e3d7291461025857806318677f2a1461026b5780631fac43451461027e5780632e5ce77f146102a6575b5f5ffd5b610256610251366004612b12565b61059c565b005b610256610266366004612b43565b610625565b610256610279366004612b88565b6106ac565b61029161028c366004612bb3565b610759565b60405190151581526020015b60405180910390f35b6102916102b4366004612c2c565b610771565b6102916102c7366004612c63565b6108a5565b6102916102da366004612bb3565b6108bf565b6102916102ed366004612c63565b6108ce565b6102fa600181565b60405190815260200161029d565b610291610316366004612d8d565b6108dd565b610291610329366004612d8d565b6108f3565b5f5461029190600160a01b900460ff1681565b6102fa600381565b6102fa600281565b61025661035f366004612b88565b610900565b610291610372366004612d8d565b6109ce565b61039f610385366004612eab565b60016020525f90815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161029d565b6102916103c5366004612c2c565b6109db565b6102916103d8366004612f46565b610a43565b6102916103eb366004612bb3565b610c0b565b6102566103fe366004612fe2565b610c1a565b610291610411366004612bb3565b610cda565b610429610424366004612b43565b610ce8565b60405161029d919061304e565b610291610444366004612bb3565b610e13565b610256610457366004613084565b610e2d565b61029161046a366004612bb3565b610f57565b61029161047d366004612bb3565b610f71565b60025461039f906001600160a01b031681565b6102916104a33660046130fa565b610f8b565b6102916104b6366004612bb3565b6112a1565b6102916104c9366004612c2c565b6112af565b6102916104dc366004612bb3565b6112c5565b6102916104ef366004613142565b6112d3565b610291610502366004612d8d565b611527565b610291610515366004612c2c565b611534565b610291610528366004612bb3565b611668565b61054061053b366004613170565b611682565b60408051921515835260208301919091520161029d565b61056a6105653660046131a6565b611ca2565b60405161029d91906131f4565b5f5461039f906001600160a01b031681565b610291610597366004612c2c565b611de2565b5f546001600160a01b031633146105ce5760405162461bcd60e51b81526004016105c5906132e3565b60405180910390fd5b5f8054821515600160a01b0260ff60a01b199091161790556040517f9a506b30e47f3823b09f67e4c0dfa5c3d8023b71825b7ceaa97677129128c9c59061061a90831515815260200190565b60405180910390a150565b604051632988ebc960e21b81525f9073__$144f4fe859debe4776cdef2b99f7b97a42$__9063a623af249061065e908590600401613421565b602060405180830381865af4158015610679573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061069d9190613433565b90506106a881611def565b5050565b5f546001600160a01b031633146106d55760405162461bcd60e51b81526004016105c5906132e3565b6001600160a01b0381166107375760405162461bcd60e51b8152602060048201526024808201527f526f6f742072656769737472792063616e6e6f74206265207a65726f206164646044820152637265737360e01b60648201526084016105c5565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b5f6107678460028585611eb0565b90505b9392505050565b5f5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__6384052813876040518263ffffffff1660e01b81526004016107ac9190613421565b606060405180830381865af41580156107c7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107eb919061344a565b919450925090506107fd8386356120a2565b6108195760405162461bcd60e51b81526004016105c59061348b565b60ff811615610892576040805162461bcd60e51b81526020600482015260248101919091527f5468652070726f6f6620757070657220626f756e64206d75737420626520302c60448201527f20706c65617365207573652069734167654265747765656e20696e737465616460648201526084016105c5565b5060ff8681169116149150509392505050565b5f6108b48585600286866120cf565b90505b949350505050565b5f6107678485600286866120cf565b5f6108b48585600386866120cf565b5f6108ea836004846123f2565b90505b92915050565b5f6108ea836007846123f2565b5f546001600160a01b031633146109295760405162461bcd60e51b81526004016105c5906132e3565b6001600160a01b03811661097f5760405162461bcd60e51b815260206004820152601c60248201527f41646d696e2063616e6e6f74206265207a65726f20616464726573730000000060448201526064016105c5565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b9190a35050565b5f6108ea836006846123f2565b5f5f8460ff1611610a2e5760405162461bcd60e51b815260206004820152601e60248201527f4d617820616765206d7573742062652067726561746572207468616e2030000060448201526064016105c5565b610767610a3c600186613510565b8484611534565b5f5f610a8386868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061250092505050565b610afd57600860028787604051602001610a9e929190613529565b60408051601f1981840301815290829052610ab891613538565b602060405180830381855afa158015610ad3573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610af69190613433565b901c610aff565b5f5b90505f610b4085858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061250092505050565b610bba57600860028686604051602001610b5b929190613529565b60408051601f1981840301815290829052610b7591613538565b602060405180830381855afa158015610b90573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610bb39190613433565b901c610bbc565b5f5b90508189896003818110610bd257610bd261354e565b90506020020135148015610bfe57508089896004818110610bf557610bf561354e565b90506020020135145b9998505050505050505050565b5f6107678485600386866120cf565b5f546001600160a01b03163314610c435760405162461bcd60e51b81526004016105c5906132e3565b5f5b81811015610cd55760015f848484818110610c6257610c6261354e565b602090810292909201358352508101919091526040015f2080546001600160a01b0319169055828282818110610c9a57610c9a61354e565b905060200201357f6fdcbcf8f91bc23f2c9dcfe8fe01d80d1b1afbbf207298e94c0171ccc587424c60405160405180910390a2600101610c45565b505050565b5f6107678460038585611eb0565b60408051606080820183525f80835260208301529181019190915260405163dfda037960e01b81525f9073__$144f4fe859debe4776cdef2b99f7b97a42$__9063dfda037990610d3c908690600401613421565b5f60405180830381865af4158015610d56573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d7d91908101906135b1565b604051630578c5d360e11b815290915073__$144f4fe859debe4776cdef2b99f7b97a42$__90630af18ba690610db79084906004016135e2565b5f60405180830381865af4158015610dd1573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610df891908101906135f4565b604085015260208401526001600160a01b0316825250919050565b5f610767610e24620151808661363f565b60028585611eb0565b5f546001600160a01b03163314610e565760405162461bcd60e51b81526004016105c5906132e3565b5f5b83811015610f5057828282818110610e7257610e7261354e565b9050602002016020810190610e879190612b88565b60015f878785818110610e9c57610e9c61354e565b9050602002013581526020019081526020015f205f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550828282818110610ee557610ee561354e565b9050602002016020810190610efa9190612b88565b6001600160a01b0316858583818110610f1557610f1561354e565b905060200201357f636107338a3eb46f1f60562462f3ec11393d35fbc965991aaade3b9e7d89c3f560405160405180910390a3600101610e58565b5050505050565b5f610767610f688562015180613652565b60038585612505565b5f610767610f828562015180613652565b60028585612505565b5f5f5f5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__63defa8ed9896040518263ffffffff1660e01b8152600401610fc89190613421565b60a060405180830381865af4158015610fe3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110079190613665565b9398509196509450925090505f6001856001811115611028576110286136bd565b1490505f8b600281111561103e5761103e6136bd565b836002811115611050576110506136bd565b1490505f7f2532418a107c5306fa8308c22255792cf77e4a290cbce8a840a642a3e591340b881480156110ae575060018c6002811115611092576110926136bd565b14806110ae57505f8c60028111156110ac576110ac6136bd565b145b8061110e57507f16700a2d9168a194fc85f237af5829b5a2be05b8ae8ac4879ada34cf54a9c2118814801561110e575060028c60028111156110f2576110f26136bd565b148061110e57505f8c600281111561110c5761110c6136bd565b145b90505f7f1fa73686cf510f8f85757b0602de0dd72a13e68ae2092462be8b72662e7f179b8714801561116b575060018d600281111561114f5761114f6136bd565b148061116b57505f8d6002811115611169576111696136bd565b145b806111cb57507f24d9929b248be7eeecaa98e105c034a50539610f3fdd4cb9c8983ef4100d615d871480156111cb575060028d60028111156111af576111af6136bd565b14806111cb57505f8d60028111156111c9576111c96136bd565b145b90505f86158015611207575060018e60028111156111eb576111eb6136bd565b148061120757505f8e6002811115611205576112056136bd565b145b8061126757507f12e3dc7cc8fec0205b51ff21825630865028f3be5bc64a6eec9ee5e71221319f87148015611267575060028e600281111561124b5761124b6136bd565b148061126757505f8e6002811115611265576112656136bd565b145b90508480156112735750835b801561127c5750825b80156112855750815b801561128e5750805b9f9e505050505050505050505050505050565b5f6107678460028585612505565b5f6107676112be8560016136d1565b8484610771565b5f6107678460038585612505565b5f5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__6384052813876040518263ffffffff1660e01b815260040161130e9190613421565b606060405180830381865af4158015611329573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061134d919061344a565b9194509250905061135f8386356120a2565b61137b5760405162461bcd60e51b81526004016105c59061348b565b8660ff168860ff1611156113e75760405162461bcd60e51b815260206004820152602d60248201527f4d696e20616765206d757374206265206c657373207468616e206f722065717560448201526c616c20746f206d61782061676560981b60648201526084016105c5565b8160ff165f036114745760405162461bcd60e51b815260206004820152604c60248201527f5468652070726f6f66206c6f77657220626f756e64206d757374206265206e6f60448201527f6e2d7a65726f2c20706c656173652075736520697341676542656c6f774f724560648201526b1c5d585b081a5b9cdd19585960a21b608482015260a4016105c5565b8060ff165f036115015760405162461bcd60e51b815260206004820152604c60248201527f5468652070726f6f6620757070657220626f756e64206d757374206265206e6f60448201527f6e2d7a65726f2c20706c656173652075736520697341676541626f76654f724560648201526b1c5d585b081a5b9cdd19585960a21b608482015260a4016105c5565b8160ff168860ff1614801561151b57508060ff168760ff16145b98975050505050505050565b5f6108ea836005846123f2565b5f5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__6384052813876040518263ffffffff1660e01b815260040161156f9190613421565b606060405180830381865af415801561158a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ae919061344a565b919450925090506115c08386356120a2565b6115dc5760405162461bcd60e51b81526004016105c59061348b565b60ff821615611655576040805162461bcd60e51b81526020600482015260248101919091527f5468652070726f6f66206c6f77657220626f756e64206d75737420626520302c60448201527f20706c65617365207573652069734167654265747765656e20696e737465616460648201526084016105c5565b60ff878116911614925050509392505050565b5f610767611679620151808661363f565b60038585611eb0565b5f80548190600160a01b900460ff16156116d35760405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b60448201526064016105c5565b5f6116e76116e185806136ea565b35612736565b90506117206116f685806136ea565b611704906040810190613708565b5f8181106117145761171461354e565b9050602002013561278f565b61175861172d85806136ea565b61173b906040810190613708565b600181811061174c5761174c61354e565b90506020020135612857565b6117b761176585806136ea565b611773906040810190613708565b808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152506117b192505050604087018761374d565b35612915565b61181f5760405162461bcd60e51b815260206004820152603360248201527f5468652070726f6f66207761732067656e657261746564206f757473696465206044820152721d1a19481d985b1a591a5d1e481c195c9a5bd9606a1b60648201526084016105c5565b61187061182c85806136ea565b61183a906040810190613708565b611847604088018861374d565b611855906020810190613761565b61186260408a018a61374d565b6103d8906040810190613761565b6118bc5760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420646f6d61696e206f722073636f706500000000000000000060448201526064016105c5565b61194f6118c985806136ea565b6118d7906040810190613708565b60059060016118e689806136ea565b6118f4906040810190613708565b6118ff92915061363f565b9261190c939291906137a3565b808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061194a9250505060208701876137ce565b612940565b5f61195a85806136ea565b611968906040810190613708565b600261197488806136ea565b611982906040810190613708565b61198d92915061363f565b81811061199c5761199c61354e565b905060200201355f1c60038111156119b6576119b66136bd565b905060028160038111156119cc576119cc6136bd565b141580156119ec575060038160038111156119e9576119e96136bd565b14155b80611a1057506119ff604086018661374d565b611a10906080810190606001612b12565b611a6d5760405162461bcd60e51b815260206004820152602860248201527f4d6f636b2070726f6f667320617265206f6e6c7920616c6c6f77656420696e20604482015267646576206d6f646560c01b60648201526084016105c5565b5f816003811115611a8057611a806136bd565b1480611aa55750611a94604086018661374d565b611aa5906080810190606001612b12565b611b055760405162461bcd60e51b815260206004820152602b60248201527f53616c746564206e756c6c69666965727320617265206e6f7420737570706f7260448201526a74656420666f72206e6f7760a81b60648201526084016105c5565b6007611b1186806136ea565b611b1f906040810190613708565b611b2a92915061363f565b611b3760208701876137ce565b611b45906020810190613708565b905014611ba25760405162461bcd60e51b815260206004820152602560248201527f496e76616c696420636f6d6d697474656420696e70757420636f756e7473206c6044820152640cadccee8d60db1b60648201526084016105c5565b6001600160a01b03821663ea50d0e4611bbb87806136ea565b611bc9906020810190613761565b611bd389806136ea565b611be1906040810190613708565b6040518563ffffffff1660e01b8152600401611c0094939291906137e2565b602060405180830381865afa158015611c1b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c3f9190613813565b93505f6001611c4e87806136ea565b611c5c906040810190613708565b611c6792915061363f565b9050611c7386806136ea565b611c81906040810190613708565b82818110611c9157611c9161354e565b905060200201359350505050915091565b611cea60405180610100016040528060608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081525090565b604051635450abb360e11b81525f9073__$144f4fe859debe4776cdef2b99f7b97a42$__9063a8a1576690611d23908790600401613421565b5f60405180830381865af4158015611d3d573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611d64919081019061382e565b6040516301e9bf5760e11b815290925073__$144f4fe859debe4776cdef2b99f7b97a42$__91506303d37eae90611da19084908790600401613887565b5f60405180830381865af4158015611dbb573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526108b791908101906138aa565b5f610767848585856112d3565b6002546040516383578c1160e01b815260036004820152602481018390526001600160a01b03909116906383578c1190604401602060405180830381865afa158015611e3d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e619190613813565b611ead5760405162461bcd60e51b815260206004820152601f60248201527f496e76616c69642073616e6374696f6e7320726567697374727920726f6f740060448201526064016105c5565b50565b5f5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__6374d9a37e87896040518363ffffffff1660e01b8152600401611eed929190613a3b565b606060405180830381865af4158015611f08573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f2c9190613a78565b91945092509050611f3e8386356120a2565b611f5a5760405162461bcd60e51b81526004016105c59061348b565b8115611fd85760405162461bcd60e51b815260206004820152604160248201527f5468652070726f6f66206c6f77657220626f756e64206d75737420626520302c60448201527f20706c6561736520757365206973446174654265747765656e20696e737465616064820152601960fa1b608482015260a4016105c5565b600287600a811115611fec57611fec6136bd565b14806120095750600387600a811115612007576120076136bd565b145b6120255760405162461bcd60e51b81526004016105c590613aa3565b600287600a811115612039576120396136bd565b0361207757805f0361205d5760405162461bcd60e51b81526004016105c590613acf565b61206b6383aa7e808261363f565b881493505050506108b7565b805f036120965760405162461bcd60e51b81526004016105c590613b47565b871492506108b7915050565b5f806120ae8385613652565b90508342101580156120bf57508381115b80156108b7575042109392505050565b5f5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__6374d9a37e87896040518363ffffffff1660e01b815260040161210c929190613a3b565b606060405180830381865af4158015612127573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061214b9190613a78565b9194509250905061215d8386356120a2565b6121795760405162461bcd60e51b81526004016105c59061348b565b878911156121e15760405162461bcd60e51b815260206004820152602f60248201527f4d696e2064617465206d757374206265206c657373207468616e206f7220657160448201526e75616c20746f206d6178206461746560881b60648201526084016105c5565b600287600a8111156121f5576121f56136bd565b14806122125750600387600a811115612210576122106136bd565b145b61222e5760405162461bcd60e51b81526004016105c590613aa3565b600287600a811115612242576122426136bd565b0361232857815f036122d75760405162461bcd60e51b815260206004820152605260248201527f5468652070726f6f66206c6f77657220626f756e64206d757374206265206e6f60448201527f6e2d7a65726f2c20706c656173652075736520697342697274686461746542656064820152711b1bddd3dc915c5d585b081a5b9cdd19585960721b608482015260a4016105c5565b805f036122f65760405162461bcd60e51b81526004016105c590613acf565b6123046383aa7e808361363f565b8914801561231e575061231b6383aa7e808261363f565b88145b93505050506123e9565b815f036123b95760405162461bcd60e51b815260206004820152605360248201527f5468652070726f6f66206c6f77657220626f756e64206d757374206265206e6f60448201527f6e2d7a65726f2c20706c65617365207573652069734578706972794461746542606482015272195b1bddd3dc915c5d585b081a5b9cdd195859606a1b608482015260a4016105c5565b805f036123d85760405162461bcd60e51b81526004016105c590613b47565b818914801561231e57508714925050505b95945050505050565b5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__63dc8c5e9a85876040518363ffffffff1660e01b815260040161242e929190613a3b565b5f60405180830381865af4158015612448573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261246f9190810190613bc0565b9150915080865114612485575f9250505061076a565b5f5b818110156124f3576124dc8782815181106124a4576124a461354e565b60200260200101518483815181106124be576124be61354e565b60200260200101518051602091820120825192909101919091201490565b6124eb575f935050505061076a565b600101612487565b5060019695505050505050565b511590565b5f5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__6374d9a37e87896040518363ffffffff1660e01b8152600401612542929190613a3b565b606060405180830381865af415801561255d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125819190613a78565b919450925090506125938386356120a2565b6125af5760405162461bcd60e51b81526004016105c59061348b565b600287600a8111156125c3576125c36136bd565b14806125e05750600387600a8111156125de576125de6136bd565b145b6125fc5760405162461bcd60e51b81526004016105c590613aa3565b600287600a811115612610576126106136bd565b036126a65780156126985760405162461bcd60e51b815260206004820152604660248201527f5468652070726f6f6620757070657220626f756e64206d75737420626520302c60448201527f20706c65617365207573652069734269727468646174654265747765656e20696064820152651b9cdd19585960d21b608482015260a4016105c5565b61206b6383aa7e808361363f565b801561272a5760405162461bcd60e51b815260206004820152604760248201527f5468652070726f6f6620757070657220626f756e64206d75737420626520302c60448201527f20706c6561736520757365206973457870697279446174654265747765656e206064820152661a5b9cdd19585960ca1b608482015260a4016105c5565b50861491506108b79050565b5f818152600160205260408120546001600160a01b0316806108ed5760405162461bcd60e51b815260206004820152601260248201527115995c9a599a595c881b9bdd08199bdd5b9960721b60448201526064016105c5565b6002546040516383578c1160e01b815260016004820152602481018390526001600160a01b03909116906383578c1190604401602060405180830381865afa1580156127dd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128019190613813565b611ead5760405162461bcd60e51b815260206004820152602160248201527f496e76616c696420636572746966696361746520726567697374727920726f6f6044820152601d60fa1b60648201526084016105c5565b600280546040516383578c1160e01b81526004810192909252602482018390526001600160a01b0316906383578c1190604401602060405180830381865afa1580156128a5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128c99190613813565b611ead5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964206369726375697420726567697374727920726f6f7400000060448201526064016105c5565b5f5f8360028151811061292a5761292a61354e565b60200260200101515f1c90506108b781846120a2565b5f805b6129506020840184613708565b9050811015612aaa575f600860026129688680613761565b869061297760208a018a613708565b888181106129875761298761354e565b90506020020135886129999190613652565b926129a693929190613c79565b6040516020016129b7929190613529565b60408051601f19818403018152908290526129d191613538565b602060405180830381855afa1580156129ec573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190612a0f9190613433565b901c9050848281518110612a2557612a2561354e565b60200260200101518114612a705760405162461bcd60e51b8152602060048201526012602482015271125b9d985b1a590818dbdb5b5a5d1b595b9d60721b60448201526064016105c5565b612a7d6020850185613708565b83818110612a8d57612a8d61354e565b9050602002013583612a9f9190613652565b925050600101612943565b50612ab58280613761565b90508114610cd55760405162461bcd60e51b815260206004820152601f60248201527f496e76616c696420636f6d6d697474656420696e70757473206c656e6774680060448201526064016105c5565b8015158114611ead575f5ffd5b5f60208284031215612b22575f5ffd5b813561076a81612b05565b5f60408284031215612b3d575f5ffd5b50919050565b5f60208284031215612b53575f5ffd5b81356001600160401b03811115612b68575f5ffd5b6108b784828501612b2d565b6001600160a01b0381168114611ead575f5ffd5b5f60208284031215612b98575f5ffd5b813561076a81612b74565b5f60808284031215612b3d575f5ffd5b5f5f5f60608486031215612bc5575f5ffd5b8335925060208401356001600160401b03811115612be1575f5ffd5b612bed86828701612b2d565b92505060408401356001600160401b03811115612c08575f5ffd5b612c1486828701612ba3565b9150509250925092565b60ff81168114611ead575f5ffd5b5f5f5f60608486031215612c3e575f5ffd5b8335612c4981612c1e565b925060208401356001600160401b03811115612be1575f5ffd5b5f5f5f5f60808587031215612c76575f5ffd5b843593506020850135925060408501356001600160401b03811115612c99575f5ffd5b612ca587828801612b2d565b92505060608501356001600160401b03811115612cc0575f5ffd5b612ccc87828801612ba3565b91505092959194509250565b634e487b7160e01b5f52604160045260245ffd5b60405161010081016001600160401b0381118282101715612d0f57612d0f612cd8565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612d3d57612d3d612cd8565b604052919050565b5f6001600160401b03821115612d5d57612d5d612cd8565b5060051b60200190565b5f6001600160401b03821115612d7f57612d7f612cd8565b50601f01601f191660200190565b5f5f60408385031215612d9e575f5ffd5b82356001600160401b03811115612db3575f5ffd5b8301601f81018513612dc3575f5ffd5b8035612dd6612dd182612d45565b612d15565b8082825260208201915060208360051b850101925087831115612df7575f5ffd5b602084015b83811015612e775780356001600160401b03811115612e19575f5ffd5b8501603f81018a13612e29575f5ffd5b6020810135612e3a612dd182612d67565b8181526040838301018c1015612e4e575f5ffd5b816040840160208301375f60208383010152808652505050602083019250602081019050612dfc565b50945050505060208301356001600160401b03811115612e95575f5ffd5b612ea185828601612b2d565b9150509250929050565b5f60208284031215612ebb575f5ffd5b5035919050565b5f5f83601f840112612ed2575f5ffd5b5081356001600160401b03811115612ee8575f5ffd5b6020830191508360208260051b8501011115612f02575f5ffd5b9250929050565b5f5f83601f840112612f19575f5ffd5b5081356001600160401b03811115612f2f575f5ffd5b602083019150836020828501011115612f02575f5ffd5b5f5f5f5f5f5f60608789031215612f5b575f5ffd5b86356001600160401b03811115612f70575f5ffd5b612f7c89828a01612ec2565b90975095505060208701356001600160401b03811115612f9a575f5ffd5b612fa689828a01612f09565b90955093505060408701356001600160401b03811115612fc4575f5ffd5b612fd089828a01612f09565b979a9699509497509295939492505050565b5f5f60208385031215612ff3575f5ffd5b82356001600160401b03811115613008575f5ffd5b61301485828601612ec2565b90969095509350505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6020815260018060a01b038251166020820152602082015160408201525f60408301516060808401526108b76080840182613020565b5f5f5f5f60408587031215613097575f5ffd5b84356001600160401b038111156130ac575f5ffd5b6130b887828801612ec2565b90955093505060208501356001600160401b038111156130d6575f5ffd5b6130e287828801612ec2565b95989497509550505050565b60038110611ead575f5ffd5b5f5f5f5f6080858703121561310d575f5ffd5b8435613118816130ee565b93506020850135613128816130ee565b925060408501356001600160401b03811115612c99575f5ffd5b5f5f5f5f60808587031215613155575f5ffd5b843561316081612c1e565b9350602085013561312881612c1e565b5f60208284031215613180575f5ffd5b81356001600160401b03811115613195575f5ffd5b82016060818503121561076a575f5ffd5b5f5f604083850312156131b7575f5ffd5b82356001600160401b038111156131cc575f5ffd5b6131d885828601612b2d565b92505060208301356131e981612b05565b809150509250929050565b602081525f82516101006020840152613211610120840182613020565b90506020840151601f1984830301604085015261322e8282613020565b9150506040840151601f1984830301606085015261324c8282613020565b9150506060840151601f1984830301608085015261326a8282613020565b9150506080840151601f198483030160a08501526132888282613020565b91505060a0840151601f198483030160c08501526132a68282613020565b91505060c0840151601f198483030160e08501526132c48282613020565b91505060e0840151601f19848303016101008501526123e98282613020565b6020808252601a908201527f4e6f7420617574686f72697a65643a2061646d696e206f6e6c79000000000000604082015260600190565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b8183525f6001600160fb1b03831115613359575f5ffd5b8260051b80836020870137939093016020019392505050565b5f8135601e1983360301808212613387575f5ffd5b602091840191820191356001600160401b038111156133a4575f5ffd5b8036038313156133b2575f5ffd5b604086526133c460408701828561331a565b92505060208401358181126133d7575f5ffd5b8401602081019150356001600160401b038111156133f3575f5ffd5b8060051b3603821315613404575f5ffd5b8583036020870152613417838284613342565b9695505050505050565b602081525f6108ea6020830184613372565b5f60208284031215613443575f5ffd5b5051919050565b5f5f5f6060848603121561345c575f5ffd5b8351602085015190935061346f81612c1e565b604085015190925061348081612c1e565b809150509250925092565b6020808252604b908201527f5468652063757272656e742064617465207573656420696e207468652070726f60408201527f6f6620646f6573206e6f742066616c6c2077697468696e207468652076616c6960608201526a191a5d1e481c195c9a5bd960aa1b608082015260a00190565b634e487b7160e01b5f52601160045260245ffd5b60ff82811682821603908111156108ed576108ed6134fc565b818382375f9101908152919050565b5f82518060208501845e5f920191825250919050565b634e487b7160e01b5f52603260045260245ffd5b5f82601f830112613571575f5ffd5b8151602083015f613584612dd184612d67565b9050828152858383011115613597575f5ffd5b8282602083015e5f92810160200192909252509392505050565b5f602082840312156135c1575f5ffd5b81516001600160401b038111156135d6575f5ffd5b6108b784828501613562565b602081525f6108ea6020830184613020565b5f5f5f60608486031215613606575f5ffd5b835161361181612b74565b6020850151604086015191945092506001600160401b03811115613633575f5ffd5b612c1486828701613562565b818103818111156108ed576108ed6134fc565b808201808211156108ed576108ed6134fc565b5f5f5f5f5f60a08688031215613679575f5ffd5b855160208701519095506002811061368f575f5ffd5b60408701516060880151608089015192965090945092506136af816130ee565b809150509295509295909350565b634e487b7160e01b5f52602160045260245ffd5b60ff81811683821601908111156108ed576108ed6134fc565b5f8235605e198336030181126136fe575f5ffd5b9190910192915050565b5f5f8335601e1984360301811261371d575f5ffd5b8301803591506001600160401b03821115613736575f5ffd5b6020019150600581901b3603821315612f02575f5ffd5b5f8235607e198336030181126136fe575f5ffd5b5f5f8335601e19843603018112613776575f5ffd5b8301803591506001600160401b0382111561378f575f5ffd5b602001915036819003821315612f02575f5ffd5b5f5f858511156137b1575f5ffd5b838611156137bd575f5ffd5b5050600583901b0193919092039150565b5f8235603e198336030181126136fe575f5ffd5b604081525f6137f560408301868861331a565b8281036020840152613808818587613342565b979650505050505050565b5f60208284031215613823575f5ffd5b815161076a81612b05565b5f5f6040838503121561383f575f5ffd5b82516001600160401b03811115613854575f5ffd5b61386085828601613562565b92505060208301516001600160401b0381111561387b575f5ffd5b612ea185828601613562565b604081525f6138996040830185613020565b905082151560208301529392505050565b5f602082840312156138ba575f5ffd5b81516001600160401b038111156138cf575f5ffd5b820161010081850312156138e1575f5ffd5b6138e9612cec565b81516001600160401b038111156138fe575f5ffd5b61390a86828501613562565b82525060208201516001600160401b03811115613925575f5ffd5b61393186828501613562565b60208301525060408201516001600160401b0381111561394f575f5ffd5b61395b86828501613562565b60408301525060608201516001600160401b03811115613979575f5ffd5b61398586828501613562565b60608301525060808201516001600160401b038111156139a3575f5ffd5b6139af86828501613562565b60808301525060a08201516001600160401b038111156139cd575f5ffd5b6139d986828501613562565b60a08301525060c08201516001600160401b038111156139f7575f5ffd5b613a0386828501613562565b60c08301525060e08201516001600160401b03811115613a21575f5ffd5b613a2d86828501613562565b60e083015250949350505050565b604081525f613a4d6040830185613372565b9050600b8310613a6b57634e487b7160e01b5f52602160045260245ffd5b8260208301529392505050565b5f5f5f60608486031215613a8a575f5ffd5b5050815160208301516040909301519094929350919050565b602080825260129082015271496e76616c69642070726f6f66207479706560701b604082015260600190565b60208082526052908201527f5468652070726f6f6620757070657220626f756e64206d757374206265206e6f60408201527f6e2d7a65726f2c20706c656173652075736520697342697274686461746541626060820152711bdd9953dc915c5d585b081a5b9cdd19585960721b608082015260a00190565b60208082526053908201527f5468652070726f6f6620757070657220626f756e64206d757374206265206e6f60408201527f6e2d7a65726f2c20706c65617365207573652069734578706972794461746541606082015272189bdd9953dc915c5d585b081a5b9cdd195859606a1b608082015260a00190565b5f5f60408385031215613bd1575f5ffd5b82516001600160401b03811115613be6575f5ffd5b8301601f81018513613bf6575f5ffd5b8051613c04612dd182612d45565b8082825260208201915060208360051b850101925087831115613c25575f5ffd5b602084015b83811015613c655780516001600160401b03811115613c47575f5ffd5b613c568a602083890101613562565b84525060209283019201613c2a565b506020969096015195979596505050505050565b5f5f85851115613c87575f5ffd5b83861115613c93575f5ffd5b505082019391909203915056fea264697066735822122003976ad8bc435d1afd265436a8ca6c800493492d2b2a0afcb7cacd312db60e3f64736f6c634300081d0033",
|
|
962
|
-
sourceMap: "706:31108:26:-:0;;;1848:256;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1897:27:26;;1889:76;;;;-1:-1:-1;;;1889:76:26;;511:2:33;1889:76:26;;;493:21:33;550:2;530:18;;;523:30;589:34;569:18;;;562:62;-1:-1:-1;;;640:18:33;;;633:34;684:19;;1889:76:26;;;;;;;;1971:5;:18;;1979:10;-1:-1:-1;;;;;;1971:18:26;;;;;;;;1995:12;:43;;;;;-1:-1:-1;;;;;1995:43:26;;;;;2049:50;;2083:15;860:25:33;;2049:50:26;;848:2:33;833:18;2049:50:26;;;;;;;1848:256;706:31108;;14:290:33;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:33;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:33:o;714:177::-;706:31108:26;;;;;;",
|
|
963
|
-
linkReferences: {
|
|
964
|
-
"src/InputsExtractor.sol": {
|
|
965
|
-
InputsExtractor: [
|
|
966
|
-
{ start: 1894, length: 20 },
|
|
967
|
-
{ start: 2215, length: 20 },
|
|
968
|
-
{ start: 3652, length: 20 },
|
|
969
|
-
{ start: 3775, length: 20 },
|
|
970
|
-
{ start: 4291, length: 20 },
|
|
971
|
-
{ start: 5129, length: 20 },
|
|
972
|
-
{ start: 5738, length: 20 },
|
|
973
|
-
{ start: 7723, length: 20 },
|
|
974
|
-
{ start: 7846, length: 20 },
|
|
975
|
-
{ start: 8166, length: 20 },
|
|
976
|
-
{ start: 8709, length: 20 },
|
|
977
|
-
{ start: 9511, length: 20 },
|
|
978
|
-
{ start: 9787, length: 20 }
|
|
979
|
-
]
|
|
980
|
-
}
|
|
981
|
-
}
|
|
982
|
-
},
|
|
983
|
-
deployedBytecode: {
|
|
984
|
-
object: "0x608060405234801561000f575f5ffd5b506004361061023f575f3560e01c80638d6937b811610135578063c3fa6f22116100b4578063ddd8f8e311610079578063ddd8f8e31461051a578063ec8e07291461052d578063f3757ad414610557578063f851a44014610577578063ff20370714610589575f5ffd5b8063c3fa6f22146104bb578063ca4051f2146104ce578063cf515d37146104e1578063d39a5cf9146104f4578063d4932b4e14610507575f5ffd5b8063ac20d678116100fa578063ac20d6781461045c578063b8bd48791461046f578063b96b161c14610482578063c04fa6fe14610495578063c1b77162146104a8575f5ffd5b80638d6937b8146103f05780638e2e2e621461040357806398e73ac3146104165780639c1a81a314610436578063a6df2c0114610449575f5ffd5b80635b7ab929116101c15780637e5a88f3116101865780637e5a88f3146103645780638163f23114610377578063818694f1146103b7578063847755e3146103ca5780638b2ec611146103dd575f5ffd5b80635b7ab9291461031b5780635c975abb1461032e578063652ba33d146103415780636c40d5d61461034957806375829def14610351575f5ffd5b8063311a335c11610207578063311a335c146102b9578063320d3b55146102cc5780633d6ed975146102df57806341a0e2c2146102f257806346b758a014610308575f5ffd5b806316c38b3c1461024357806316e3d7291461025857806318677f2a1461026b5780631fac43451461027e5780632e5ce77f146102a6575b5f5ffd5b610256610251366004612b12565b61059c565b005b610256610266366004612b43565b610625565b610256610279366004612b88565b6106ac565b61029161028c366004612bb3565b610759565b60405190151581526020015b60405180910390f35b6102916102b4366004612c2c565b610771565b6102916102c7366004612c63565b6108a5565b6102916102da366004612bb3565b6108bf565b6102916102ed366004612c63565b6108ce565b6102fa600181565b60405190815260200161029d565b610291610316366004612d8d565b6108dd565b610291610329366004612d8d565b6108f3565b5f5461029190600160a01b900460ff1681565b6102fa600381565b6102fa600281565b61025661035f366004612b88565b610900565b610291610372366004612d8d565b6109ce565b61039f610385366004612eab565b60016020525f90815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161029d565b6102916103c5366004612c2c565b6109db565b6102916103d8366004612f46565b610a43565b6102916103eb366004612bb3565b610c0b565b6102566103fe366004612fe2565b610c1a565b610291610411366004612bb3565b610cda565b610429610424366004612b43565b610ce8565b60405161029d919061304e565b610291610444366004612bb3565b610e13565b610256610457366004613084565b610e2d565b61029161046a366004612bb3565b610f57565b61029161047d366004612bb3565b610f71565b60025461039f906001600160a01b031681565b6102916104a33660046130fa565b610f8b565b6102916104b6366004612bb3565b6112a1565b6102916104c9366004612c2c565b6112af565b6102916104dc366004612bb3565b6112c5565b6102916104ef366004613142565b6112d3565b610291610502366004612d8d565b611527565b610291610515366004612c2c565b611534565b610291610528366004612bb3565b611668565b61054061053b366004613170565b611682565b60408051921515835260208301919091520161029d565b61056a6105653660046131a6565b611ca2565b60405161029d91906131f4565b5f5461039f906001600160a01b031681565b610291610597366004612c2c565b611de2565b5f546001600160a01b031633146105ce5760405162461bcd60e51b81526004016105c5906132e3565b60405180910390fd5b5f8054821515600160a01b0260ff60a01b199091161790556040517f9a506b30e47f3823b09f67e4c0dfa5c3d8023b71825b7ceaa97677129128c9c59061061a90831515815260200190565b60405180910390a150565b604051632988ebc960e21b81525f9073__$144f4fe859debe4776cdef2b99f7b97a42$__9063a623af249061065e908590600401613421565b602060405180830381865af4158015610679573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061069d9190613433565b90506106a881611def565b5050565b5f546001600160a01b031633146106d55760405162461bcd60e51b81526004016105c5906132e3565b6001600160a01b0381166107375760405162461bcd60e51b8152602060048201526024808201527f526f6f742072656769737472792063616e6e6f74206265207a65726f206164646044820152637265737360e01b60648201526084016105c5565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b5f6107678460028585611eb0565b90505b9392505050565b5f5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__6384052813876040518263ffffffff1660e01b81526004016107ac9190613421565b606060405180830381865af41580156107c7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107eb919061344a565b919450925090506107fd8386356120a2565b6108195760405162461bcd60e51b81526004016105c59061348b565b60ff811615610892576040805162461bcd60e51b81526020600482015260248101919091527f5468652070726f6f6620757070657220626f756e64206d75737420626520302c60448201527f20706c65617365207573652069734167654265747765656e20696e737465616460648201526084016105c5565b5060ff8681169116149150509392505050565b5f6108b48585600286866120cf565b90505b949350505050565b5f6107678485600286866120cf565b5f6108b48585600386866120cf565b5f6108ea836004846123f2565b90505b92915050565b5f6108ea836007846123f2565b5f546001600160a01b031633146109295760405162461bcd60e51b81526004016105c5906132e3565b6001600160a01b03811661097f5760405162461bcd60e51b815260206004820152601c60248201527f41646d696e2063616e6e6f74206265207a65726f20616464726573730000000060448201526064016105c5565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b9190a35050565b5f6108ea836006846123f2565b5f5f8460ff1611610a2e5760405162461bcd60e51b815260206004820152601e60248201527f4d617820616765206d7573742062652067726561746572207468616e2030000060448201526064016105c5565b610767610a3c600186613510565b8484611534565b5f5f610a8386868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061250092505050565b610afd57600860028787604051602001610a9e929190613529565b60408051601f1981840301815290829052610ab891613538565b602060405180830381855afa158015610ad3573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610af69190613433565b901c610aff565b5f5b90505f610b4085858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525061250092505050565b610bba57600860028686604051602001610b5b929190613529565b60408051601f1981840301815290829052610b7591613538565b602060405180830381855afa158015610b90573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610bb39190613433565b901c610bbc565b5f5b90508189896003818110610bd257610bd261354e565b90506020020135148015610bfe57508089896004818110610bf557610bf561354e565b90506020020135145b9998505050505050505050565b5f6107678485600386866120cf565b5f546001600160a01b03163314610c435760405162461bcd60e51b81526004016105c5906132e3565b5f5b81811015610cd55760015f848484818110610c6257610c6261354e565b602090810292909201358352508101919091526040015f2080546001600160a01b0319169055828282818110610c9a57610c9a61354e565b905060200201357f6fdcbcf8f91bc23f2c9dcfe8fe01d80d1b1afbbf207298e94c0171ccc587424c60405160405180910390a2600101610c45565b505050565b5f6107678460038585611eb0565b60408051606080820183525f80835260208301529181019190915260405163dfda037960e01b81525f9073__$144f4fe859debe4776cdef2b99f7b97a42$__9063dfda037990610d3c908690600401613421565b5f60405180830381865af4158015610d56573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610d7d91908101906135b1565b604051630578c5d360e11b815290915073__$144f4fe859debe4776cdef2b99f7b97a42$__90630af18ba690610db79084906004016135e2565b5f60405180830381865af4158015610dd1573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610df891908101906135f4565b604085015260208401526001600160a01b0316825250919050565b5f610767610e24620151808661363f565b60028585611eb0565b5f546001600160a01b03163314610e565760405162461bcd60e51b81526004016105c5906132e3565b5f5b83811015610f5057828282818110610e7257610e7261354e565b9050602002016020810190610e879190612b88565b60015f878785818110610e9c57610e9c61354e565b9050602002013581526020019081526020015f205f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550828282818110610ee557610ee561354e565b9050602002016020810190610efa9190612b88565b6001600160a01b0316858583818110610f1557610f1561354e565b905060200201357f636107338a3eb46f1f60562462f3ec11393d35fbc965991aaade3b9e7d89c3f560405160405180910390a3600101610e58565b5050505050565b5f610767610f688562015180613652565b60038585612505565b5f610767610f828562015180613652565b60028585612505565b5f5f5f5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__63defa8ed9896040518263ffffffff1660e01b8152600401610fc89190613421565b60a060405180830381865af4158015610fe3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110079190613665565b9398509196509450925090505f6001856001811115611028576110286136bd565b1490505f8b600281111561103e5761103e6136bd565b836002811115611050576110506136bd565b1490505f7f2532418a107c5306fa8308c22255792cf77e4a290cbce8a840a642a3e591340b881480156110ae575060018c6002811115611092576110926136bd565b14806110ae57505f8c60028111156110ac576110ac6136bd565b145b8061110e57507f16700a2d9168a194fc85f237af5829b5a2be05b8ae8ac4879ada34cf54a9c2118814801561110e575060028c60028111156110f2576110f26136bd565b148061110e57505f8c600281111561110c5761110c6136bd565b145b90505f7f1fa73686cf510f8f85757b0602de0dd72a13e68ae2092462be8b72662e7f179b8714801561116b575060018d600281111561114f5761114f6136bd565b148061116b57505f8d6002811115611169576111696136bd565b145b806111cb57507f24d9929b248be7eeecaa98e105c034a50539610f3fdd4cb9c8983ef4100d615d871480156111cb575060028d60028111156111af576111af6136bd565b14806111cb57505f8d60028111156111c9576111c96136bd565b145b90505f86158015611207575060018e60028111156111eb576111eb6136bd565b148061120757505f8e6002811115611205576112056136bd565b145b8061126757507f12e3dc7cc8fec0205b51ff21825630865028f3be5bc64a6eec9ee5e71221319f87148015611267575060028e600281111561124b5761124b6136bd565b148061126757505f8e6002811115611265576112656136bd565b145b90508480156112735750835b801561127c5750825b80156112855750815b801561128e5750805b9f9e505050505050505050505050505050565b5f6107678460028585612505565b5f6107676112be8560016136d1565b8484610771565b5f6107678460038585612505565b5f5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__6384052813876040518263ffffffff1660e01b815260040161130e9190613421565b606060405180830381865af4158015611329573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061134d919061344a565b9194509250905061135f8386356120a2565b61137b5760405162461bcd60e51b81526004016105c59061348b565b8660ff168860ff1611156113e75760405162461bcd60e51b815260206004820152602d60248201527f4d696e20616765206d757374206265206c657373207468616e206f722065717560448201526c616c20746f206d61782061676560981b60648201526084016105c5565b8160ff165f036114745760405162461bcd60e51b815260206004820152604c60248201527f5468652070726f6f66206c6f77657220626f756e64206d757374206265206e6f60448201527f6e2d7a65726f2c20706c656173652075736520697341676542656c6f774f724560648201526b1c5d585b081a5b9cdd19585960a21b608482015260a4016105c5565b8060ff165f036115015760405162461bcd60e51b815260206004820152604c60248201527f5468652070726f6f6620757070657220626f756e64206d757374206265206e6f60448201527f6e2d7a65726f2c20706c656173652075736520697341676541626f76654f724560648201526b1c5d585b081a5b9cdd19585960a21b608482015260a4016105c5565b8160ff168860ff1614801561151b57508060ff168760ff16145b98975050505050505050565b5f6108ea836005846123f2565b5f5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__6384052813876040518263ffffffff1660e01b815260040161156f9190613421565b606060405180830381865af415801561158a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115ae919061344a565b919450925090506115c08386356120a2565b6115dc5760405162461bcd60e51b81526004016105c59061348b565b60ff821615611655576040805162461bcd60e51b81526020600482015260248101919091527f5468652070726f6f66206c6f77657220626f756e64206d75737420626520302c60448201527f20706c65617365207573652069734167654265747765656e20696e737465616460648201526084016105c5565b60ff878116911614925050509392505050565b5f610767611679620151808661363f565b60038585611eb0565b5f80548190600160a01b900460ff16156116d35760405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81c185d5cd95960721b60448201526064016105c5565b5f6116e76116e185806136ea565b35612736565b90506117206116f685806136ea565b611704906040810190613708565b5f8181106117145761171461354e565b9050602002013561278f565b61175861172d85806136ea565b61173b906040810190613708565b600181811061174c5761174c61354e565b90506020020135612857565b6117b761176585806136ea565b611773906040810190613708565b808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152506117b192505050604087018761374d565b35612915565b61181f5760405162461bcd60e51b815260206004820152603360248201527f5468652070726f6f66207761732067656e657261746564206f757473696465206044820152721d1a19481d985b1a591a5d1e481c195c9a5bd9606a1b60648201526084016105c5565b61187061182c85806136ea565b61183a906040810190613708565b611847604088018861374d565b611855906020810190613761565b61186260408a018a61374d565b6103d8906040810190613761565b6118bc5760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420646f6d61696e206f722073636f706500000000000000000060448201526064016105c5565b61194f6118c985806136ea565b6118d7906040810190613708565b60059060016118e689806136ea565b6118f4906040810190613708565b6118ff92915061363f565b9261190c939291906137a3565b808060200260200160405190810160405280939291908181526020018383602002808284375f9201919091525061194a9250505060208701876137ce565b612940565b5f61195a85806136ea565b611968906040810190613708565b600261197488806136ea565b611982906040810190613708565b61198d92915061363f565b81811061199c5761199c61354e565b905060200201355f1c60038111156119b6576119b66136bd565b905060028160038111156119cc576119cc6136bd565b141580156119ec575060038160038111156119e9576119e96136bd565b14155b80611a1057506119ff604086018661374d565b611a10906080810190606001612b12565b611a6d5760405162461bcd60e51b815260206004820152602860248201527f4d6f636b2070726f6f667320617265206f6e6c7920616c6c6f77656420696e20604482015267646576206d6f646560c01b60648201526084016105c5565b5f816003811115611a8057611a806136bd565b1480611aa55750611a94604086018661374d565b611aa5906080810190606001612b12565b611b055760405162461bcd60e51b815260206004820152602b60248201527f53616c746564206e756c6c69666965727320617265206e6f7420737570706f7260448201526a74656420666f72206e6f7760a81b60648201526084016105c5565b6007611b1186806136ea565b611b1f906040810190613708565b611b2a92915061363f565b611b3760208701876137ce565b611b45906020810190613708565b905014611ba25760405162461bcd60e51b815260206004820152602560248201527f496e76616c696420636f6d6d697474656420696e70757420636f756e7473206c6044820152640cadccee8d60db1b60648201526084016105c5565b6001600160a01b03821663ea50d0e4611bbb87806136ea565b611bc9906020810190613761565b611bd389806136ea565b611be1906040810190613708565b6040518563ffffffff1660e01b8152600401611c0094939291906137e2565b602060405180830381865afa158015611c1b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c3f9190613813565b93505f6001611c4e87806136ea565b611c5c906040810190613708565b611c6792915061363f565b9050611c7386806136ea565b611c81906040810190613708565b82818110611c9157611c9161354e565b905060200201359350505050915091565b611cea60405180610100016040528060608152602001606081526020016060815260200160608152602001606081526020016060815260200160608152602001606081525090565b604051635450abb360e11b81525f9073__$144f4fe859debe4776cdef2b99f7b97a42$__9063a8a1576690611d23908790600401613421565b5f60405180830381865af4158015611d3d573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611d64919081019061382e565b6040516301e9bf5760e11b815290925073__$144f4fe859debe4776cdef2b99f7b97a42$__91506303d37eae90611da19084908790600401613887565b5f60405180830381865af4158015611dbb573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526108b791908101906138aa565b5f610767848585856112d3565b6002546040516383578c1160e01b815260036004820152602481018390526001600160a01b03909116906383578c1190604401602060405180830381865afa158015611e3d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e619190613813565b611ead5760405162461bcd60e51b815260206004820152601f60248201527f496e76616c69642073616e6374696f6e7320726567697374727920726f6f740060448201526064016105c5565b50565b5f5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__6374d9a37e87896040518363ffffffff1660e01b8152600401611eed929190613a3b565b606060405180830381865af4158015611f08573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f2c9190613a78565b91945092509050611f3e8386356120a2565b611f5a5760405162461bcd60e51b81526004016105c59061348b565b8115611fd85760405162461bcd60e51b815260206004820152604160248201527f5468652070726f6f66206c6f77657220626f756e64206d75737420626520302c60448201527f20706c6561736520757365206973446174654265747765656e20696e737465616064820152601960fa1b608482015260a4016105c5565b600287600a811115611fec57611fec6136bd565b14806120095750600387600a811115612007576120076136bd565b145b6120255760405162461bcd60e51b81526004016105c590613aa3565b600287600a811115612039576120396136bd565b0361207757805f0361205d5760405162461bcd60e51b81526004016105c590613acf565b61206b6383aa7e808261363f565b881493505050506108b7565b805f036120965760405162461bcd60e51b81526004016105c590613b47565b871492506108b7915050565b5f806120ae8385613652565b90508342101580156120bf57508381115b80156108b7575042109392505050565b5f5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__6374d9a37e87896040518363ffffffff1660e01b815260040161210c929190613a3b565b606060405180830381865af4158015612127573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061214b9190613a78565b9194509250905061215d8386356120a2565b6121795760405162461bcd60e51b81526004016105c59061348b565b878911156121e15760405162461bcd60e51b815260206004820152602f60248201527f4d696e2064617465206d757374206265206c657373207468616e206f7220657160448201526e75616c20746f206d6178206461746560881b60648201526084016105c5565b600287600a8111156121f5576121f56136bd565b14806122125750600387600a811115612210576122106136bd565b145b61222e5760405162461bcd60e51b81526004016105c590613aa3565b600287600a811115612242576122426136bd565b0361232857815f036122d75760405162461bcd60e51b815260206004820152605260248201527f5468652070726f6f66206c6f77657220626f756e64206d757374206265206e6f60448201527f6e2d7a65726f2c20706c656173652075736520697342697274686461746542656064820152711b1bddd3dc915c5d585b081a5b9cdd19585960721b608482015260a4016105c5565b805f036122f65760405162461bcd60e51b81526004016105c590613acf565b6123046383aa7e808361363f565b8914801561231e575061231b6383aa7e808261363f565b88145b93505050506123e9565b815f036123b95760405162461bcd60e51b815260206004820152605360248201527f5468652070726f6f66206c6f77657220626f756e64206d757374206265206e6f60448201527f6e2d7a65726f2c20706c65617365207573652069734578706972794461746542606482015272195b1bddd3dc915c5d585b081a5b9cdd195859606a1b608482015260a4016105c5565b805f036123d85760405162461bcd60e51b81526004016105c590613b47565b818914801561231e57508714925050505b95945050505050565b5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__63dc8c5e9a85876040518363ffffffff1660e01b815260040161242e929190613a3b565b5f60405180830381865af4158015612448573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261246f9190810190613bc0565b9150915080865114612485575f9250505061076a565b5f5b818110156124f3576124dc8782815181106124a4576124a461354e565b60200260200101518483815181106124be576124be61354e565b60200260200101518051602091820120825192909101919091201490565b6124eb575f935050505061076a565b600101612487565b5060019695505050505050565b511590565b5f5f5f5f73__$144f4fe859debe4776cdef2b99f7b97a42$__6374d9a37e87896040518363ffffffff1660e01b8152600401612542929190613a3b565b606060405180830381865af415801561255d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125819190613a78565b919450925090506125938386356120a2565b6125af5760405162461bcd60e51b81526004016105c59061348b565b600287600a8111156125c3576125c36136bd565b14806125e05750600387600a8111156125de576125de6136bd565b145b6125fc5760405162461bcd60e51b81526004016105c590613aa3565b600287600a811115612610576126106136bd565b036126a65780156126985760405162461bcd60e51b815260206004820152604660248201527f5468652070726f6f6620757070657220626f756e64206d75737420626520302c60448201527f20706c65617365207573652069734269727468646174654265747765656e20696064820152651b9cdd19585960d21b608482015260a4016105c5565b61206b6383aa7e808361363f565b801561272a5760405162461bcd60e51b815260206004820152604760248201527f5468652070726f6f6620757070657220626f756e64206d75737420626520302c60448201527f20706c6561736520757365206973457870697279446174654265747765656e206064820152661a5b9cdd19585960ca1b608482015260a4016105c5565b50861491506108b79050565b5f818152600160205260408120546001600160a01b0316806108ed5760405162461bcd60e51b815260206004820152601260248201527115995c9a599a595c881b9bdd08199bdd5b9960721b60448201526064016105c5565b6002546040516383578c1160e01b815260016004820152602481018390526001600160a01b03909116906383578c1190604401602060405180830381865afa1580156127dd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128019190613813565b611ead5760405162461bcd60e51b815260206004820152602160248201527f496e76616c696420636572746966696361746520726567697374727920726f6f6044820152601d60fa1b60648201526084016105c5565b600280546040516383578c1160e01b81526004810192909252602482018390526001600160a01b0316906383578c1190604401602060405180830381865afa1580156128a5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128c99190613813565b611ead5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c6964206369726375697420726567697374727920726f6f7400000060448201526064016105c5565b5f5f8360028151811061292a5761292a61354e565b60200260200101515f1c90506108b781846120a2565b5f805b6129506020840184613708565b9050811015612aaa575f600860026129688680613761565b869061297760208a018a613708565b888181106129875761298761354e565b90506020020135886129999190613652565b926129a693929190613c79565b6040516020016129b7929190613529565b60408051601f19818403018152908290526129d191613538565b602060405180830381855afa1580156129ec573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190612a0f9190613433565b901c9050848281518110612a2557612a2561354e565b60200260200101518114612a705760405162461bcd60e51b8152602060048201526012602482015271125b9d985b1a590818dbdb5b5a5d1b595b9d60721b60448201526064016105c5565b612a7d6020850185613708565b83818110612a8d57612a8d61354e565b9050602002013583612a9f9190613652565b925050600101612943565b50612ab58280613761565b90508114610cd55760405162461bcd60e51b815260206004820152601f60248201527f496e76616c696420636f6d6d697474656420696e70757473206c656e6774680060448201526064016105c5565b8015158114611ead575f5ffd5b5f60208284031215612b22575f5ffd5b813561076a81612b05565b5f60408284031215612b3d575f5ffd5b50919050565b5f60208284031215612b53575f5ffd5b81356001600160401b03811115612b68575f5ffd5b6108b784828501612b2d565b6001600160a01b0381168114611ead575f5ffd5b5f60208284031215612b98575f5ffd5b813561076a81612b74565b5f60808284031215612b3d575f5ffd5b5f5f5f60608486031215612bc5575f5ffd5b8335925060208401356001600160401b03811115612be1575f5ffd5b612bed86828701612b2d565b92505060408401356001600160401b03811115612c08575f5ffd5b612c1486828701612ba3565b9150509250925092565b60ff81168114611ead575f5ffd5b5f5f5f60608486031215612c3e575f5ffd5b8335612c4981612c1e565b925060208401356001600160401b03811115612be1575f5ffd5b5f5f5f5f60808587031215612c76575f5ffd5b843593506020850135925060408501356001600160401b03811115612c99575f5ffd5b612ca587828801612b2d565b92505060608501356001600160401b03811115612cc0575f5ffd5b612ccc87828801612ba3565b91505092959194509250565b634e487b7160e01b5f52604160045260245ffd5b60405161010081016001600160401b0381118282101715612d0f57612d0f612cd8565b60405290565b604051601f8201601f191681016001600160401b0381118282101715612d3d57612d3d612cd8565b604052919050565b5f6001600160401b03821115612d5d57612d5d612cd8565b5060051b60200190565b5f6001600160401b03821115612d7f57612d7f612cd8565b50601f01601f191660200190565b5f5f60408385031215612d9e575f5ffd5b82356001600160401b03811115612db3575f5ffd5b8301601f81018513612dc3575f5ffd5b8035612dd6612dd182612d45565b612d15565b8082825260208201915060208360051b850101925087831115612df7575f5ffd5b602084015b83811015612e775780356001600160401b03811115612e19575f5ffd5b8501603f81018a13612e29575f5ffd5b6020810135612e3a612dd182612d67565b8181526040838301018c1015612e4e575f5ffd5b816040840160208301375f60208383010152808652505050602083019250602081019050612dfc565b50945050505060208301356001600160401b03811115612e95575f5ffd5b612ea185828601612b2d565b9150509250929050565b5f60208284031215612ebb575f5ffd5b5035919050565b5f5f83601f840112612ed2575f5ffd5b5081356001600160401b03811115612ee8575f5ffd5b6020830191508360208260051b8501011115612f02575f5ffd5b9250929050565b5f5f83601f840112612f19575f5ffd5b5081356001600160401b03811115612f2f575f5ffd5b602083019150836020828501011115612f02575f5ffd5b5f5f5f5f5f5f60608789031215612f5b575f5ffd5b86356001600160401b03811115612f70575f5ffd5b612f7c89828a01612ec2565b90975095505060208701356001600160401b03811115612f9a575f5ffd5b612fa689828a01612f09565b90955093505060408701356001600160401b03811115612fc4575f5ffd5b612fd089828a01612f09565b979a9699509497509295939492505050565b5f5f60208385031215612ff3575f5ffd5b82356001600160401b03811115613008575f5ffd5b61301485828601612ec2565b90969095509350505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6020815260018060a01b038251166020820152602082015160408201525f60408301516060808401526108b76080840182613020565b5f5f5f5f60408587031215613097575f5ffd5b84356001600160401b038111156130ac575f5ffd5b6130b887828801612ec2565b90955093505060208501356001600160401b038111156130d6575f5ffd5b6130e287828801612ec2565b95989497509550505050565b60038110611ead575f5ffd5b5f5f5f5f6080858703121561310d575f5ffd5b8435613118816130ee565b93506020850135613128816130ee565b925060408501356001600160401b03811115612c99575f5ffd5b5f5f5f5f60808587031215613155575f5ffd5b843561316081612c1e565b9350602085013561312881612c1e565b5f60208284031215613180575f5ffd5b81356001600160401b03811115613195575f5ffd5b82016060818503121561076a575f5ffd5b5f5f604083850312156131b7575f5ffd5b82356001600160401b038111156131cc575f5ffd5b6131d885828601612b2d565b92505060208301356131e981612b05565b809150509250929050565b602081525f82516101006020840152613211610120840182613020565b90506020840151601f1984830301604085015261322e8282613020565b9150506040840151601f1984830301606085015261324c8282613020565b9150506060840151601f1984830301608085015261326a8282613020565b9150506080840151601f198483030160a08501526132888282613020565b91505060a0840151601f198483030160c08501526132a68282613020565b91505060c0840151601f198483030160e08501526132c48282613020565b91505060e0840151601f19848303016101008501526123e98282613020565b6020808252601a908201527f4e6f7420617574686f72697a65643a2061646d696e206f6e6c79000000000000604082015260600190565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b8183525f6001600160fb1b03831115613359575f5ffd5b8260051b80836020870137939093016020019392505050565b5f8135601e1983360301808212613387575f5ffd5b602091840191820191356001600160401b038111156133a4575f5ffd5b8036038313156133b2575f5ffd5b604086526133c460408701828561331a565b92505060208401358181126133d7575f5ffd5b8401602081019150356001600160401b038111156133f3575f5ffd5b8060051b3603821315613404575f5ffd5b8583036020870152613417838284613342565b9695505050505050565b602081525f6108ea6020830184613372565b5f60208284031215613443575f5ffd5b5051919050565b5f5f5f6060848603121561345c575f5ffd5b8351602085015190935061346f81612c1e565b604085015190925061348081612c1e565b809150509250925092565b6020808252604b908201527f5468652063757272656e742064617465207573656420696e207468652070726f60408201527f6f6620646f6573206e6f742066616c6c2077697468696e207468652076616c6960608201526a191a5d1e481c195c9a5bd960aa1b608082015260a00190565b634e487b7160e01b5f52601160045260245ffd5b60ff82811682821603908111156108ed576108ed6134fc565b818382375f9101908152919050565b5f82518060208501845e5f920191825250919050565b634e487b7160e01b5f52603260045260245ffd5b5f82601f830112613571575f5ffd5b8151602083015f613584612dd184612d67565b9050828152858383011115613597575f5ffd5b8282602083015e5f92810160200192909252509392505050565b5f602082840312156135c1575f5ffd5b81516001600160401b038111156135d6575f5ffd5b6108b784828501613562565b602081525f6108ea6020830184613020565b5f5f5f60608486031215613606575f5ffd5b835161361181612b74565b6020850151604086015191945092506001600160401b03811115613633575f5ffd5b612c1486828701613562565b818103818111156108ed576108ed6134fc565b808201808211156108ed576108ed6134fc565b5f5f5f5f5f60a08688031215613679575f5ffd5b855160208701519095506002811061368f575f5ffd5b60408701516060880151608089015192965090945092506136af816130ee565b809150509295509295909350565b634e487b7160e01b5f52602160045260245ffd5b60ff81811683821601908111156108ed576108ed6134fc565b5f8235605e198336030181126136fe575f5ffd5b9190910192915050565b5f5f8335601e1984360301811261371d575f5ffd5b8301803591506001600160401b03821115613736575f5ffd5b6020019150600581901b3603821315612f02575f5ffd5b5f8235607e198336030181126136fe575f5ffd5b5f5f8335601e19843603018112613776575f5ffd5b8301803591506001600160401b0382111561378f575f5ffd5b602001915036819003821315612f02575f5ffd5b5f5f858511156137b1575f5ffd5b838611156137bd575f5ffd5b5050600583901b0193919092039150565b5f8235603e198336030181126136fe575f5ffd5b604081525f6137f560408301868861331a565b8281036020840152613808818587613342565b979650505050505050565b5f60208284031215613823575f5ffd5b815161076a81612b05565b5f5f6040838503121561383f575f5ffd5b82516001600160401b03811115613854575f5ffd5b61386085828601613562565b92505060208301516001600160401b0381111561387b575f5ffd5b612ea185828601613562565b604081525f6138996040830185613020565b905082151560208301529392505050565b5f602082840312156138ba575f5ffd5b81516001600160401b038111156138cf575f5ffd5b820161010081850312156138e1575f5ffd5b6138e9612cec565b81516001600160401b038111156138fe575f5ffd5b61390a86828501613562565b82525060208201516001600160401b03811115613925575f5ffd5b61393186828501613562565b60208301525060408201516001600160401b0381111561394f575f5ffd5b61395b86828501613562565b60408301525060608201516001600160401b03811115613979575f5ffd5b61398586828501613562565b60608301525060808201516001600160401b038111156139a3575f5ffd5b6139af86828501613562565b60808301525060a08201516001600160401b038111156139cd575f5ffd5b6139d986828501613562565b60a08301525060c08201516001600160401b038111156139f7575f5ffd5b613a0386828501613562565b60c08301525060e08201516001600160401b03811115613a21575f5ffd5b613a2d86828501613562565b60e083015250949350505050565b604081525f613a4d6040830185613372565b9050600b8310613a6b57634e487b7160e01b5f52602160045260245ffd5b8260208301529392505050565b5f5f5f60608486031215613a8a575f5ffd5b5050815160208301516040909301519094929350919050565b602080825260129082015271496e76616c69642070726f6f66207479706560701b604082015260600190565b60208082526052908201527f5468652070726f6f6620757070657220626f756e64206d757374206265206e6f60408201527f6e2d7a65726f2c20706c656173652075736520697342697274686461746541626060820152711bdd9953dc915c5d585b081a5b9cdd19585960721b608082015260a00190565b60208082526053908201527f5468652070726f6f6620757070657220626f756e64206d757374206265206e6f60408201527f6e2d7a65726f2c20706c65617365207573652069734578706972794461746541606082015272189bdd9953dc915c5d585b081a5b9cdd195859606a1b608082015260a00190565b5f5f60408385031215613bd1575f5ffd5b82516001600160401b03811115613be6575f5ffd5b8301601f81018513613bf6575f5ffd5b8051613c04612dd182612d45565b8082825260208201915060208360051b850101925087831115613c25575f5ffd5b602084015b83811015613c655780516001600160401b03811115613c47575f5ffd5b613c568a602083890101613562565b84525060209283019201613c2a565b506020969096015195979596505050505050565b5f5f85851115613c87575f5ffd5b83861115613c93575f5ffd5b505082019391909203915056fea264697066735822122003976ad8bc435d1afd265436a8ca6c800493492d2b2a0afcb7cacd312db60e3f64736f6c634300081d0033",
|
|
985
|
-
sourceMap: "706:31108:26:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2527:118;;;;;;:::i;:::-;;:::i;:::-;;23118:224;;;;;;:::i;:::-;;:::i;3178:206::-;;;;;;:::i;:::-;;:::i;14705:261::-;;;;;;:::i;:::-;;:::i;:::-;;;2384:14:33;;2377:22;2359:41;;2347:2;2332:18;14705:261:26;;;;;;;;4538:543;;;;;;:::i;:::-;;:::i;14091:279::-;;;;;;:::i;:::-;;:::i;15830:247::-;;;;;;:::i;:::-;;:::i;17636:282::-;;;;;;:::i;:::-;;:::i;738:69::-;;804:1;738:69;;;;;4308:25:33;;;4296:2;4281:18;738:69:26;4162:177:33;20526:220:26;;;;;;:::i;:::-;;:::i;22299:228::-;;;;;;:::i;:::-;;:::i;976:18::-;;;;;-1:-1:-1;;;976:18:26;;;;;;880:67;;944:1;880:67;;811:65;;873:1;811:65;;2294:229;;;;;;:::i;:::-;;:::i;21065:227::-;;;;;;:::i;:::-;;:::i;1084:53::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1084:53:26;;;;;;-1:-1:-1;;;;;7518:32:33;;;7500:51;;7488:2;7473:18;1084:53:26;7354:203:33;7831:283:26;;;;;;:::i;:::-;;:::i;25611:706::-;;;;;;:::i;:::-;;:::i;19402:250::-;;;;;;:::i;:::-;;:::i;2943:231::-;;;;;;:::i;:::-;;:::i;18259:264::-;;;;;;:::i;:::-;;:::i;22680:300::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;15265:263::-;;;;;;:::i;:::-;;:::i;2649:290::-;;;;;;:::i;:::-;;:::i;16979:264::-;;;;;;:::i;:::-;;:::i;13445:261::-;;;;;;:::i;:::-;;:::i;1211:33::-;;;;;-1:-1:-1;;;;;1211:33:26;;;23801:1471;;;;;;:::i;:::-;;:::i;12890:259::-;;;;;;:::i;:::-;;:::i;5355:224::-;;;;;;:::i;:::-;;:::i;16415:262::-;;;;;;:::i;:::-;;:::i;5936:768::-;;;;;;:::i;:::-;;:::i;21681:221::-;;;;;;:::i;:::-;;:::i;7014:543::-;;;;;;:::i;:::-;;:::i;18828:266::-;;;;;;:::i;:::-;;:::i;28255:3557::-;;;;;;:::i;:::-;;:::i;:::-;;;;14155:14:33;;14148:22;14130:41;;14202:2;14187:18;;14180:34;;;;14103:18;28255:3557:26;13962:258:33;3906:322:26;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;952:20::-;;;;;-1:-1:-1;;;;;952:20:26;;;8394:214;;;;;;:::i;:::-;;:::i;2527:118::-;2157:5;;-1:-1:-1;;;;;2157:5:26;2143:10;:19;2135:58;;;;-1:-1:-1;;;2135:58:26;;;;;;;:::i;:::-;;;;;;;;;2585:6:::1;:16:::0;;;::::1;;-1:-1:-1::0;;;2585:16:26::1;-1:-1:-1::0;;;;2585:16:26;;::::1;;::::0;;2612:28:::1;::::0;::::1;::::0;::::1;::::0;2594:7;2384:14:33;2377:22;2359:41;;2347:2;2332:18;;2219:187;2612:28:26::1;;;;;;;;2527:118:::0;:::o;23118:224::-;23237:52;;-1:-1:-1;;;23237:52:26;;23208:26;;23237:15;;:39;;:52;;23277:11;;23237:52;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23208:81;;23295:42;23318:18;23295:22;:42::i;:::-;23202:140;23118:224;:::o;3178:206::-;2157:5;;-1:-1:-1;;;;;2157:5:26;2143:10;:19;2135:58;;;;-1:-1:-1;;;2135:58:26;;;;;;;:::i;:::-;-1:-1:-1;;;;;3262:27:26;::::1;3254:76;;;::::0;-1:-1:-1;;;3254:76:26;;19279:2:33;3254:76:26::1;::::0;::::1;19261:21:33::0;19318:2;19298:18;;;19291:30;19357:34;19337:18;;;19330:62;-1:-1:-1;;;19408:18:33;;;19401:34;19452:19;;3254:76:26::1;19077:400:33::0;3254:76:26::1;3336:12;:43:::0;;-1:-1:-1;;;;;;3336:43:26::1;-1:-1:-1::0;;;;;3336:43:26;;;::::1;::::0;;;::::1;::::0;;3178:206::o;14705:261::-;14865:4;14884:77;14904:7;14913:19;14934:11;14947:13;14884:19;:77::i;:::-;14877:84;;14705:261;;;;;;:::o;4538:543::-;4688:4;4701:19;4722:9;4733;4746:15;:33;4780:11;4746:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4700:92;;-1:-1:-1;4700:92:26;-1:-1:-1;4700:92:26;-1:-1:-1;4806:73:26;4700:92;4841:37;;4806:21;:73::i;:::-;4798:161;;;;-1:-1:-1;;;4798:161:26;;;;;;;:::i;:::-;4973:8;;;;4965:85;;;;;-1:-1:-1;;;4965:85:26;;20663:2:33;4965:85:26;;;20645:21:33;20682:18;;;20675:30;;;;20741:34;20721:18;;;20714:62;20812:34;20792:18;;;20785:62;20864:19;;4965:85:26;20461:428:33;4965:85:26;-1:-1:-1;5063:13:26;;;;;;;;-1:-1:-1;;4538:543:26;;;;;:::o;14091:279::-;14266:4;14285:80;14299:7;14308;14317:19;14338:11;14351:13;14285;:80::i;:::-;14278:87;;14091:279;;;;;;;:::o;15830:247::-;15979:4;15998:74;16012:4;16018;16024:19;16045:11;16058:13;15998;:74::i;17636:282::-;17812:4;17831:82;17845:7;17854;17863:21;17886:11;17899:13;17831;:82::i;20526:220::-;20647:4;20666:75;20683:11;20696:31;20729:11;20666:16;:75::i;:::-;20659:82;;20526:220;;;;;:::o;22299:228::-;22424:4;22443:79;22460:11;22473:35;22510:11;22443:16;:79::i;2294:229::-;2157:5;;-1:-1:-1;;;;;2157:5:26;2143:10;:19;2135:58;;;;-1:-1:-1;;;2135:58:26;;;;;;;:::i;:::-;-1:-1:-1;;;;;2368:22:26;::::1;2360:63;;;::::0;-1:-1:-1;;;2360:63:26;;21096:2:33;2360:63:26::1;::::0;::::1;21078:21:33::0;21135:2;21115:18;;;21108:30;21174;21154:18;;;21147:58;21222:18;;2360:63:26::1;20894:352:33::0;2360:63:26::1;2429:16;2448:5:::0;;-1:-1:-1;;;;;2459:16:26;;::::1;-1:-1:-1::0;;;;;;2459:16:26;::::1;::::0;::::1;::::0;;2486:32:::1;::::0;2448:5;;;::::1;::::0;;;2486:32:::1;::::0;2429:16;2486:32:::1;2354:169;2294:229:::0;:::o;21065:227::-;21189:4;21208:79;21225:11;21238:35;21275:11;21208:16;:79::i;7831:283::-;7974:4;8003:1;7994:6;:10;;;7986:53;;;;-1:-1:-1;;;7986:53:26;;21453:2:33;7986:53:26;;;21435:21:33;21492:2;21472:18;;;21465:30;21531:32;21511:18;;;21504:60;21581:18;;7986:53:26;21251:354:33;7986:53:26;8052:57;8070:10;8079:1;8070:6;:10;:::i;:::-;8082:11;8095:13;8052:17;:57::i;25611:706::-;25750:4;25864:17;25884:27;25904:6;;25884:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25884:19:26;;-1:-1:-1;;;25884:27:26:i;:::-;:92;;25975:1;25939:32;25963:6;;25946:24;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;25946:24:26;;;;;;;;;;25939:32;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:37;;25884:92;;;25928:1;25884:92;25864:112;;26076:20;26099:26;26119:5;;26099:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26099:19:26;;-1:-1:-1;;;26099:26:26:i;:::-;:90;;26188:1;26153:31;26177:5;;26160:23;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;26160:23:26;;;;;;;;;;26153:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:36;;26099:90;;;26142:1;26099:90;26076:113;;26243:9;26202:12;;1108:1:19;26202:37:26;;;;;;;:::i;:::-;;;;;;;:50;:110;;;;;26300:12;26256;;1147:1:19;26256:40:26;;;;;;;:::i;:::-;;;;;;;:56;26202:110;26195:117;25611:706;-1:-1:-1;;;;;;;;;25611:706:26:o;19402:250::-;19552:4;19571:76;19585:4;19591;19597:21;19620:11;19633:13;19571;:76::i;2943:231::-;2157:5;;-1:-1:-1;;;;;2157:5:26;2143:10;:19;2135:58;;;;-1:-1:-1;;;2135:58:26;;;;;;;:::i;:::-;3029:9:::1;3024:146;3044:21:::0;;::::1;3024:146;;;3087:18;:33;3106:10;;3117:1;3106:13;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;::::1;;3087:33:::0;;-1:-1:-1;3087:33:26;::::1;::::0;;;;;;-1:-1:-1;3087:33:26;3080:40;;-1:-1:-1;;;;;;3080:40:26::1;::::0;;3149:10;;3160:1;3149:13;;::::1;;;;;:::i;:::-;;;;;;;3133:30;;;;;;;;;;3067:3;;3024:146;;;;2943:231:::0;;:::o;18259:264::-;18420:4;18439:79;18459:7;18468:21;18491:11;18504:13;18439:19;:79::i;22680:300::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;22819:47:26;;-1:-1:-1;;;22819:47:26;;22799:17;;22819:15;;:34;;:47;;22854:11;;22819:47;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;22819:47:26;;;;;;;;;;;;:::i;:::-;22941:34;;-1:-1:-1;;;22941:34:26;;22799:67;;-1:-1:-1;22941:15:26;;:28;;:34;;22799:67;;22941:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;22941:34:26;;;;;;;;;;;;:::i;:::-;22917:20;;;22872:103;22898:17;;;22872:103;-1:-1:-1;;;;;22872:103:26;;;-1:-1:-1;22873:9:26;22680:300;-1:-1:-1;22680:300:26:o;15265:263::-;15418:4;15437:86;15457:16;15467:6;15457:7;:16;:::i;:::-;15475:19;15496:11;15509:13;15437:19;:86::i;2649:290::-;2157:5;;-1:-1:-1;;;;;2157:5:26;2143:10;:19;2135:58;;;;-1:-1:-1;;;2135:58:26;;;;;;;:::i;:::-;2774:9:::1;2769:166;2789:21:::0;;::::1;2769:166;;;2861:9;;2871:1;2861:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;2825:18;:33;2844:10;;2855:1;2844:13;;;;;;;:::i;:::-;;;;;;;2825:33;;;;;;;;;;;;:48;;;;;-1:-1:-1::0;;;;;2825:48:26::1;;;;;-1:-1:-1::0;;;;;2825:48:26::1;;;;;;2915:9;;2925:1;2915:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;2886:42:26::1;2900:10;;2911:1;2900:13;;;;;;;:::i;:::-;;;;;;;2886:42;;;;;;;;;;2812:3;;2769:166;;;;2649:290:::0;;;;:::o;16979:264::-;17132:4;17151:87;17170:16;:7;17180:6;17170:16;:::i;:::-;17188:21;17211:11;17224:13;17151:18;:87::i;13445:261::-;13597:4;13616:85;13635:16;:7;13645:6;13635:16;:::i;:::-;13653:19;13674:11;13687:13;13616:18;:85::i;23801:1471::-;24100:4;24113:19;24134:23;24159:17;24178:30;24210:36;24250:15;:39;24290:11;24250:52;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24112:190;;-1:-1:-1;24112:190:26;;-1:-1:-1;24112:190:26;-1:-1:-1;24112:190:26;-1:-1:-1;24112:190:26;-1:-1:-1;24308:17:26;24343:22;24328:11;:37;;;;;;;;:::i;:::-;;24308:57;;24371:18;24418:13;24392:39;;;;;;;;:::i;:::-;:22;:39;;;;;;;;:::i;:::-;;;-1:-1:-1;24437:25:26;5336:66:19;24466:44:26;;:78;;;;-1:-1:-1;24521:6:26;24515:2;:12;;;;;;;;:::i;:::-;;:28;;;-1:-1:-1;24537:6:26;24531:2;:12;;;;;;;;:::i;:::-;;24515:28;24465:173;;;-1:-1:-1;5508:66:19;24550:49:26;;:87;;;;-1:-1:-1;24610:10:26;24604:2;:16;;;;;;;;:::i;:::-;;:32;;;-1:-1:-1;24630:6:26;24624:2;:12;;;;;;;;:::i;:::-;;24604:32;24437:201;-1:-1:-1;24644:23:26;4953:66:19;24671:38:26;;:72;;;;-1:-1:-1;24720:6:26;24714:2;:12;;;;;;;;:::i;:::-;;:28;;;-1:-1:-1;24736:6:26;24730:2;:12;;;;;;;;:::i;:::-;;24714:28;24670:160;;;-1:-1:-1;5174:66:19;24749:42:26;;:80;;;;-1:-1:-1;24802:10:26;24796:2;:16;;;;;;;;:::i;:::-;;:32;;;-1:-1:-1;24822:6:26;24816:2;:12;;;;;;;;:::i;:::-;;24796:32;24644:186;-1:-1:-1;24920:36:26;24960;;:70;;;;-1:-1:-1;25007:6:26;25001:2;:12;;;;;;;;:::i;:::-;;:28;;;-1:-1:-1;25023:6:26;25017:2;:12;;;;;;;;:::i;:::-;;25001:28;24959:185;;;-1:-1:-1;5681:66:19;25036:69:26;;:107;;;;-1:-1:-1;25116:10:26;25110:2;:16;;;;;;;;:::i;:::-;;:32;;;-1:-1:-1;25136:6:26;25130:2;:12;;;;;;;;:::i;:::-;;25110:32;24920:224;;25157:12;:29;;;;;25173:13;25157:29;:53;;;;;25190:20;25157:53;:75;;;;;25214:18;25157:75;:110;;;;;25236:31;25157:110;25150:117;23801:1471;-1:-1:-1;;;;;;;;;;;;;;;23801:1471:26:o;12890:259::-;13049:4;13068:76;13087:7;13096:19;13117:11;13130:13;13068:18;:76::i;5355:224::-;5498:4;5517:57;5535:10;:6;5544:1;5535:10;:::i;:::-;5547:11;5560:13;5517:17;:57::i;16415:262::-;16575:4;16594:78;16613:7;16622:21;16645:11;16658:13;16594:18;:78::i;5936:768::-;6099:4;6112:19;6133:9;6144;6157:15;:33;6191:11;6157:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6111:92;;-1:-1:-1;6111:92:26;-1:-1:-1;6111:92:26;-1:-1:-1;6217:73:26;6111:92;6252:37;;6217:21;:73::i;:::-;6209:161;;;;-1:-1:-1;;;6209:161:26;;;;;;;:::i;:::-;6394:6;6384:16;;:6;:16;;;;6376:74;;;;-1:-1:-1;;;6376:74:26;;25823:2:33;6376:74:26;;;25805:21:33;25862:2;25842:18;;;25835:30;25901:34;25881:18;;;25874:62;-1:-1:-1;;;25952:18:33;;;25945:43;26005:19;;6376:74:26;25621:409:33;6376:74:26;6464:3;:8;;6471:1;6464:8;6456:97;;;;-1:-1:-1;;;6456:97:26;;26237:2:33;6456:97:26;;;26219:21:33;26276:2;26256:18;;;26249:30;26315:34;26295:18;;;26288:62;26386:34;26366:18;;;26359:62;-1:-1:-1;;;26437:19:33;;;26430:43;26490:19;;6456:97:26;26035:480:33;6456:97:26;6567:3;:8;;6574:1;6567:8;6559:97;;;;-1:-1:-1;;;6559:97:26;;26722:2:33;6559:97:26;;;26704:21:33;26761:2;26741:18;;;26734:30;26800:34;26780:18;;;26773:62;26871:34;26851:18;;;26844:62;-1:-1:-1;;;26922:19:33;;;26915:43;26975:19;;6559:97:26;26520:480:33;6559:97:26;6679:3;6669:13;;:6;:13;;;:30;;;;;6696:3;6686:13;;:6;:13;;;6669:30;6662:37;5936:768;-1:-1:-1;;;;;;;;5936:768:26:o;21681:221::-;21803:4;21822:75;21839:11;21852:31;21885:11;21822:16;:75::i;7014:543::-;7164:4;7177:19;7198:9;7209;7222:15;:33;7256:11;7222:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7176:92;;-1:-1:-1;7176:92:26;-1:-1:-1;7176:92:26;-1:-1:-1;7282:73:26;7176:92;7317:37;;7282:21;:73::i;:::-;7274:161;;;;-1:-1:-1;;;7274:161:26;;;;;;;:::i;:::-;7449:8;;;;7441:85;;;;;-1:-1:-1;;;7441:85:26;;27207:2:33;7441:85:26;;;27189:21:33;27226:18;;;27219:30;;;;27285:34;27265:18;;;27258:62;27356:34;27336:18;;;27329:62;27408:19;;7441:85:26;27005:428:33;7441:85:26;7539:13;;;;;;;;-1:-1:-1;;;7014:543:26;;;;;:::o;18828:266::-;18982:4;19001:88;19021:16;19031:6;19021:7;:16;:::i;:::-;19039:21;19062:11;19075:13;19001:19;:88::i;28255:3557::-;28362:12;2249:6;;28362:12;;-1:-1:-1;;;2249:6:26;;;;2248:7;2240:38;;;;-1:-1:-1;;;2240:38:26;;27640:2:33;2240:38:26;;;27622:21:33;27679:2;27659:18;;;27652:30;-1:-1:-1;;;27698:18:33;;;27691:48;27756:18;;2240:38:26;27438:342:33;2240:38:26;28485:16:::1;28504:51;28517:28;:6:::0;;:28:::1;:::i;:::-;:37;28504:12;:51::i;:::-;28485:70:::0;-1:-1:-1;28604:112:26::1;28629:28;:6:::0;;:28:::1;:::i;:::-;:41;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;977:1:19;28629:86:26;;;;;;;:::i;:::-;;;;;;;28604:24;:112::i;:::-;28761:104;28782:28;:6:::0;;:28:::1;:::i;:::-;:41;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;1029:1:19;28782:82:26;;;;;;;:::i;:::-;;;;;;;28761:20;:104::i;:::-;28923:98;28933:28;:6:::0;;:28:::1;:::i;:::-;:41;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;28923:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;28976:20:26::1;::::0;-1:-1:-1;;;28976:20:26::1;::::0;::::1;::::0;::::1;:::i;:::-;:44;28923:9;:98::i;:::-;28908:180;;;::::0;-1:-1:-1;;;28908:180:26;;29218:2:33;28908:180:26::1;::::0;::::1;29200:21:33::0;29257:2;29237:18;;;29230:30;29296:34;29276:18;;;29269:62;-1:-1:-1;;;29347:18:33;;;29340:49;29406:19;;28908:180:26::1;29016:415:33::0;28908:180:26::1;29432:112;29445:28;:6:::0;;:28:::1;:::i;:::-;:41;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;29488:20;;::::0;::::1;:6:::0;:20:::1;:::i;:::-;:27;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;29517:20;;::::0;::::1;:6:::0;:20:::1;:::i;:::-;:26;::::0;::::1;::::0;::::1;::::0;::::1;:::i;29432:112::-;29424:148;;;::::0;-1:-1:-1;;;29424:148:26;;30165:2:33;29424:148:26::1;::::0;::::1;30147:21:33::0;30204:2;30184:18;;;30177:30;30243:25;30223:18;;;30216:53;30286:18;;29424:148:26::1;29963:347:33::0;29424:148:26::1;29640:249;29726:28;:6:::0;;:28:::1;:::i;:::-;:41;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;1195:1:19;::::0;29855::26::1;29804:28;:6:::0;;:28:::1;:::i;:::-;:41;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;:52;::::0;;-1:-1:-1;29804:52:26::1;:::i;:::-;29726:131;;;;;;;:::i;:::-;29640:249;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;29865:18:26::1;::::0;-1:-1:-1;;;29865:18:26::1;::::0;::::1;::::0;::::1;:::i;:::-;29640:21;:249::i;:::-;29896:27;29948:28;:6:::0;;:28:::1;:::i;:::-;:41;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;30041:1;29990:28;:6:::0;;:28:::1;:::i;:::-;:41;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;:52;::::0;;-1:-1:-1;29990:52:26::1;:::i;:::-;29948:95;;;;;;;:::i;:::-;;;;;;;29940:104;;29926:119;;;;;;;;:::i;:::-;29896:149:::0;-1:-1:-1;30309:39:26::1;30292:13;:56;;;;;;;;:::i;:::-;;;:112;;;;-1:-1:-1::0;30369:35:26::1;30352:13;:52;;;;;;;;:::i;:::-;;;30292:112;30291:152;;;-1:-1:-1::0;30415:20:26::1;;::::0;::::1;:6:::0;:20:::1;:::i;:::-;:28;::::0;;;;;::::1;;;:::i;:::-;30276:223;;;::::0;-1:-1:-1;;;30276:223:26;;31211:2:33;30276:223:26::1;::::0;::::1;31193:21:33::0;31250:2;31230:18;;;31223:30;31289:34;31269:18;;;31262:62;-1:-1:-1;;;31340:18:33;;;31333:38;31388:19;;30276:223:26::1;31009:404:33::0;30276:223:26::1;30730:34;30713:13;:51;;;;;;;;:::i;:::-;;:83;;;-1:-1:-1::0;30768:20:26::1;;::::0;::::1;:6:::0;:20:::1;:::i;:::-;:28;::::0;;;;;::::1;;;:::i;:::-;30698:157;;;::::0;-1:-1:-1;;;30698:157:26;;31620:2:33;30698:157:26::1;::::0;::::1;31602:21:33::0;31659:2;31639:18;;;31632:30;31698:34;31678:18;;;31671:62;-1:-1:-1;;;31749:18:33;;;31742:41;31800:19;;30698:157:26::1;31418:407:33::0;30698:157:26::1;1337:1:19;31085:28:26;:6:::0;;:28:::1;:::i;:::-;:41;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;:111;::::0;;-1:-1:-1;31085:111:26::1;:::i;:::-;31035:18;;::::0;::::1;:6:::0;:18:::1;:::i;:::-;:39;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;:46;;:161;31027:211;;;::::0;-1:-1:-1;;;31027:211:26;;32582:2:33;31027:211:26::1;::::0;::::1;32564:21:33::0;32621:2;32601:18;;;32594:30;32660:34;32640:18;;;32633:62;-1:-1:-1;;;32711:18:33;;;32704:35;32756:19;;31027:211:26::1;32380:401:33::0;31027:211:26::1;-1:-1:-1::0;;;;;31357:26:26;::::1;;31384:28;:6:::0;;:28:::1;:::i;:::-;:34;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;31420:28;:6:::0;;:28:::1;:::i;:::-;:41;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;31357:105;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;31347:115:::0;-1:-1:-1;31525:29:26::1;31608:1;31557:28;:6:::0;;:28:::1;:::i;:::-;:41;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;:52;::::0;;-1:-1:-1;31557:52:26::1;:::i;:::-;31525:84:::0;-1:-1:-1;31634:28:26::1;:6:::0;;:28:::1;:::i;:::-;:41;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;31676:21;31634:64;;;;;;;:::i;:::-;;;;;;;31615:83;;31773:34;;;28255:3557:::0;;;:::o;3906:322::-;4018:34;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4018:34:26;4093:51;;-1:-1:-1;;;4093:51:26;;4063:26;;4093:15;;:38;;:51;;4132:11;;4093:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4093:51:26;;;;;;;;;;;;:::i;:::-;4166:57;;-1:-1:-1;;;4166:57:26;;4060:84;;-1:-1:-1;4166:15:26;;-1:-1:-1;4166:32:26;;:57;;4060:84;;4214:8;;4166:57;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4166:57:26;;;;;;;;;;;;:::i;8394:214::-;8534:4;8553:50;8566:3;8571;8576:11;8589:13;8553:12;:50::i;27758:204::-;27848:12;;:62;;-1:-1:-1;;;27848:62:26;;944:1;27848:62;;;37063:25:33;37104:18;;;37097:34;;;-1:-1:-1;;;;;27848:12:26;;;;:24;;37036:18:33;;27848:62:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27833:124;;;;-1:-1:-1;;;27833:124:26;;37344:2:33;27833:124:26;;;37326:21:33;37383:2;37363:18;;;37356:30;37422:33;37402:18;;;37395:61;37473:18;;27833:124:26;37142:355:33;27833:124:26;27758:204;:::o;11306:1252::-;11487:4;11500:19;11521:11;11534;11549:15;:34;11584:11;11597:9;11549:58;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11499:108;;-1:-1:-1;11499:108:26;-1:-1:-1;11499:108:26;-1:-1:-1;11621:73:26;11499:108;11656:37;;11621:21;:73::i;:::-;11613:161;;;;-1:-1:-1;;;11613:161:26;;;;;;;:::i;:::-;11788:8;;11780:86;;;;-1:-1:-1;;;11780:86:26;;38699:2:33;11780:86:26;;;38681:21:33;38738:2;38718:18;;;38711:30;38777:34;38757:18;;;38750:62;38848:34;38828:18;;;38821:62;-1:-1:-1;;;38899:19:33;;;38892:32;38941:19;;11780:86:26;38497:469:33;11780:86:26;11893:19;11880:9;:32;;;;;;;;:::i;:::-;;:70;;;-1:-1:-1;11929:21:26;11916:9;:34;;;;;;;;:::i;:::-;;11880:70;11872:101;;;;-1:-1:-1;;;11872:101:26;;;;;;;:::i;:::-;11996:19;11983:9;:32;;;;;;;;:::i;:::-;;11979:575;;12033:3;12040:1;12033:8;12025:103;;;;-1:-1:-1;;;12025:103:26;;;;;;;:::i;:::-;12358:35;144:10:19;12358:3:26;:35;:::i;:::-;12347:7;:46;12340:53;;;;;;;11979:575;12422:3;12429:1;12422:8;12414:104;;;;-1:-1:-1;;;12414:104:26;;;;;;;:::i;:::-;12533:14;;;-1:-1:-1;12526:21:26;;-1:-1:-1;;12526:21:26;392:337:20;500:4;;546:35;558:23;546:9;:35;:::i;:::-;512:69;;619:9;600:15;:28;;:73;;;;;664:9;638:23;:35;600:73;:124;;;;-1:-1:-1;709:15:20;-1:-1:-1;683:41:20;392:337;-1:-1:-1;;;392:337:20:o;9751:1551:26:-;9947:4;9960:19;9981:11;9994;10009:15;:34;10044:11;10057:9;10009:58;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9959:108;;-1:-1:-1;9959:108:26;-1:-1:-1;9959:108:26;-1:-1:-1;10081:73:26;9959:108;10116:37;;10081:21;:73::i;:::-;10073:161;;;;-1:-1:-1;;;10073:161:26;;;;;;;:::i;:::-;10259:7;10248;:18;;10240:78;;;;-1:-1:-1;;;10240:78:26;;40503:2:33;10240:78:26;;;40485:21:33;40542:2;40522:18;;;40515:30;40581:34;40561:18;;;40554:62;-1:-1:-1;;;40632:18:33;;;40625:45;40687:19;;10240:78:26;40301:411:33;10240:78:26;10345:19;10332:9;:32;;;;;;;;:::i;:::-;;:70;;;-1:-1:-1;10381:21:26;10368:9;:34;;;;;;;;:::i;:::-;;10332:70;10324:101;;;;-1:-1:-1;;;10324:101:26;;;;;;;:::i;:::-;10448:19;10435:9;:32;;;;;;;;:::i;:::-;;10431:867;;10485:3;10492:1;10485:8;10477:103;;;;-1:-1:-1;;;10477:103:26;;40919:2:33;10477:103:26;;;40901:21:33;40958:2;40938:18;;;40931:30;40997:34;40977:18;;;40970:62;41068:34;41048:18;;;41041:62;-1:-1:-1;;;41119:19:33;;;41112:49;41178:19;;10477:103:26;40717:486:33;10477:103:26;10596:3;10603:1;10596:8;10588:103;;;;-1:-1:-1;;;10588:103:26;;;;;;;:::i;:::-;10922:35;144:10:19;10922:3:26;:35;:::i;:::-;10911:7;:46;:96;;;;-1:-1:-1;10972:35:26;144:10:19;10972:3:26;:35;:::i;:::-;10961:7;:46;10911:96;10904:103;;;;;;;10431:867;11036:3;11043:1;11036:8;11028:104;;;;-1:-1:-1;;;11028:104:26;;41410:2:33;11028:104:26;;;41392:21:33;41449:2;41429:18;;;41422:30;41488:34;41468:18;;;41461:62;41559:34;41539:18;;;41532:62;-1:-1:-1;;;41610:19:33;;;41603:50;41670:19;;11028:104:26;41208:487:33;11028:104:26;11148:3;11155:1;11148:8;11140:104;;;;-1:-1:-1;;;11140:104:26;;;;;;;:::i;:::-;11270:3;11259:7;:14;:32;;;;-1:-1:-1;11277:14:26;;;-1:-1:-1;;;9751:1551:26;;;;;;;;:::o;19656:559::-;19804:4;19817:32;19851:30;19885:15;:37;19923:11;19936:9;19885:61;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19885:61:26;;;;;;;;;;;;:::i;:::-;19816:130;;;;19978:22;19956:11;:18;:44;19952:77;;20017:5;20010:12;;;;;;19952:77;20039:9;20034:160;20058:22;20054:1;:26;20034:160;;;20100:55;20119:11;20131:1;20119:14;;;;;;;;:::i;:::-;;;;;;;20135:16;20152:1;20135:19;;;;;;;;:::i;:::-;;;;;;;234::24;;;;;;;211;;;;;;;;;;:42;;119:139;20100:55:26;20095:93;;20174:5;20167:12;;;;;;;20095:93;20082:3;;20034:160;;;-1:-1:-1;20206:4:26;;19656:559;-1:-1:-1;;;;;;19656:559:26:o;262:101:24:-;338:15;:20;;262:101::o;8612:1135:26:-;8792:4;8805:19;8826:11;8839;8854:15;:34;8889:11;8902:9;8854:58;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8804:108;;-1:-1:-1;8804:108:26;-1:-1:-1;8804:108:26;-1:-1:-1;8926:73:26;8804:108;8961:37;;8926:21;:73::i;:::-;8918:161;;;;-1:-1:-1;;;8918:161:26;;;;;;;:::i;:::-;9106:19;9093:9;:32;;;;;;;;:::i;:::-;;:70;;;-1:-1:-1;9142:21:26;9129:9;:34;;;;;;;;:::i;:::-;;9093:70;9085:101;;;;-1:-1:-1;;;9085:101:26;;;;;;;:::i;:::-;9209:19;9196:9;:32;;;;;;;;:::i;:::-;;9192:551;;9246:8;;9238:91;;;;-1:-1:-1;;;9238:91:26;;43080:2:33;9238:91:26;;;43062:21:33;43119:2;43099:18;;;43092:30;43158:34;43138:18;;;43131:62;43229:34;43209:18;;;43202:62;-1:-1:-1;;;43280:19:33;;;43273:37;43327:19;;9238:91:26;42878:474:33;9238:91:26;9559:35;144:10:19;9559:3:26;:35;:::i;9192:551::-;9623:8;;9615:92;;;;-1:-1:-1;;;9615:92:26;;43559:2:33;9615:92:26;;;43541:21:33;43598:2;43578:18;;;43571:30;43637:34;43617:18;;;43610:62;43708:34;43688:18;;;43681:62;-1:-1:-1;;;43759:19:33;;;43752:38;43807:19;;9615:92:26;43357:475:33;9615:92:26;-1:-1:-1;9722:14:26;;;-1:-1:-1;9715:21:26;;-1:-1:-1;9715:21:26;27128:210;27191:7;27225:28;;;:18;:28;;;;;;-1:-1:-1;;;;;27225:28:26;;27259:53;;;;-1:-1:-1;;;27259:53:26;;44039:2:33;27259:53:26;;;44021:21:33;44078:2;44058:18;;;44051:30;-1:-1:-1;;;44097:18:33;;;44090:48;44155:18;;27259:53:26;43837:342:33;27342:214:26;27436:12;;:66;;-1:-1:-1;;;27436:66:26;;:12;:66;;;37063:25:33;37104:18;;;37097:34;;;-1:-1:-1;;;;;27436:12:26;;;;:24;;37036:18:33;;27436:66:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27421:130;;;;-1:-1:-1;;;27421:130:26;;44386:2:33;27421:130:26;;;44368:21:33;44425:2;44405:18;;;44398:30;44464:34;44444:18;;;44437:62;-1:-1:-1;;;44515:18:33;;;44508:31;44556:19;;27421:130:26;44184:397:33;27560:194:26;27646:12;;;:58;;-1:-1:-1;;;27646:58:26;;;;;37063:25:33;;;;37104:18;;;37097:34;;;-1:-1:-1;;;;;27646:12:26;;:24;;37036:18:33;;27646:58:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27631:118;;;;-1:-1:-1;;;27631:118:26;;44788:2:33;27631:118:26;;;44770:21:33;44827:2;44807:18;;;44800:30;44866:31;44846:18;;;44839:59;44915:18;;27631:118:26;44586:353:33;3388:300:26;3506:4;3518:28;3557:12;1072:1:19;3557:44:26;;;;;;;;:::i;:::-;;;;;;;3549:53;;3518:84;;3615:68;3637:20;3659:23;3615:21;:68::i;26321:803::-;26453:14;;26477:458;26501:32;;;;:11;:32;:::i;:::-;:39;;26497:1;:43;26477:458;;;26635:28;26792:1;26666:122;26699:27;:11;;:27;:::i;:::-;26727:6;;26743:32;;;;:11;:32;:::i;:::-;26776:1;26743:35;;;;;;;:::i;:::-;;;;;;;26734:6;:44;;;;:::i;:::-;26699:80;;;;;;;:::i;:::-;26682:98;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;26682:98:26;;;;;;;;;;26666:122;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:127;;26635:158;;26833:16;26850:1;26833:19;;;;;;;;:::i;:::-;;;;;;;26809:20;:43;26801:74;;;;-1:-1:-1;;;26801:74:26;;45764:2:33;26801:74:26;;;45746:21:33;45803:2;45783:18;;;45776:30;-1:-1:-1;;;45822:18:33;;;45815:48;45880:18;;26801:74:26;45562:342:33;26801:74:26;26893:32;;;;:11;:32;:::i;:::-;26926:1;26893:35;;;;;;;:::i;:::-;;;;;;;26883:45;;;;;:::i;:::-;;-1:-1:-1;;26542:3:26;;26477:458;;;-1:-1:-1;27049:27:26;:11;;:27;:::i;:::-;:34;;27039:6;:44;27031:88;;;;-1:-1:-1;;;27031:88:26;;46111:2:33;27031:88:26;;;46093:21:33;46150:2;46130:18;;;46123:30;46189:33;46169:18;;;46162:61;46240:18;;27031:88:26;45909:355:33;14:118;100:5;93:13;86:21;79:5;76:32;66:60;;122:1;119;112:12;137:241;193:6;246:2;234:9;225:7;221:23;217:32;214:52;;;262:1;259;252:12;214:52;301:9;288:23;320:28;342:5;320:28;:::i;383:159::-;447:5;492:2;483:6;478:3;474:16;470:25;467:45;;;508:1;505;498:12;467:45;-1:-1:-1;530:6:33;383:159;-1:-1:-1;383:159:33:o;547:365::-;638:6;691:2;679:9;670:7;666:23;662:32;659:52;;;707:1;704;697:12;659:52;747:9;734:23;-1:-1:-1;;;;;772:6:33;769:30;766:50;;;812:1;809;802:12;766:50;835:71;898:7;889:6;878:9;874:22;835:71;:::i;917:131::-;-1:-1:-1;;;;;992:31:33;;982:42;;972:70;;1038:1;1035;1028:12;1053:247;1112:6;1165:2;1153:9;1144:7;1140:23;1136:32;1133:52;;;1181:1;1178;1171:12;1133:52;1220:9;1207:23;1239:31;1264:5;1239:31;:::i;1305:162::-;1371:5;1416:3;1407:6;1402:3;1398:16;1394:26;1391:46;;;1433:1;1430;1423:12;1472:742;1615:6;1623;1631;1684:2;1672:9;1663:7;1659:23;1655:32;1652:52;;;1700:1;1697;1690:12;1652:52;1745:23;;;-1:-1:-1;1843:2:33;1828:18;;1815:32;-1:-1:-1;;;;;1859:30:33;;1856:50;;;1902:1;1899;1892:12;1856:50;1925:71;1988:7;1979:6;1968:9;1964:22;1925:71;:::i;:::-;1915:81;;;2049:2;2038:9;2034:18;2021:32;-1:-1:-1;;;;;2068:8:33;2065:32;2062:52;;;2110:1;2107;2100:12;2062:52;2133:75;2200:7;2189:8;2178:9;2174:24;2133:75;:::i;:::-;2123:85;;;1472:742;;;;;:::o;2411:114::-;2495:4;2488:5;2484:16;2477:5;2474:27;2464:55;;2515:1;2512;2505:12;2530:759;2671:6;2679;2687;2740:2;2728:9;2719:7;2715:23;2711:32;2708:52;;;2756:1;2753;2746:12;2708:52;2795:9;2782:23;2814:29;2837:5;2814:29;:::i;:::-;2862:5;-1:-1:-1;2918:2:33;2903:18;;2890:32;-1:-1:-1;;;;;2934:30:33;;2931:50;;;2977:1;2974;2967:12;3294:863;3446:6;3454;3462;3470;3523:3;3511:9;3502:7;3498:23;3494:33;3491:53;;;3540:1;3537;3530:12;3491:53;3585:23;;;-1:-1:-1;3705:2:33;3690:18;;3677:32;;-1:-1:-1;3786:2:33;3771:18;;3758:32;-1:-1:-1;;;;;3802:30:33;;3799:50;;;3845:1;3842;3835:12;3799:50;3868:71;3931:7;3922:6;3911:9;3907:22;3868:71;:::i;:::-;3858:81;;;3992:2;3981:9;3977:18;3964:32;-1:-1:-1;;;;;4011:8:33;4008:32;4005:52;;;4053:1;4050;4043:12;4005:52;4076:75;4143:7;4132:8;4121:9;4117:24;4076:75;:::i;:::-;4066:85;;;3294:863;;;;;;;:::o;4344:127::-;4405:10;4400:3;4396:20;4393:1;4386:31;4436:4;4433:1;4426:15;4460:4;4457:1;4450:15;4476:255;4548:2;4542:9;4590:6;4578:19;;-1:-1:-1;;;;;4612:34:33;;4648:22;;;4609:62;4606:88;;;4674:18;;:::i;:::-;4710:2;4703:22;4476:255;:::o;4736:275::-;4807:2;4801:9;4872:2;4853:13;;-1:-1:-1;;4849:27:33;4837:40;;-1:-1:-1;;;;;4892:34:33;;4928:22;;;4889:62;4886:88;;;4954:18;;:::i;:::-;4990:2;4983:22;4736:275;;-1:-1:-1;4736:275:33:o;5016:182::-;5075:4;-1:-1:-1;;;;;5100:6:33;5097:30;5094:56;;;5130:18;;:::i;:::-;-1:-1:-1;5175:1:33;5171:14;5187:4;5167:25;;5016:182::o;5203:187::-;5252:4;-1:-1:-1;;;;;5277:6:33;5274:30;5271:56;;;5307:18;;:::i;:::-;-1:-1:-1;5373:2:33;5352:15;-1:-1:-1;;5348:29:33;5379:4;5344:40;;5203:187::o;5395:1769::-;5530:6;5538;5591:2;5579:9;5570:7;5566:23;5562:32;5559:52;;;5607:1;5604;5597:12;5559:52;5647:9;5634:23;-1:-1:-1;;;;;5672:6:33;5669:30;5666:50;;;5712:1;5709;5702:12;5666:50;5735:22;;5788:4;5780:13;;5776:27;-1:-1:-1;5766:55:33;;5817:1;5814;5807:12;5766:55;5857:2;5844:16;5880:63;5896:46;5935:6;5896:46;:::i;:::-;5880:63;:::i;:::-;5965:3;5989:6;5984:3;5977:19;6021:4;6016:3;6012:14;6005:21;;6078:4;6068:6;6065:1;6061:14;6057:2;6053:23;6049:34;6035:48;;6106:7;6098:6;6095:19;6092:39;;;6127:1;6124;6117:12;6092:39;6159:4;6155:2;6151:13;6173:749;6189:6;6184:3;6181:15;6173:749;;;6277:3;6264:17;-1:-1:-1;;;;;6300:11:33;6297:35;6294:55;;;6345:1;6342;6335:12;6294:55;6372:20;;6427:2;6419:11;;6415:25;-1:-1:-1;6405:53:33;;6454:1;6451;6444:12;6405:53;6508:4;6504:2;6500:13;6487:27;6542:55;6558:38;6587:8;6558:38;:::i;6542:55::-;6610:25;;;6654:39;6662:17;;;6654:39;6651:52;-1:-1:-1;6648:72:33;;;6716:1;6713;6706:12;6648:72;6779:8;6774:2;6770;6766:11;6759:4;6750:7;6746:18;6733:55;6843:1;6836:4;6825:8;6816:7;6812:22;6808:33;6801:44;6870:7;6865:3;6858:20;;;;6907:4;6902:3;6898:14;6891:21;;6215:4;6210:3;6206:14;6199:21;;6173:749;;;-1:-1:-1;6941:5:33;-1:-1:-1;;;;6999:4:33;6984:20;;6971:34;-1:-1:-1;;;;;7017:32:33;;7014:52;;;7062:1;7059;7052:12;7014:52;7085:73;7150:7;7139:8;7128:9;7124:24;7085:73;:::i;:::-;7075:83;;;5395:1769;;;;;:::o;7169:180::-;7228:6;7281:2;7269:9;7260:7;7256:23;7252:32;7249:52;;;7297:1;7294;7287:12;7249:52;-1:-1:-1;7320:23:33;;7169:180;-1:-1:-1;7169:180:33:o;7562:367::-;7625:8;7635:6;7689:3;7682:4;7674:6;7670:17;7666:27;7656:55;;7707:1;7704;7697:12;7656:55;-1:-1:-1;7730:20:33;;-1:-1:-1;;;;;7762:30:33;;7759:50;;;7805:1;7802;7795:12;7759:50;7842:4;7834:6;7830:17;7818:29;;7902:3;7895:4;7885:6;7882:1;7878:14;7870:6;7866:27;7862:38;7859:47;7856:67;;;7919:1;7916;7909:12;7856:67;7562:367;;;;;:::o;7934:348::-;7986:8;7996:6;8050:3;8043:4;8035:6;8031:17;8027:27;8017:55;;8068:1;8065;8058:12;8017:55;-1:-1:-1;8091:20:33;;-1:-1:-1;;;;;8123:30:33;;8120:50;;;8166:1;8163;8156:12;8120:50;8203:4;8195:6;8191:17;8179:29;;8255:3;8248:4;8239:6;8231;8227:19;8223:30;8220:39;8217:59;;;8272:1;8269;8262:12;8287:1047;8415:6;8423;8431;8439;8447;8455;8508:2;8496:9;8487:7;8483:23;8479:32;8476:52;;;8524:1;8521;8514:12;8476:52;8564:9;8551:23;-1:-1:-1;;;;;8589:6:33;8586:30;8583:50;;;8629:1;8626;8619:12;8583:50;8668:70;8730:7;8721:6;8710:9;8706:22;8668:70;:::i;:::-;8757:8;;-1:-1:-1;8642:96:33;-1:-1:-1;;8845:2:33;8830:18;;8817:32;-1:-1:-1;;;;;8861:32:33;;8858:52;;;8906:1;8903;8896:12;8858:52;8945:61;8998:7;8987:8;8976:9;8972:24;8945:61;:::i;:::-;9025:8;;-1:-1:-1;8919:87:33;-1:-1:-1;;9113:2:33;9098:18;;9085:32;-1:-1:-1;;;;;9129:32:33;;9126:52;;;9174:1;9171;9164:12;9126:52;9213:61;9266:7;9255:8;9244:9;9240:24;9213:61;:::i;:::-;8287:1047;;;;-1:-1:-1;8287:1047:33;;-1:-1:-1;8287:1047:33;;9293:8;;8287:1047;-1:-1:-1;;;8287:1047:33:o;9339:437::-;9425:6;9433;9486:2;9474:9;9465:7;9461:23;9457:32;9454:52;;;9502:1;9499;9492:12;9454:52;9542:9;9529:23;-1:-1:-1;;;;;9567:6:33;9564:30;9561:50;;;9607:1;9604;9597:12;9561:50;9646:70;9708:7;9699:6;9688:9;9684:22;9646:70;:::i;:::-;9735:8;;9620:96;;-1:-1:-1;9339:437:33;-1:-1:-1;;;;9339:437:33:o;9781:289::-;9823:3;9861:5;9855:12;9888:6;9883:3;9876:19;9944:6;9937:4;9930:5;9926:16;9919:4;9914:3;9910:14;9904:47;9996:1;9989:4;9980:6;9975:3;9971:16;9967:27;9960:38;10059:4;10052:2;10048:7;10043:2;10035:6;10031:15;10027:29;10022:3;10018:39;10014:50;10007:57;;;9781:289;;;;:::o;10075:492::-;10260:2;10249:9;10242:21;10335:1;10331;10326:3;10322:11;10318:19;10309:6;10303:13;10299:39;10294:2;10283:9;10279:18;10272:67;10393:2;10385:6;10381:15;10375:22;10370:2;10359:9;10355:18;10348:50;10223:4;10445:2;10437:6;10433:15;10427:22;10487:4;10480;10469:9;10465:20;10458:34;10509:52;10556:3;10545:9;10541:19;10527:12;10509:52;:::i;10572:768::-;10694:6;10702;10710;10718;10771:2;10759:9;10750:7;10746:23;10742:32;10739:52;;;10787:1;10784;10777:12;10739:52;10827:9;10814:23;-1:-1:-1;;;;;10852:6:33;10849:30;10846:50;;;10892:1;10889;10882:12;10846:50;10931:70;10993:7;10984:6;10973:9;10969:22;10931:70;:::i;:::-;11020:8;;-1:-1:-1;10905:96:33;-1:-1:-1;;11108:2:33;11093:18;;11080:32;-1:-1:-1;;;;;11124:32:33;;11121:52;;;11169:1;11166;11159:12;11121:52;11208:72;11272:7;11261:8;11250:9;11246:24;11208:72;:::i;:::-;10572:768;;;;-1:-1:-1;11299:8:33;-1:-1:-1;;;;10572:768:33:o;11576:112::-;11662:1;11655:5;11652:12;11642:40;;11678:1;11675;11668:12;11693:954;11872:6;11880;11888;11896;11949:3;11937:9;11928:7;11924:23;11920:33;11917:53;;;11966:1;11963;11956:12;11917:53;12005:9;11992:23;12024:42;12060:5;12024:42;:::i;:::-;12085:5;-1:-1:-1;12142:2:33;12127:18;;12114:32;12155:44;12114:32;12155:44;:::i;:::-;12218:7;-1:-1:-1;12276:2:33;12261:18;;12248:32;-1:-1:-1;;;;;12292:30:33;;12289:50;;;12335:1;12332;12325:12;12652:897;12800:6;12808;12816;12824;12877:3;12865:9;12856:7;12852:23;12848:33;12845:53;;;12894:1;12891;12884:12;12845:53;12933:9;12920:23;12952:29;12975:5;12952:29;:::i;:::-;13000:5;-1:-1:-1;13057:2:33;13042:18;;13029:32;13070:31;13029:32;13070:31;:::i;13554:403::-;13657:6;13710:2;13698:9;13689:7;13685:23;13681:32;13678:52;;;13726:1;13723;13716:12;13678:52;13766:9;13753:23;-1:-1:-1;;;;;13791:6:33;13788:30;13785:50;;;13831:1;13828;13821:12;13785:50;13854:22;;13910:2;13892:16;;;13888:25;13885:45;;;13926:1;13923;13916:12;14225:494;14322:6;14330;14383:2;14371:9;14362:7;14358:23;14354:32;14351:52;;;14399:1;14396;14389:12;14351:52;14439:9;14426:23;-1:-1:-1;;;;;14464:6:33;14461:30;14458:50;;;14504:1;14501;14494:12;14458:50;14527:71;14590:7;14581:6;14570:9;14566:22;14527:71;:::i;:::-;14517:81;;;14648:2;14637:9;14633:18;14620:32;14661:28;14683:5;14661:28;:::i;:::-;14708:5;14698:15;;;14225:494;;;;;:::o;14724:1698::-;14917:2;14906:9;14899:21;14880:4;14955:6;14949:13;14998:6;14993:2;14982:9;14978:18;14971:34;15028:52;15075:3;15064:9;15060:19;15046:12;15028:52;:::i;:::-;15014:66;;15129:2;15121:6;15117:15;15111:22;15201:2;15197:7;15185:9;15177:6;15173:22;15169:36;15164:2;15153:9;15149:18;15142:64;15229:41;15263:6;15247:14;15229:41;:::i;:::-;15215:55;;;15319:2;15311:6;15307:15;15301:22;15391:2;15387:7;15375:9;15367:6;15363:22;15359:36;15354:2;15343:9;15339:18;15332:64;15419:41;15453:6;15437:14;15419:41;:::i;:::-;15405:55;;;15509:2;15501:6;15497:15;15491:22;15582:2;15578:7;15566:9;15558:6;15554:22;15550:36;15544:3;15533:9;15529:19;15522:65;15610:41;15644:6;15628:14;15610:41;:::i;:::-;15596:55;;;15700:3;15692:6;15688:16;15682:23;15774:2;15770:7;15758:9;15750:6;15746:22;15742:36;15736:3;15725:9;15721:19;15714:65;15802:41;15836:6;15820:14;15802:41;:::i;:::-;15788:55;;;15892:3;15884:6;15880:16;15874:23;15966:2;15962:7;15950:9;15942:6;15938:22;15934:36;15928:3;15917:9;15913:19;15906:65;15994:41;16028:6;16012:14;15994:41;:::i;:::-;15980:55;;;16084:3;16076:6;16072:16;16066:23;16158:2;16154:7;16142:9;16134:6;16130:22;16126:36;16120:3;16109:9;16105:19;16098:65;16186:41;16220:6;16204:14;16186:41;:::i;:::-;16172:55;;;16276:3;16268:6;16264:16;16258:23;16353:2;16349:7;16337:9;16329:6;16325:22;16321:36;16312:6;16301:9;16297:22;16290:68;16375:41;16409:6;16393:14;16375:41;:::i;16427:350::-;16629:2;16611:21;;;16668:2;16648:18;;;16641:30;16707:28;16702:2;16687:18;;16680:56;16768:2;16753:18;;16427:350::o;16782:266::-;16870:6;16865:3;16858:19;16922:6;16915:5;16908:4;16903:3;16899:14;16886:43;-1:-1:-1;16974:1:33;16949:16;;;16967:4;16945:27;;;16938:38;;;;17030:2;17009:15;;;-1:-1:-1;;17005:29:33;16996:39;;;16992:50;;16782:266::o;17053:311::-;17141:19;;;17123:3;-1:-1:-1;;;;;17172:31:33;;17169:51;;;17216:1;17213;17206:12;17169:51;17252:6;17249:1;17245:14;17304:8;17297:5;17290:4;17285:3;17281:14;17268:45;17333:18;;;;17353:4;17329:29;;17053:311;-1:-1:-1;;;17053:311:33:o;17369:1172::-;17432:3;17489:5;17476:19;17550:2;17546:7;17538:5;17522:14;17518:26;17514:40;17597:2;17577:18;17573:27;17563:55;;17614:1;17611;17604:12;17563:55;17753:4;17642:30;;;17740:18;;;;17695:21;-1:-1:-1;;;;;17770:30:33;;17767:50;;;17813:1;17810;17803:12;17767:50;17862:6;17846:14;17842:27;17833:7;17829:41;17826:61;;;17883:1;17880;17873:12;17826:61;17908:4;17903:3;17896:17;17934:58;17986:4;17981:3;17977:14;17969:6;17960:7;17934:58;:::i;:::-;17922:70;;;18053:4;18046:5;18042:16;18029:30;18104:2;18082:20;18078:29;18068:57;;18121:1;18118;18111:12;18068:57;18149:32;;18264:4;18251:18;;;-1:-1:-1;18206:21:33;-1:-1:-1;;;;;18281:32:33;;18278:52;;;18326:1;18323;18316:12;18278:52;18382:8;18379:1;18375:16;18359:14;18355:37;18346:7;18342:51;18339:71;;;18406:1;18403;18396:12;18339:71;18452:3;18446:4;18442:14;18435:4;18430:3;18426:14;18419:38;18473:62;18530:4;18520:8;18511:7;18473:62;:::i;:::-;18466:69;17369:1172;-1:-1:-1;;;;;;17369:1172:33:o;18546:291::-;18745:2;18734:9;18727:21;18708:4;18765:66;18827:2;18816:9;18812:18;18804:6;18765:66;:::i;18842:230::-;18912:6;18965:2;18953:9;18944:7;18940:23;18936:32;18933:52;;;18981:1;18978;18971:12;18933:52;-1:-1:-1;19026:16:33;;18842:230;-1:-1:-1;18842:230:33:o;19482:490::-;19566:6;19574;19582;19635:2;19623:9;19614:7;19610:23;19606:32;19603:52;;;19651:1;19648;19641:12;19603:52;19696:16;;19781:2;19766:18;;19760:25;19696:16;;-1:-1:-1;19794:31:33;19760:25;19794:31;:::i;:::-;19896:2;19881:18;;19875:25;19844:7;;-1:-1:-1;19909:31:33;19875:25;19909:31;:::i;:::-;19959:7;19949:17;;;19482:490;;;;;:::o;19977:479::-;20179:2;20161:21;;;20218:2;20198:18;;;20191:30;20257:34;20252:2;20237:18;;20230:62;20328:34;20323:2;20308:18;;20301:62;-1:-1:-1;;;20394:3:33;20379:19;;20372:42;20446:3;20431:19;;19977:479::o;21610:127::-;21671:10;21666:3;21662:20;21659:1;21652:31;21702:4;21699:1;21692:15;21726:4;21723:1;21716:15;21742:151;21832:4;21825:12;;;21811;;;21807:31;;21850:14;;21847:40;;;21867:18;;:::i;21898:273::-;22083:6;22075;22070:3;22057:33;22039:3;22109:16;;22134:13;;;22109:16;21898:273;-1:-1:-1;21898:273:33:o;22176:301::-;22305:3;22343:6;22337:13;22389:6;22382:4;22374:6;22370:17;22365:3;22359:37;22451:1;22415:16;;22440:13;;;-1:-1:-1;22415:16:33;22176:301;-1:-1:-1;22176:301:33:o;22482:127::-;22543:10;22538:3;22534:20;22531:1;22524:31;22574:4;22571:1;22564:15;22598:4;22595:1;22588:15;22614:514;22667:5;22720:3;22713:4;22705:6;22701:17;22697:27;22687:55;;22738:1;22735;22728:12;22687:55;22771:6;22765:13;22810:4;22802:6;22798:17;22839:1;22860:53;22876:36;22905:6;22876:36;:::i;22860:53::-;22849:64;;22938:6;22929:7;22922:23;22978:3;22969:6;22964:3;22960:16;22957:25;22954:45;;;22995:1;22992;22985:12;22954:45;23039:6;23034:3;23027:4;23018:7;23014:18;23008:38;23095:1;23066:20;;;23088:4;23062:31;23055:42;;;;-1:-1:-1;23070:7:33;22614:514;-1:-1:-1;;;22614:514:33:o;23133:335::-;23212:6;23265:2;23253:9;23244:7;23240:23;23236:32;23233:52;;;23281:1;23278;23271:12;23233:52;23314:9;23308:16;-1:-1:-1;;;;;23339:6:33;23336:30;23333:50;;;23379:1;23376;23369:12;23333:50;23402:60;23454:7;23445:6;23434:9;23430:22;23402:60;:::i;23473:226::-;23628:2;23617:9;23610:21;23591:4;23648:45;23689:2;23678:9;23674:18;23666:6;23648:45;:::i;23704:577::-;23802:6;23810;23818;23871:2;23859:9;23850:7;23846:23;23842:32;23839:52;;;23887:1;23884;23877:12;23839:52;23919:9;23913:16;23938:31;23963:5;23938:31;:::i;:::-;24059:2;24044:18;;24038:25;24133:2;24118:18;;24112:25;23988:5;;-1:-1:-1;24038:25:33;-1:-1:-1;;;;;;24149:30:33;;24146:50;;;24192:1;24189;24182:12;24146:50;24215:60;24267:7;24258:6;24247:9;24243:22;24215:60;:::i;24286:128::-;24353:9;;;24374:11;;;24371:37;;;24388:18;;:::i;24419:125::-;24484:9;;;24505:10;;;24502:36;;;24518:18;;:::i;24549:782::-;24691:6;24699;24707;24715;24723;24776:3;24764:9;24755:7;24751:23;24747:33;24744:53;;;24793:1;24790;24783:12;24744:53;24838:16;;24923:2;24908:18;;24902:25;24838:16;;-1:-1:-1;24958:1:33;24946:14;;24936:42;;24974:1;24971;24964:12;24936:42;25070:2;25055:18;;25049:25;25166:2;25151:18;;25145:25;25241:3;25226:19;;25220:26;24997:7;;-1:-1:-1;25049:25:33;;-1:-1:-1;25145:25:33;-1:-1:-1;25255:44:33;25220:26;25255:44;:::i;:::-;25318:7;25308:17;;;24549:782;;;;;;;;:::o;25336:127::-;25397:10;25392:3;25388:20;25385:1;25378:31;25428:4;25425:1;25418:15;25452:4;25449:1;25442:15;25468:148;25556:4;25535:12;;;25549;;;25531:31;;25574:13;;25571:39;;;25590:18;;:::i;27785:339::-;27893:4;27951:11;27938:25;28045:2;28041:7;28030:8;28014:14;28010:29;28006:43;27986:18;27982:68;27972:96;;28064:1;28061;28054:12;27972:96;28085:33;;;;;27785:339;-1:-1:-1;;27785:339:33:o;28129:545::-;28222:4;28228:6;28288:11;28275:25;28382:2;28378:7;28367:8;28351:14;28347:29;28343:43;28323:18;28319:68;28309:96;;28401:1;28398;28391:12;28309:96;28428:33;;28480:20;;;-1:-1:-1;;;;;;28512:30:33;;28509:50;;;28555:1;28552;28545:12;28509:50;28588:4;28576:17;;-1:-1:-1;28639:1:33;28635:14;;;28619;28615:35;28605:46;;28602:66;;;28664:1;28661;28654:12;28679:332;28779:4;28837:11;28824:25;28931:3;28927:8;28916;28900:14;28896:29;28892:44;28872:18;28868:69;28858:97;;28951:1;28948;28941:12;29436:522;29514:4;29520:6;29580:11;29567:25;29674:2;29670:7;29659:8;29643:14;29639:29;29635:43;29615:18;29611:68;29601:96;;29693:1;29690;29683:12;29601:96;29720:33;;29772:20;;;-1:-1:-1;;;;;;29804:30:33;;29801:50;;;29847:1;29844;29837:12;29801:50;29880:4;29868:17;;-1:-1:-1;29911:14:33;29907:27;;;29897:38;;29894:58;;;29948:1;29945;29938:12;30315:355;30436:9;30447;30489:8;30477:10;30474:24;30471:44;;;30511:1;30508;30501:12;30471:44;30540:6;30530:8;30527:20;30524:40;;;30560:1;30557;30550:12;30524:40;-1:-1:-1;;30602:1:33;30598:18;;;30586:31;;30639:25;;;;;-1:-1:-1;30315:355:33:o;30675:329::-;30773:4;30831:11;30818:25;30925:2;30921:7;30910:8;30894:14;30890:29;30886:43;30866:18;30862:68;30852:96;;30944:1;30941;30934:12;33312:475;33557:2;33546:9;33539:21;33520:4;33583:61;33640:2;33629:9;33625:18;33617:6;33609;33583:61;:::i;:::-;33692:9;33684:6;33680:22;33675:2;33664:9;33660:18;33653:50;33720:61;33774:6;33766;33758;33720:61;:::i;:::-;33712:69;33312:475;-1:-1:-1;;;;;;;33312:475:33:o;33792:245::-;33859:6;33912:2;33900:9;33891:7;33887:23;33883:32;33880:52;;;33928:1;33925;33918:12;33880:52;33960:9;33954:16;33979:28;34001:5;33979:28;:::i;34042:553::-;34139:6;34147;34200:2;34188:9;34179:7;34175:23;34171:32;34168:52;;;34216:1;34213;34206:12;34168:52;34249:9;34243:16;-1:-1:-1;;;;;34274:6:33;34271:30;34268:50;;;34314:1;34311;34304:12;34268:50;34337:60;34389:7;34380:6;34369:9;34365:22;34337:60;:::i;:::-;34327:70;;;34443:2;34432:9;34428:18;34422:25;-1:-1:-1;;;;;34462:8:33;34459:32;34456:52;;;34504:1;34501;34494:12;34456:52;34527:62;34581:7;34570:8;34559:9;34555:24;34527:62;:::i;34600:307::-;34777:2;34766:9;34759:21;34740:4;34797:45;34838:2;34827:9;34823:18;34815:6;34797:45;:::i;:::-;34789:53;;34892:6;34885:14;34878:22;34873:2;34862:9;34858:18;34851:50;34600:307;;;;;:::o;34912:1972::-;35014:6;35067:2;35055:9;35046:7;35042:23;35038:32;35035:52;;;35083:1;35080;35073:12;35035:52;35116:9;35110:16;-1:-1:-1;;;;;35141:6:33;35138:30;35135:50;;;35181:1;35178;35171:12;35135:50;35204:22;;35260:6;35242:16;;;35238:29;35235:49;;;35280:1;35277;35270:12;35235:49;35306:22;;:::i;:::-;35359:2;35353:9;-1:-1:-1;;;;;35377:8:33;35374:32;35371:52;;;35419:1;35416;35409:12;35371:52;35446:55;35493:7;35482:8;35478:2;35474:17;35446:55;:::i;:::-;35439:5;35432:70;;35541:2;35537;35533:11;35527:18;-1:-1:-1;;;;;35560:8:33;35557:32;35554:52;;;35602:1;35599;35592:12;35554:52;35638:55;35685:7;35674:8;35670:2;35666:17;35638:55;:::i;:::-;35633:2;35626:5;35622:14;35615:79;;35733:2;35729;35725:11;35719:18;-1:-1:-1;;;;;35752:8:33;35749:32;35746:52;;;35794:1;35791;35784:12;35746:52;35830:55;35877:7;35866:8;35862:2;35858:17;35830:55;:::i;:::-;35825:2;35818:5;35814:14;35807:79;;35925:2;35921;35917:11;35911:18;-1:-1:-1;;;;;35944:8:33;35941:32;35938:52;;;35986:1;35983;35976:12;35938:52;36022:55;36069:7;36058:8;36054:2;36050:17;36022:55;:::i;:::-;36017:2;36010:5;36006:14;35999:79;;36117:3;36113:2;36109:12;36103:19;-1:-1:-1;;;;;36137:8:33;36134:32;36131:52;;;36179:1;36176;36169:12;36131:52;36216:55;36263:7;36252:8;36248:2;36244:17;36216:55;:::i;:::-;36210:3;36203:5;36199:15;36192:80;;36311:3;36307:2;36303:12;36297:19;-1:-1:-1;;;;;36331:8:33;36328:32;36325:52;;;36373:1;36370;36363:12;36325:52;36410:55;36457:7;36446:8;36442:2;36438:17;36410:55;:::i;:::-;36404:3;36397:5;36393:15;36386:80;;36505:3;36501:2;36497:12;36491:19;-1:-1:-1;;;;;36525:8:33;36522:32;36519:52;;;36567:1;36564;36557:12;36519:52;36604:55;36651:7;36640:8;36636:2;36632:17;36604:55;:::i;:::-;36598:3;36591:5;36587:15;36580:80;;36699:3;36695:2;36691:12;36685:19;-1:-1:-1;;;;;36719:8:33;36716:32;36713:52;;;36761:1;36758;36751:12;36713:52;36798:55;36845:7;36834:8;36830:2;36826:17;36798:55;:::i;:::-;36792:3;36781:15;;36774:80;-1:-1:-1;36785:5:33;34912:1972;-1:-1:-1;;;;34912:1972:33:o;37502:529::-;37742:2;37731:9;37724:21;37705:4;37762:66;37824:2;37813:9;37809:18;37801:6;37762:66;:::i;:::-;37754:74;;37858:2;37850:6;37847:14;37837:145;;37904:10;37899:3;37895:20;37892:1;37885:31;37939:4;37936:1;37929:15;37967:4;37964:1;37957:15;37837:145;38018:6;38013:2;38002:9;37998:18;37991:34;37502:529;;;;;:::o;38036:456::-;38124:6;38132;38140;38193:2;38181:9;38172:7;38168:23;38164:32;38161:52;;;38209:1;38206;38199:12;38161:52;-1:-1:-1;;38254:16:33;;38360:2;38345:18;;38339:25;38456:2;38441:18;;;38435:25;38254:16;;38339:25;;-1:-1:-1;38435:25:33;38036:456;-1:-1:-1;38036:456:33:o;38971:342::-;39173:2;39155:21;;;39212:2;39192:18;;;39185:30;-1:-1:-1;;;39246:2:33;39231:18;;39224:48;39304:2;39289:18;;38971:342::o;39318:486::-;39520:2;39502:21;;;39559:2;39539:18;;;39532:30;39598:34;39593:2;39578:18;;39571:62;39669:34;39664:2;39649:18;;39642:62;-1:-1:-1;;;39735:3:33;39720:19;;39713:49;39794:3;39779:19;;39318:486::o;39809:487::-;40011:2;39993:21;;;40050:2;40030:18;;;40023:30;40089:34;40084:2;40069:18;;40062:62;40160:34;40155:2;40140:18;;40133:62;-1:-1:-1;;;40226:3:33;40211:19;;40204:50;40286:3;40271:19;;39809:487::o;41700:1173::-;41814:6;41822;41875:2;41863:9;41854:7;41850:23;41846:32;41843:52;;;41891:1;41888;41881:12;41843:52;41924:9;41918:16;-1:-1:-1;;;;;41949:6:33;41946:30;41943:50;;;41989:1;41986;41979:12;41943:50;42012:22;;42065:4;42057:13;;42053:27;-1:-1:-1;42043:55:33;;42094:1;42091;42084:12;42043:55;42127:2;42121:9;42150:63;42166:46;42205:6;42166:46;:::i;42150:63::-;42235:3;42259:6;42254:3;42247:19;42291:4;42286:3;42282:14;42275:21;;42348:4;42338:6;42335:1;42331:14;42327:2;42323:23;42319:34;42305:48;;42376:7;42368:6;42365:19;42362:39;;;42397:1;42394;42387:12;42362:39;42429:4;42425:2;42421:13;42443:308;42459:6;42454:3;42451:15;42443:308;;;42540:3;42534:10;-1:-1:-1;;;;;42563:11:33;42560:35;42557:55;;;42608:1;42605;42598:12;42557:55;42637:69;42698:7;42691:4;42677:11;42673:2;42669:20;42665:31;42637:69;:::i;:::-;42625:82;;-1:-1:-1;42736:4:33;42727:14;;;;42476;42443:308;;;-1:-1:-1;42837:4:33;42822:20;;;;42816:27;42770:5;;42816:27;;-1:-1:-1;;;;;;41700:1173:33:o;44944:331::-;45049:9;45060;45102:8;45090:10;45087:24;45084:44;;;45124:1;45121;45114:12;45084:44;45153:6;45143:8;45140:20;45137:40;;;45173:1;45170;45163:12;45137:40;-1:-1:-1;;45199:23:33;;;45244:25;;;;;-1:-1:-1;44944:331:33:o",
|
|
986
|
-
linkReferences: {
|
|
987
|
-
"src/InputsExtractor.sol": {
|
|
988
|
-
InputsExtractor: [
|
|
989
|
-
{ start: 1590, length: 20 },
|
|
990
|
-
{ start: 1911, length: 20 },
|
|
991
|
-
{ start: 3348, length: 20 },
|
|
992
|
-
{ start: 3471, length: 20 },
|
|
993
|
-
{ start: 3987, length: 20 },
|
|
994
|
-
{ start: 4825, length: 20 },
|
|
995
|
-
{ start: 5434, length: 20 },
|
|
996
|
-
{ start: 7419, length: 20 },
|
|
997
|
-
{ start: 7542, length: 20 },
|
|
998
|
-
{ start: 7862, length: 20 },
|
|
999
|
-
{ start: 8405, length: 20 },
|
|
1000
|
-
{ start: 9207, length: 20 },
|
|
1001
|
-
{ start: 9483, length: 20 }
|
|
1002
|
-
]
|
|
1003
|
-
}
|
|
1004
|
-
}
|
|
1005
|
-
},
|
|
1006
|
-
methodIdentifiers: {
|
|
1007
|
-
"CERTIFICATE_REGISTRY_ID()": "41a0e2c2",
|
|
1008
|
-
"CIRCUIT_REGISTRY_ID()": "6c40d5d6",
|
|
1009
|
-
"SANCTIONS_REGISTRY_ID()": "652ba33d",
|
|
1010
|
-
"addVerifiers(bytes32[],address[])": "a6df2c01",
|
|
1011
|
-
"admin()": "f851a440",
|
|
1012
|
-
"enforceSanctionsRoot((bytes,uint256[]))": "16e3d729",
|
|
1013
|
-
"getBoundData((bytes,uint256[]))": "98e73ac3",
|
|
1014
|
-
"getDisclosedData((bytes,uint256[]),bool)": "f3757ad4",
|
|
1015
|
-
"isAgeAbove(uint8,(bytes,uint256[]),(uint256,string,string,bool))": "c3fa6f22",
|
|
1016
|
-
"isAgeAboveOrEqual(uint8,(bytes,uint256[]),(uint256,string,string,bool))": "2e5ce77f",
|
|
1017
|
-
"isAgeBelow(uint8,(bytes,uint256[]),(uint256,string,string,bool))": "818694f1",
|
|
1018
|
-
"isAgeBelowOrEqual(uint8,(bytes,uint256[]),(uint256,string,string,bool))": "d4932b4e",
|
|
1019
|
-
"isAgeBetween(uint8,uint8,(bytes,uint256[]),(uint256,string,string,bool))": "cf515d37",
|
|
1020
|
-
"isAgeEqual(uint8,(bytes,uint256[]),(uint256,string,string,bool))": "ff203707",
|
|
1021
|
-
"isBirthdateAfter(uint256,(bytes,uint256[]),(uint256,string,string,bool))": "b8bd4879",
|
|
1022
|
-
"isBirthdateAfterOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": "c1b77162",
|
|
1023
|
-
"isBirthdateBefore(uint256,(bytes,uint256[]),(uint256,string,string,bool))": "9c1a81a3",
|
|
1024
|
-
"isBirthdateBeforeOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": "1fac4345",
|
|
1025
|
-
"isBirthdateBetween(uint256,uint256,(bytes,uint256[]),(uint256,string,string,bool))": "311a335c",
|
|
1026
|
-
"isBirthdateEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": "320d3b55",
|
|
1027
|
-
"isExpiryDateAfter(uint256,(bytes,uint256[]),(uint256,string,string,bool))": "ac20d678",
|
|
1028
|
-
"isExpiryDateAfterOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": "ca4051f2",
|
|
1029
|
-
"isExpiryDateBefore(uint256,(bytes,uint256[]),(uint256,string,string,bool))": "ddd8f8e3",
|
|
1030
|
-
"isExpiryDateBeforeOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": "8e2e2e62",
|
|
1031
|
-
"isExpiryDateBetween(uint256,uint256,(bytes,uint256[]),(uint256,string,string,bool))": "3d6ed975",
|
|
1032
|
-
"isExpiryDateEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": "8b2ec611",
|
|
1033
|
-
"isFaceMatchVerified(uint8,uint8,(bytes,uint256[]),(uint256,string,string,bool))": "c04fa6fe",
|
|
1034
|
-
"isIssuingCountryIn(string[],(bytes,uint256[]))": "7e5a88f3",
|
|
1035
|
-
"isIssuingCountryOut(string[],(bytes,uint256[]))": "5b7ab929",
|
|
1036
|
-
"isNationalityIn(string[],(bytes,uint256[]))": "46b758a0",
|
|
1037
|
-
"isNationalityOut(string[],(bytes,uint256[]))": "d39a5cf9",
|
|
1038
|
-
"paused()": "5c975abb",
|
|
1039
|
-
"removeVerifiers(bytes32[])": "8d6937b8",
|
|
1040
|
-
"rootRegistry()": "b96b161c",
|
|
1041
|
-
"setPaused(bool)": "16c38b3c",
|
|
1042
|
-
"transferAdmin(address)": "75829def",
|
|
1043
|
-
"updateRootRegistry(address)": "18677f2a",
|
|
1044
|
-
"verifyProof(((bytes32,bytes,bytes32[]),(bytes,uint256[]),(uint256,string,string,bool)))": "ec8e0729",
|
|
1045
|
-
"verifyScopes(bytes32[],string,string)": "847755e3",
|
|
1046
|
-
"vkeyHashToVerifier(bytes32)": "8163f231"
|
|
1047
|
-
},
|
|
1048
|
-
rawMetadata: '{"compiler":{"version":"0.8.29+commit.ab55807c"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_rootRegistry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"certificateRegistryRoot","type":"bytes32"}],"name":"CertificateRegistryRootAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"certificateRegistryRoot","type":"bytes32"}],"name":"CertificateRegistryRootRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"paused","type":"bool"}],"name":"PausedStatusChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_sanctionsTreesRoot","type":"bytes32"}],"name":"SanctionsTreesRootUpdates","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"verifier","type":"address"}],"name":"VerifierAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"vkeyHash","type":"bytes32"}],"name":"VerifierRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"admin","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"ZKPassportVerifierDeployed","type":"event"},{"inputs":[],"name":"CERTIFICATE_REGISTRY_ID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"CIRCUIT_REGISTRY_ID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SANCTIONS_REGISTRY_ID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"vkeyHashes","type":"bytes32[]"},{"internalType":"address[]","name":"verifiers","type":"address[]"}],"name":"addVerifiers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"}],"name":"enforceSanctionsRoot","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"}],"name":"getBoundData","outputs":[{"components":[{"internalType":"address","name":"senderAddress","type":"address"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"string","name":"customData","type":"string"}],"internalType":"struct BoundData","name":"boundData","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"internalType":"bool","name":"isIDCard","type":"bool"}],"name":"getDisclosedData","outputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"issuingCountry","type":"string"},{"internalType":"string","name":"nationality","type":"string"},{"internalType":"string","name":"gender","type":"string"},{"internalType":"string","name":"birthDate","type":"string"},{"internalType":"string","name":"expiryDate","type":"string"},{"internalType":"string","name":"documentNumber","type":"string"},{"internalType":"string","name":"documentType","type":"string"}],"internalType":"struct DisclosedData","name":"disclosedData","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint8","name":"minAge","type":"uint8"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isAgeAbove","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"minAge","type":"uint8"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isAgeAboveOrEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"maxAge","type":"uint8"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isAgeBelow","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"maxAge","type":"uint8"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isAgeBelowOrEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"minAge","type":"uint8"},{"internalType":"uint8","name":"maxAge","type":"uint8"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isAgeBetween","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"age","type":"uint8"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isAgeEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"minDate","type":"uint256"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isBirthdateAfter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"minDate","type":"uint256"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isBirthdateAfterOrEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxDate","type":"uint256"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isBirthdateBefore","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxDate","type":"uint256"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isBirthdateBeforeOrEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"minDate","type":"uint256"},{"internalType":"uint256","name":"maxDate","type":"uint256"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isBirthdateBetween","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"date","type":"uint256"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isBirthdateEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"minDate","type":"uint256"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isExpiryDateAfter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"minDate","type":"uint256"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isExpiryDateAfterOrEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxDate","type":"uint256"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isExpiryDateBefore","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxDate","type":"uint256"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isExpiryDateBeforeOrEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"minDate","type":"uint256"},{"internalType":"uint256","name":"maxDate","type":"uint256"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isExpiryDateBetween","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"date","type":"uint256"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isExpiryDateEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum FaceMatchMode","name":"faceMatchMode","type":"uint8"},{"internalType":"enum OS","name":"os","type":"uint8"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"name":"isFaceMatchVerified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string[]","name":"countryList","type":"string[]"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"}],"name":"isIssuingCountryIn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string[]","name":"countryList","type":"string[]"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"}],"name":"isIssuingCountryOut","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string[]","name":"countryList","type":"string[]"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"}],"name":"isNationalityIn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string[]","name":"countryList","type":"string[]"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"}],"name":"isNationalityOut","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"vkeyHashes","type":"bytes32[]"}],"name":"removeVerifiers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rootRegistry","outputs":[{"internalType":"contract IRootRegistry","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_paused","type":"bool"}],"name":"setPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"transferAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rootRegistry","type":"address"}],"name":"updateRootRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"components":[{"internalType":"bytes32","name":"vkeyHash","type":"bytes32"},{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"}],"internalType":"struct ProofVerificationData","name":"proofVerificationData","type":"tuple"},{"components":[{"internalType":"bytes","name":"committedInputs","type":"bytes"},{"internalType":"uint256[]","name":"committedInputCounts","type":"uint256[]"}],"internalType":"struct Commitments","name":"commitments","type":"tuple"},{"components":[{"internalType":"uint256","name":"validityPeriodInSeconds","type":"uint256"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"},{"internalType":"bool","name":"devMode","type":"bool"}],"internalType":"struct ServiceConfig","name":"serviceConfig","type":"tuple"}],"internalType":"struct ProofVerificationParams","name":"params","type":"tuple"}],"name":"verifyProof","outputs":[{"internalType":"bool","name":"isValid","type":"bool"},{"internalType":"bytes32","name":"uniqueIdentifier","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"publicInputs","type":"bytes32[]"},{"internalType":"string","name":"domain","type":"string"},{"internalType":"string","name":"scope","type":"string"}],"name":"verifyScopes","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"vkeyHashToVerifier","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Constructor"},"enforceSanctionsRoot((bytes,uint256[]))":{"params":{"commitments":"The commitments"}},"getBoundData((bytes,uint256[]))":{"params":{"commitments":"The commitments"},"returns":{"boundData":"The data bound to the proof"}},"getDisclosedData((bytes,uint256[]),bool)":{"params":{"commitments":"The commitments","isIDCard":"Whether the proof is an ID card"},"returns":{"disclosedData":"The data disclosed by the proof"}},"isAgeAbove(uint8,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","minAge":"The age must be above this age","serviceConfig":"The service config"},"returns":{"_0":"True if the age is above the given age, false otherwise"}},"isAgeAboveOrEqual(uint8,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","minAge":"The age must be above or equal to this age","serviceConfig":"The service config"},"returns":{"_0":"True if the age is above or equal to the given age, false otherwise"}},"isAgeBelow(uint8,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","maxAge":"The age must be below this age","serviceConfig":"The service config"},"returns":{"_0":"True if the age is below the given age, false otherwise"}},"isAgeBelowOrEqual(uint8,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","maxAge":"The age must be below or equal to this age","serviceConfig":"The service config"},"returns":{"_0":"True if the age is below or equal to the given age, false otherwise"}},"isAgeBetween(uint8,uint8,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","maxAge":"The age must be less than or equal to this age","minAge":"The age must be greater than or equal to this age","serviceConfig":"The service config"},"returns":{"_0":"True if the age is in the given range, false otherwise"}},"isAgeEqual(uint8,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"age":"The age must be equal to this age","commitments":"The commitments","serviceConfig":"The service config"},"returns":{"_0":"True if the age is equal to the given age, false otherwise"}},"isBirthdateAfter(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","minDate":"The birthdate must be after this date","serviceConfig":"The service config"},"returns":{"_0":"True if the birthdate is after the given date, false otherwise"}},"isBirthdateAfterOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","minDate":"The birthdate must be after or equal to this date","serviceConfig":"The service config"},"returns":{"_0":"True if the birthdate is after or equal to the given date, false otherwise"}},"isBirthdateBefore(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","maxDate":"The birthdate must be before this date","serviceConfig":"The service config"},"returns":{"_0":"True if the birthdate is before the given date, false otherwise"}},"isBirthdateBeforeOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","maxDate":"The birthdate must be before or equal to this date","serviceConfig":"The service config"},"returns":{"_0":"True if the birthdate is before or equal to the given date, false otherwise"}},"isBirthdateBetween(uint256,uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","maxDate":"The birthdate must be before or equal to this date","minDate":"The birthdate must be after or equal to this date","serviceConfig":"The service config"},"returns":{"_0":"True if the birthdate is between the given dates, false otherwise"}},"isBirthdateEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","date":"The birthdate must be equal to this date","serviceConfig":"The service config"},"returns":{"_0":"True if the birthdate is equal to the given date, false otherwise"}},"isExpiryDateAfter(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","minDate":"The expiry date must be after this date","serviceConfig":"The service config"},"returns":{"_0":"True if the expiry date is after the given date, false otherwise"}},"isExpiryDateAfterOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","minDate":"The expiry date must be after or equal to this date","serviceConfig":"The service config"},"returns":{"_0":"True if the expiry date is after or equal to the given date, false otherwise"}},"isExpiryDateBefore(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","maxDate":"The expiry date must be before this date","serviceConfig":"The service config"},"returns":{"_0":"True if the expiry date is before the given date, false otherwise"}},"isExpiryDateBeforeOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","maxDate":"The expiry date must be before or equal to this date","serviceConfig":"The service config"},"returns":{"_0":"True if the expiry date is before or equal to the given date, false otherwise"}},"isExpiryDateBetween(uint256,uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","maxDate":"The expiry date must be before or equal to this date","minDate":"The expiry date must be after or equal to this date","serviceConfig":"The service config"},"returns":{"_0":"True if the expiry date is between the given dates, false otherwise"}},"isExpiryDateEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","date":"The expiry date must be equal to this date","serviceConfig":"The service config"},"returns":{"_0":"True if the expiry date is equal to the given date, false otherwise"}},"isFaceMatchVerified(uint8,uint8,(bytes,uint256[]),(uint256,string,string,bool))":{"params":{"commitments":"The commitments","faceMatchMode":"The FaceMatch mode expected to be used in the verification","os":"The operating system on which the proof should have been generated (Any (0), iOS (1), Android (2))","serviceConfig":"The service config"},"returns":{"_0":"True if the proof is tied to a valid FaceMatch verification, false otherwise"}},"isIssuingCountryIn(string[],(bytes,uint256[]))":{"params":{"commitments":"The commitments","countryList":"The list of countries (needs to match exactly the list of countries in the proof)"},"returns":{"_0":"True if the issuing country is in the list of countries, false otherwise"}},"isIssuingCountryOut(string[],(bytes,uint256[]))":{"params":{"commitments":"The commitments","countryList":"The list of countries (needs to match exactly the list of countries in the proof) Note: The list of countries must be sorted in alphabetical order"},"returns":{"_0":"True if the issuing country is not in the list of countries, false otherwise"}},"isNationalityIn(string[],(bytes,uint256[]))":{"params":{"commitments":"The commitments","countryList":"The list of countries (needs to match exactly the list of countries in the proof)"},"returns":{"_0":"True if the nationality is in the list of countries, false otherwise"}},"isNationalityOut(string[],(bytes,uint256[]))":{"params":{"commitments":"The commitments","countryList":"The list of countries (needs to match exactly the list of countries in the proof) Note: The list of countries must be sorted in alphabetical order"},"returns":{"_0":"True if the nationality is not in the list of countries, false otherwise"}},"verifyProof(((bytes32,bytes,bytes32[]),(bytes,uint256[]),(uint256,string,string,bool)))":{"params":{"params":"The proof verification parameters"},"returns":{"isValid":"True if the proof is valid, false otherwise","uniqueIdentifier":"The unique identifier associated to the identity document that generated the proof"}},"verifyScopes(bytes32[],string,string)":{"params":{"domain":"The domain to check against","publicInputs":"The public inputs of the proof","scope":"The scope to check against"},"returns":{"_0":"True if the proof was generated for the given domain and scope, false otherwise"}}},"version":1},"userdoc":{"kind":"user","methods":{"enforceSanctionsRoot((bytes,uint256[]))":{"notice":"Enforces that the proof checks against the expected sanction list(s)"},"getBoundData((bytes,uint256[]))":{"notice":"Gets the data bound to the proof"},"getDisclosedData((bytes,uint256[]),bool)":{"notice":"Gets the data disclosed by the proof"},"isAgeAbove(uint8,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the age is above the given age"},"isAgeAboveOrEqual(uint8,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the age is above or equal to the given age"},"isAgeBelow(uint8,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the age is below the given age"},"isAgeBelowOrEqual(uint8,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the age is below or equal to the given age"},"isAgeBetween(uint8,uint8,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the age is in the given range"},"isAgeEqual(uint8,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the age is equal to the given age"},"isBirthdateAfter(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the birthdate is after the given date"},"isBirthdateAfterOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the birthdate is after or equal to the given date"},"isBirthdateBefore(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the birthdate is before the given date"},"isBirthdateBeforeOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the birthdate is before or equal to the given date"},"isBirthdateBetween(uint256,uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the birthdate is between the given dates"},"isBirthdateEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the birthdate is equal to the given date"},"isExpiryDateAfter(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the expiry date is after the given date"},"isExpiryDateAfterOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the expiry date is after or equal to the given date"},"isExpiryDateBefore(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the expiry date is before the given date"},"isExpiryDateBeforeOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the expiry date is before or equal to the given date"},"isExpiryDateBetween(uint256,uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the expiry date is between the given dates"},"isExpiryDateEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the expiry date is equal to the given date"},"isFaceMatchVerified(uint8,uint8,(bytes,uint256[]),(uint256,string,string,bool))":{"notice":"Checks if the proof is tied to a FaceMatch verification"},"isIssuingCountryIn(string[],(bytes,uint256[]))":{"notice":"Checks if the issuing country is in the list of countries"},"isIssuingCountryOut(string[],(bytes,uint256[]))":{"notice":"Checks if the issuing country is not in the list of countries"},"isNationalityIn(string[],(bytes,uint256[]))":{"notice":"Checks if the nationality is in the list of countries"},"isNationalityOut(string[],(bytes,uint256[]))":{"notice":"Checks if the nationality is not in the list of countries"},"verifyProof(((bytes32,bytes,bytes32[]),(bytes,uint256[]),(uint256,string,string,bool)))":{"notice":"Verifies a proof from ZKPassport"},"verifyScopes(bytes32[],string,string)":{"notice":"Verifies that the proof was generated for the given domain and scope"}},"version":1}},"settings":{"compilationTarget":{"src/ZKPassportVerifier.sol":"ZKPassportVerifier"},"evmVersion":"prague","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":200},"remappings":[":forge-std/=lib/forge-std/src/"]},"sources":{"src/Constants.sol":{"keccak256":"0x9028200b38f4ec17533664ed4d04e16c500b68ef398d0935811a16409bd9d84f","license":"Apache-2.0","urls":["bzz-raw://065da1a99b9be089622088760a46cf5ec6a0bbece388cb722d12fd4f67237ce4","dweb:/ipfs/Qmdqt9UV9ecPBTdVsudSDVszwgu3U2DG3e9DZ4AJt7Zghm"]},"src/DateUtils.sol":{"keccak256":"0xc04aef2f5732f8c3b28077a0af19e2fbbdec2f9178f3800563bf64ccdecefc77","license":"Apache-2.0","urls":["bzz-raw://bcc2610f3bdd3411fc040d39efe9e68f826b48986b2df7987f3adb6a1467c833","dweb:/ipfs/Qmc7uyW8Y7ekaKEdjd3kU9e1eDcCiAqsujGc5ZavuzGx4w"]},"src/IRootRegistry.sol":{"keccak256":"0xa9955e80821ca9ccbdf7d05a8ce9a3e237b4771e1f6e09190ed1c803a5e1e516","license":"MIT","urls":["bzz-raw://fd9fc9fbd7057a6bcc16a682e52be9ebd012954898626a11f0a0e8788644789d","dweb:/ipfs/QmZYpMRHdv4gMCNXCQtGQu8XqRVtNR9Kgkzh7u1YMpvrEB"]},"src/InputsExtractor.sol":{"keccak256":"0x85df2d9d89bb8538bd3d7168c30d8ace823a3710ee83ef3a8fbc1f59a7720473","license":"Apache-2.0","urls":["bzz-raw://7681a82ac614eafba56b8a9c1b7943f0d66cce6a5319124fb214a13f00535f07","dweb:/ipfs/QmPoj2DXmCeuYGZpAf4MWUwc5buMRqwykUc1B8mryQrPqT"]},"src/StringUtils.sol":{"keccak256":"0x0174454c28003f489bcdf636c93ccb512d80f3dbdca7485e11b51cf2c8ebfff1","license":"Apache-2.0","urls":["bzz-raw://92ea71064b8199c9a05cbe279cf42adaaa7b29604d960a84754d3d997b1c2342","dweb:/ipfs/QmcsrqRJ2YZABCZHzS782RqKmWEegSK1LCmTTjJ94gdh5q"]},"src/Types.sol":{"keccak256":"0x1cb492c099b71287da0349afef0c72c430e2476ad7373a0ea1456e7145207a06","license":"Apache-2.0","urls":["bzz-raw://a158753948b82917aa802c4b475a1ffb4b5f09b2a86ebcb64db11437ab297047","dweb:/ipfs/QmPgGhT59MzcG4TA5PmKjzaoNMZ4VRmcLJH6w5LkWQYjxV"]},"src/ZKPassportVerifier.sol":{"keccak256":"0xc1a8e1598a279af7a72f60c684531a3cb43e81f65a394dd2ea12da78dae27cc5","license":"Apache-2.0","urls":["bzz-raw://9b6a3ebc79fa7ed343f5a46730a4c24431768d2276fe0295fed3814d795eab1b","dweb:/ipfs/QmboGSLvn9BFNEikCzoBTVrqoXLQKUKN8eMn5VZqyFP2Q9"]},"src/ultra-honk-verifiers/OuterCount4.sol":{"keccak256":"0x0f0d75a82f697db2db5f689acd8fbd603940a2e2d862601a16316a3a21a6f916","license":"Apache-2.0","urls":["bzz-raw://b2306e16c0265d824e0a5aa4cd1fea70a1322af74a4e8b34df1444c0e47ed345","dweb:/ipfs/QmRaEPoyvBX2n1VV9SoXPmoEEXzRyFGB9obQUuYuuXAMAR"]}},"version":1}',
|
|
1049
|
-
metadata: {
|
|
1050
|
-
compiler: { version: "0.8.29+commit.ab55807c" },
|
|
1051
|
-
language: "Solidity",
|
|
1052
|
-
output: {
|
|
1053
|
-
abi: [
|
|
1054
|
-
{
|
|
1055
|
-
inputs: [{ internalType: "address", name: "_rootRegistry", type: "address" }],
|
|
1056
|
-
stateMutability: "nonpayable",
|
|
1057
|
-
type: "constructor"
|
|
1058
|
-
},
|
|
1059
|
-
{
|
|
1060
|
-
inputs: [
|
|
1061
|
-
{ internalType: "address", name: "oldAdmin", type: "address", indexed: true },
|
|
1062
|
-
{ internalType: "address", name: "newAdmin", type: "address", indexed: true }
|
|
1063
|
-
],
|
|
1064
|
-
type: "event",
|
|
1065
|
-
name: "AdminUpdated",
|
|
1066
|
-
anonymous: false
|
|
1067
|
-
},
|
|
1068
|
-
{
|
|
1069
|
-
inputs: [
|
|
1070
|
-
{
|
|
1071
|
-
internalType: "bytes32",
|
|
1072
|
-
name: "certificateRegistryRoot",
|
|
1073
|
-
type: "bytes32",
|
|
1074
|
-
indexed: true
|
|
1075
|
-
}
|
|
1076
|
-
],
|
|
1077
|
-
type: "event",
|
|
1078
|
-
name: "CertificateRegistryRootAdded",
|
|
1079
|
-
anonymous: false
|
|
1080
|
-
},
|
|
1081
|
-
{
|
|
1082
|
-
inputs: [
|
|
1083
|
-
{
|
|
1084
|
-
internalType: "bytes32",
|
|
1085
|
-
name: "certificateRegistryRoot",
|
|
1086
|
-
type: "bytes32",
|
|
1087
|
-
indexed: true
|
|
1088
|
-
}
|
|
1089
|
-
],
|
|
1090
|
-
type: "event",
|
|
1091
|
-
name: "CertificateRegistryRootRemoved",
|
|
1092
|
-
anonymous: false
|
|
1093
|
-
},
|
|
1094
|
-
{
|
|
1095
|
-
inputs: [
|
|
1096
|
-
{ internalType: "bool", name: "paused", type: "bool", indexed: false }
|
|
1097
|
-
],
|
|
1098
|
-
type: "event",
|
|
1099
|
-
name: "PausedStatusChanged",
|
|
1100
|
-
anonymous: false
|
|
1101
|
-
},
|
|
1102
|
-
{
|
|
1103
|
-
inputs: [
|
|
1104
|
-
{
|
|
1105
|
-
internalType: "bytes32",
|
|
1106
|
-
name: "_sanctionsTreesRoot",
|
|
1107
|
-
type: "bytes32",
|
|
1108
|
-
indexed: true
|
|
1109
|
-
}
|
|
1110
|
-
],
|
|
1111
|
-
type: "event",
|
|
1112
|
-
name: "SanctionsTreesRootUpdates",
|
|
1113
|
-
anonymous: false
|
|
1114
|
-
},
|
|
1115
|
-
{
|
|
1116
|
-
inputs: [
|
|
1117
|
-
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32", indexed: true },
|
|
1118
|
-
{ internalType: "address", name: "verifier", type: "address", indexed: true }
|
|
1119
|
-
],
|
|
1120
|
-
type: "event",
|
|
1121
|
-
name: "VerifierAdded",
|
|
1122
|
-
anonymous: false
|
|
1123
|
-
},
|
|
1124
|
-
{
|
|
1125
|
-
inputs: [
|
|
1126
|
-
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32", indexed: true }
|
|
1127
|
-
],
|
|
1128
|
-
type: "event",
|
|
1129
|
-
name: "VerifierRemoved",
|
|
1130
|
-
anonymous: false
|
|
1131
|
-
},
|
|
1132
|
-
{
|
|
1133
|
-
inputs: [
|
|
1134
|
-
{ internalType: "address", name: "admin", type: "address", indexed: true },
|
|
1135
|
-
{ internalType: "uint256", name: "timestamp", type: "uint256", indexed: false }
|
|
1136
|
-
],
|
|
1137
|
-
type: "event",
|
|
1138
|
-
name: "ZKPassportVerifierDeployed",
|
|
1139
|
-
anonymous: false
|
|
1140
|
-
},
|
|
1141
|
-
{
|
|
1142
|
-
inputs: [],
|
|
1143
|
-
stateMutability: "view",
|
|
1144
|
-
type: "function",
|
|
1145
|
-
name: "CERTIFICATE_REGISTRY_ID",
|
|
1146
|
-
outputs: [{ internalType: "bytes32", name: "", type: "bytes32" }]
|
|
1147
|
-
},
|
|
1148
|
-
{
|
|
1149
|
-
inputs: [],
|
|
1150
|
-
stateMutability: "view",
|
|
1151
|
-
type: "function",
|
|
1152
|
-
name: "CIRCUIT_REGISTRY_ID",
|
|
1153
|
-
outputs: [{ internalType: "bytes32", name: "", type: "bytes32" }]
|
|
1154
|
-
},
|
|
1155
|
-
{
|
|
1156
|
-
inputs: [],
|
|
1157
|
-
stateMutability: "view",
|
|
1158
|
-
type: "function",
|
|
1159
|
-
name: "SANCTIONS_REGISTRY_ID",
|
|
1160
|
-
outputs: [{ internalType: "bytes32", name: "", type: "bytes32" }]
|
|
1161
|
-
},
|
|
1162
|
-
{
|
|
1163
|
-
inputs: [
|
|
1164
|
-
{ internalType: "bytes32[]", name: "vkeyHashes", type: "bytes32[]" },
|
|
1165
|
-
{ internalType: "address[]", name: "verifiers", type: "address[]" }
|
|
1166
|
-
],
|
|
1167
|
-
stateMutability: "nonpayable",
|
|
1168
|
-
type: "function",
|
|
1169
|
-
name: "addVerifiers"
|
|
1170
|
-
},
|
|
1171
|
-
{
|
|
1172
|
-
inputs: [],
|
|
1173
|
-
stateMutability: "view",
|
|
1174
|
-
type: "function",
|
|
1175
|
-
name: "admin",
|
|
1176
|
-
outputs: [{ internalType: "address", name: "", type: "address" }]
|
|
1177
|
-
},
|
|
1178
|
-
{
|
|
1179
|
-
inputs: [
|
|
1180
|
-
{
|
|
1181
|
-
internalType: "struct Commitments",
|
|
1182
|
-
name: "commitments",
|
|
1183
|
-
type: "tuple",
|
|
1184
|
-
components: [
|
|
1185
|
-
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1186
|
-
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1187
|
-
]
|
|
1188
|
-
}
|
|
1189
|
-
],
|
|
1190
|
-
stateMutability: "view",
|
|
1191
|
-
type: "function",
|
|
1192
|
-
name: "enforceSanctionsRoot"
|
|
1193
|
-
},
|
|
1194
|
-
{
|
|
1195
|
-
inputs: [
|
|
1196
|
-
{
|
|
1197
|
-
internalType: "struct Commitments",
|
|
1198
|
-
name: "commitments",
|
|
1199
|
-
type: "tuple",
|
|
1200
|
-
components: [
|
|
1201
|
-
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1202
|
-
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1203
|
-
]
|
|
1204
|
-
}
|
|
1205
|
-
],
|
|
1206
|
-
stateMutability: "pure",
|
|
1207
|
-
type: "function",
|
|
1208
|
-
name: "getBoundData",
|
|
1209
|
-
outputs: [
|
|
1210
|
-
{
|
|
1211
|
-
internalType: "struct BoundData",
|
|
1212
|
-
name: "boundData",
|
|
1213
|
-
type: "tuple",
|
|
1214
|
-
components: [
|
|
1215
|
-
{ internalType: "address", name: "senderAddress", type: "address" },
|
|
1216
|
-
{ internalType: "uint256", name: "chainId", type: "uint256" },
|
|
1217
|
-
{ internalType: "string", name: "customData", type: "string" }
|
|
1218
|
-
]
|
|
1219
|
-
}
|
|
1220
|
-
]
|
|
1221
|
-
},
|
|
1222
|
-
{
|
|
1223
|
-
inputs: [
|
|
1224
|
-
{
|
|
1225
|
-
internalType: "struct Commitments",
|
|
1226
|
-
name: "commitments",
|
|
1227
|
-
type: "tuple",
|
|
1228
|
-
components: [
|
|
1229
|
-
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1230
|
-
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1231
|
-
]
|
|
1232
|
-
},
|
|
1233
|
-
{ internalType: "bool", name: "isIDCard", type: "bool" }
|
|
1234
|
-
],
|
|
1235
|
-
stateMutability: "pure",
|
|
1236
|
-
type: "function",
|
|
1237
|
-
name: "getDisclosedData",
|
|
1238
|
-
outputs: [
|
|
1239
|
-
{
|
|
1240
|
-
internalType: "struct DisclosedData",
|
|
1241
|
-
name: "disclosedData",
|
|
1242
|
-
type: "tuple",
|
|
1243
|
-
components: [
|
|
1244
|
-
{ internalType: "string", name: "name", type: "string" },
|
|
1245
|
-
{ internalType: "string", name: "issuingCountry", type: "string" },
|
|
1246
|
-
{ internalType: "string", name: "nationality", type: "string" },
|
|
1247
|
-
{ internalType: "string", name: "gender", type: "string" },
|
|
1248
|
-
{ internalType: "string", name: "birthDate", type: "string" },
|
|
1249
|
-
{ internalType: "string", name: "expiryDate", type: "string" },
|
|
1250
|
-
{ internalType: "string", name: "documentNumber", type: "string" },
|
|
1251
|
-
{ internalType: "string", name: "documentType", type: "string" }
|
|
1252
|
-
]
|
|
1253
|
-
}
|
|
1254
|
-
]
|
|
1255
|
-
},
|
|
1256
|
-
{
|
|
1257
|
-
inputs: [
|
|
1258
|
-
{ internalType: "uint8", name: "minAge", type: "uint8" },
|
|
1259
|
-
{
|
|
1260
|
-
internalType: "struct Commitments",
|
|
1261
|
-
name: "commitments",
|
|
1262
|
-
type: "tuple",
|
|
1263
|
-
components: [
|
|
1264
|
-
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1265
|
-
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1266
|
-
]
|
|
1267
|
-
},
|
|
1268
|
-
{
|
|
1269
|
-
internalType: "struct ServiceConfig",
|
|
1270
|
-
name: "serviceConfig",
|
|
1271
|
-
type: "tuple",
|
|
1272
|
-
components: [
|
|
1273
|
-
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1274
|
-
{ internalType: "string", name: "domain", type: "string" },
|
|
1275
|
-
{ internalType: "string", name: "scope", type: "string" },
|
|
1276
|
-
{ internalType: "bool", name: "devMode", type: "bool" }
|
|
1277
|
-
]
|
|
1278
|
-
}
|
|
1279
|
-
],
|
|
1280
|
-
stateMutability: "view",
|
|
1281
|
-
type: "function",
|
|
1282
|
-
name: "isAgeAbove",
|
|
1283
|
-
outputs: [{ internalType: "bool", name: "", type: "bool" }]
|
|
1284
|
-
},
|
|
1285
|
-
{
|
|
1286
|
-
inputs: [
|
|
1287
|
-
{ internalType: "uint8", name: "minAge", type: "uint8" },
|
|
1288
|
-
{
|
|
1289
|
-
internalType: "struct Commitments",
|
|
1290
|
-
name: "commitments",
|
|
1291
|
-
type: "tuple",
|
|
1292
|
-
components: [
|
|
1293
|
-
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1294
|
-
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1295
|
-
]
|
|
1296
|
-
},
|
|
1297
|
-
{
|
|
1298
|
-
internalType: "struct ServiceConfig",
|
|
1299
|
-
name: "serviceConfig",
|
|
1300
|
-
type: "tuple",
|
|
1301
|
-
components: [
|
|
1302
|
-
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1303
|
-
{ internalType: "string", name: "domain", type: "string" },
|
|
1304
|
-
{ internalType: "string", name: "scope", type: "string" },
|
|
1305
|
-
{ internalType: "bool", name: "devMode", type: "bool" }
|
|
1306
|
-
]
|
|
1307
|
-
}
|
|
1308
|
-
],
|
|
1309
|
-
stateMutability: "view",
|
|
1310
|
-
type: "function",
|
|
1311
|
-
name: "isAgeAboveOrEqual",
|
|
1312
|
-
outputs: [{ internalType: "bool", name: "", type: "bool" }]
|
|
1313
|
-
},
|
|
1314
|
-
{
|
|
1315
|
-
inputs: [
|
|
1316
|
-
{ internalType: "uint8", name: "maxAge", type: "uint8" },
|
|
1317
|
-
{
|
|
1318
|
-
internalType: "struct Commitments",
|
|
1319
|
-
name: "commitments",
|
|
1320
|
-
type: "tuple",
|
|
1321
|
-
components: [
|
|
1322
|
-
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1323
|
-
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1324
|
-
]
|
|
1325
|
-
},
|
|
1326
|
-
{
|
|
1327
|
-
internalType: "struct ServiceConfig",
|
|
1328
|
-
name: "serviceConfig",
|
|
1329
|
-
type: "tuple",
|
|
1330
|
-
components: [
|
|
1331
|
-
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1332
|
-
{ internalType: "string", name: "domain", type: "string" },
|
|
1333
|
-
{ internalType: "string", name: "scope", type: "string" },
|
|
1334
|
-
{ internalType: "bool", name: "devMode", type: "bool" }
|
|
1335
|
-
]
|
|
1336
|
-
}
|
|
1337
|
-
],
|
|
1338
|
-
stateMutability: "view",
|
|
1339
|
-
type: "function",
|
|
1340
|
-
name: "isAgeBelow",
|
|
1341
|
-
outputs: [{ internalType: "bool", name: "", type: "bool" }]
|
|
1342
|
-
},
|
|
1343
|
-
{
|
|
1344
|
-
inputs: [
|
|
1345
|
-
{ internalType: "uint8", name: "maxAge", type: "uint8" },
|
|
1346
|
-
{
|
|
1347
|
-
internalType: "struct Commitments",
|
|
1348
|
-
name: "commitments",
|
|
1349
|
-
type: "tuple",
|
|
1350
|
-
components: [
|
|
1351
|
-
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1352
|
-
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1353
|
-
]
|
|
1354
|
-
},
|
|
1355
|
-
{
|
|
1356
|
-
internalType: "struct ServiceConfig",
|
|
1357
|
-
name: "serviceConfig",
|
|
1358
|
-
type: "tuple",
|
|
1359
|
-
components: [
|
|
1360
|
-
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1361
|
-
{ internalType: "string", name: "domain", type: "string" },
|
|
1362
|
-
{ internalType: "string", name: "scope", type: "string" },
|
|
1363
|
-
{ internalType: "bool", name: "devMode", type: "bool" }
|
|
1364
|
-
]
|
|
1365
|
-
}
|
|
1366
|
-
],
|
|
1367
|
-
stateMutability: "view",
|
|
1368
|
-
type: "function",
|
|
1369
|
-
name: "isAgeBelowOrEqual",
|
|
1370
|
-
outputs: [{ internalType: "bool", name: "", type: "bool" }]
|
|
1371
|
-
},
|
|
1372
|
-
{
|
|
1373
|
-
inputs: [
|
|
1374
|
-
{ internalType: "uint8", name: "minAge", type: "uint8" },
|
|
1375
|
-
{ internalType: "uint8", name: "maxAge", type: "uint8" },
|
|
1376
|
-
{
|
|
1377
|
-
internalType: "struct Commitments",
|
|
1378
|
-
name: "commitments",
|
|
1379
|
-
type: "tuple",
|
|
1380
|
-
components: [
|
|
1381
|
-
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1382
|
-
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1383
|
-
]
|
|
1384
|
-
},
|
|
1385
|
-
{
|
|
1386
|
-
internalType: "struct ServiceConfig",
|
|
1387
|
-
name: "serviceConfig",
|
|
1388
|
-
type: "tuple",
|
|
1389
|
-
components: [
|
|
1390
|
-
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1391
|
-
{ internalType: "string", name: "domain", type: "string" },
|
|
1392
|
-
{ internalType: "string", name: "scope", type: "string" },
|
|
1393
|
-
{ internalType: "bool", name: "devMode", type: "bool" }
|
|
1394
|
-
]
|
|
1395
|
-
}
|
|
1396
|
-
],
|
|
1397
|
-
stateMutability: "view",
|
|
1398
|
-
type: "function",
|
|
1399
|
-
name: "isAgeBetween",
|
|
1400
|
-
outputs: [{ internalType: "bool", name: "", type: "bool" }]
|
|
1401
|
-
},
|
|
1402
|
-
{
|
|
1403
|
-
inputs: [
|
|
1404
|
-
{ internalType: "uint8", name: "age", type: "uint8" },
|
|
1405
|
-
{
|
|
1406
|
-
internalType: "struct Commitments",
|
|
1407
|
-
name: "commitments",
|
|
1408
|
-
type: "tuple",
|
|
1409
|
-
components: [
|
|
1410
|
-
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1411
|
-
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1412
|
-
]
|
|
1413
|
-
},
|
|
1414
|
-
{
|
|
1415
|
-
internalType: "struct ServiceConfig",
|
|
1416
|
-
name: "serviceConfig",
|
|
1417
|
-
type: "tuple",
|
|
1418
|
-
components: [
|
|
1419
|
-
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1420
|
-
{ internalType: "string", name: "domain", type: "string" },
|
|
1421
|
-
{ internalType: "string", name: "scope", type: "string" },
|
|
1422
|
-
{ internalType: "bool", name: "devMode", type: "bool" }
|
|
1423
|
-
]
|
|
1424
|
-
}
|
|
1425
|
-
],
|
|
1426
|
-
stateMutability: "view",
|
|
1427
|
-
type: "function",
|
|
1428
|
-
name: "isAgeEqual",
|
|
1429
|
-
outputs: [{ internalType: "bool", name: "", type: "bool" }]
|
|
1430
|
-
},
|
|
1431
|
-
{
|
|
1432
|
-
inputs: [
|
|
1433
|
-
{ internalType: "uint256", name: "minDate", type: "uint256" },
|
|
1434
|
-
{
|
|
1435
|
-
internalType: "struct Commitments",
|
|
1436
|
-
name: "commitments",
|
|
1437
|
-
type: "tuple",
|
|
1438
|
-
components: [
|
|
1439
|
-
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1440
|
-
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1441
|
-
]
|
|
1442
|
-
},
|
|
1443
|
-
{
|
|
1444
|
-
internalType: "struct ServiceConfig",
|
|
1445
|
-
name: "serviceConfig",
|
|
1446
|
-
type: "tuple",
|
|
1447
|
-
components: [
|
|
1448
|
-
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1449
|
-
{ internalType: "string", name: "domain", type: "string" },
|
|
1450
|
-
{ internalType: "string", name: "scope", type: "string" },
|
|
1451
|
-
{ internalType: "bool", name: "devMode", type: "bool" }
|
|
1452
|
-
]
|
|
1453
|
-
}
|
|
1454
|
-
],
|
|
1455
|
-
stateMutability: "view",
|
|
1456
|
-
type: "function",
|
|
1457
|
-
name: "isBirthdateAfter",
|
|
1458
|
-
outputs: [{ internalType: "bool", name: "", type: "bool" }]
|
|
1459
|
-
},
|
|
1460
|
-
{
|
|
1461
|
-
inputs: [
|
|
1462
|
-
{ internalType: "uint256", name: "minDate", type: "uint256" },
|
|
1463
|
-
{
|
|
1464
|
-
internalType: "struct Commitments",
|
|
1465
|
-
name: "commitments",
|
|
1466
|
-
type: "tuple",
|
|
1467
|
-
components: [
|
|
1468
|
-
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1469
|
-
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1470
|
-
]
|
|
1471
|
-
},
|
|
1472
|
-
{
|
|
1473
|
-
internalType: "struct ServiceConfig",
|
|
1474
|
-
name: "serviceConfig",
|
|
1475
|
-
type: "tuple",
|
|
1476
|
-
components: [
|
|
1477
|
-
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1478
|
-
{ internalType: "string", name: "domain", type: "string" },
|
|
1479
|
-
{ internalType: "string", name: "scope", type: "string" },
|
|
1480
|
-
{ internalType: "bool", name: "devMode", type: "bool" }
|
|
1481
|
-
]
|
|
1482
|
-
}
|
|
1483
|
-
],
|
|
1484
|
-
stateMutability: "view",
|
|
1485
|
-
type: "function",
|
|
1486
|
-
name: "isBirthdateAfterOrEqual",
|
|
1487
|
-
outputs: [{ internalType: "bool", name: "", type: "bool" }]
|
|
1488
|
-
},
|
|
1489
|
-
{
|
|
1490
|
-
inputs: [
|
|
1491
|
-
{ internalType: "uint256", name: "maxDate", type: "uint256" },
|
|
1492
|
-
{
|
|
1493
|
-
internalType: "struct Commitments",
|
|
1494
|
-
name: "commitments",
|
|
1495
|
-
type: "tuple",
|
|
1496
|
-
components: [
|
|
1497
|
-
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1498
|
-
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1499
|
-
]
|
|
1500
|
-
},
|
|
1501
|
-
{
|
|
1502
|
-
internalType: "struct ServiceConfig",
|
|
1503
|
-
name: "serviceConfig",
|
|
1504
|
-
type: "tuple",
|
|
1505
|
-
components: [
|
|
1506
|
-
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1507
|
-
{ internalType: "string", name: "domain", type: "string" },
|
|
1508
|
-
{ internalType: "string", name: "scope", type: "string" },
|
|
1509
|
-
{ internalType: "bool", name: "devMode", type: "bool" }
|
|
1510
|
-
]
|
|
1511
|
-
}
|
|
1512
|
-
],
|
|
1513
|
-
stateMutability: "view",
|
|
1514
|
-
type: "function",
|
|
1515
|
-
name: "isBirthdateBefore",
|
|
1516
|
-
outputs: [{ internalType: "bool", name: "", type: "bool" }]
|
|
1517
|
-
},
|
|
1518
|
-
{
|
|
1519
|
-
inputs: [
|
|
1520
|
-
{ internalType: "uint256", name: "maxDate", type: "uint256" },
|
|
1521
|
-
{
|
|
1522
|
-
internalType: "struct Commitments",
|
|
1523
|
-
name: "commitments",
|
|
1524
|
-
type: "tuple",
|
|
1525
|
-
components: [
|
|
1526
|
-
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1527
|
-
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1528
|
-
]
|
|
1529
|
-
},
|
|
1530
|
-
{
|
|
1531
|
-
internalType: "struct ServiceConfig",
|
|
1532
|
-
name: "serviceConfig",
|
|
1533
|
-
type: "tuple",
|
|
1534
|
-
components: [
|
|
1535
|
-
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1536
|
-
{ internalType: "string", name: "domain", type: "string" },
|
|
1537
|
-
{ internalType: "string", name: "scope", type: "string" },
|
|
1538
|
-
{ internalType: "bool", name: "devMode", type: "bool" }
|
|
1539
|
-
]
|
|
1540
|
-
}
|
|
1541
|
-
],
|
|
1542
|
-
stateMutability: "view",
|
|
1543
|
-
type: "function",
|
|
1544
|
-
name: "isBirthdateBeforeOrEqual",
|
|
1545
|
-
outputs: [{ internalType: "bool", name: "", type: "bool" }]
|
|
1546
|
-
},
|
|
1547
|
-
{
|
|
1548
|
-
inputs: [
|
|
1549
|
-
{ internalType: "uint256", name: "minDate", type: "uint256" },
|
|
1550
|
-
{ internalType: "uint256", name: "maxDate", type: "uint256" },
|
|
1551
|
-
{
|
|
1552
|
-
internalType: "struct Commitments",
|
|
1553
|
-
name: "commitments",
|
|
1554
|
-
type: "tuple",
|
|
1555
|
-
components: [
|
|
1556
|
-
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1557
|
-
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1558
|
-
]
|
|
1559
|
-
},
|
|
1560
|
-
{
|
|
1561
|
-
internalType: "struct ServiceConfig",
|
|
1562
|
-
name: "serviceConfig",
|
|
1563
|
-
type: "tuple",
|
|
1564
|
-
components: [
|
|
1565
|
-
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1566
|
-
{ internalType: "string", name: "domain", type: "string" },
|
|
1567
|
-
{ internalType: "string", name: "scope", type: "string" },
|
|
1568
|
-
{ internalType: "bool", name: "devMode", type: "bool" }
|
|
1569
|
-
]
|
|
1570
|
-
}
|
|
1571
|
-
],
|
|
1572
|
-
stateMutability: "view",
|
|
1573
|
-
type: "function",
|
|
1574
|
-
name: "isBirthdateBetween",
|
|
1575
|
-
outputs: [{ internalType: "bool", name: "", type: "bool" }]
|
|
1576
|
-
},
|
|
1577
|
-
{
|
|
1578
|
-
inputs: [
|
|
1579
|
-
{ internalType: "uint256", name: "date", type: "uint256" },
|
|
1580
|
-
{
|
|
1581
|
-
internalType: "struct Commitments",
|
|
1582
|
-
name: "commitments",
|
|
1583
|
-
type: "tuple",
|
|
1584
|
-
components: [
|
|
1585
|
-
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1586
|
-
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1587
|
-
]
|
|
1588
|
-
},
|
|
1589
|
-
{
|
|
1590
|
-
internalType: "struct ServiceConfig",
|
|
1591
|
-
name: "serviceConfig",
|
|
1592
|
-
type: "tuple",
|
|
1593
|
-
components: [
|
|
1594
|
-
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1595
|
-
{ internalType: "string", name: "domain", type: "string" },
|
|
1596
|
-
{ internalType: "string", name: "scope", type: "string" },
|
|
1597
|
-
{ internalType: "bool", name: "devMode", type: "bool" }
|
|
1598
|
-
]
|
|
1599
|
-
}
|
|
1600
|
-
],
|
|
1601
|
-
stateMutability: "view",
|
|
1602
|
-
type: "function",
|
|
1603
|
-
name: "isBirthdateEqual",
|
|
1604
|
-
outputs: [{ internalType: "bool", name: "", type: "bool" }]
|
|
1605
|
-
},
|
|
1606
|
-
{
|
|
1607
|
-
inputs: [
|
|
1608
|
-
{ internalType: "uint256", name: "minDate", type: "uint256" },
|
|
1609
|
-
{
|
|
1610
|
-
internalType: "struct Commitments",
|
|
1611
|
-
name: "commitments",
|
|
1612
|
-
type: "tuple",
|
|
1613
|
-
components: [
|
|
1614
|
-
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1615
|
-
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1616
|
-
]
|
|
1617
|
-
},
|
|
1618
|
-
{
|
|
1619
|
-
internalType: "struct ServiceConfig",
|
|
1620
|
-
name: "serviceConfig",
|
|
1621
|
-
type: "tuple",
|
|
1622
|
-
components: [
|
|
1623
|
-
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1624
|
-
{ internalType: "string", name: "domain", type: "string" },
|
|
1625
|
-
{ internalType: "string", name: "scope", type: "string" },
|
|
1626
|
-
{ internalType: "bool", name: "devMode", type: "bool" }
|
|
1627
|
-
]
|
|
1628
|
-
}
|
|
1629
|
-
],
|
|
1630
|
-
stateMutability: "view",
|
|
1631
|
-
type: "function",
|
|
1632
|
-
name: "isExpiryDateAfter",
|
|
1633
|
-
outputs: [{ internalType: "bool", name: "", type: "bool" }]
|
|
1634
|
-
},
|
|
1635
|
-
{
|
|
1636
|
-
inputs: [
|
|
1637
|
-
{ internalType: "uint256", name: "minDate", type: "uint256" },
|
|
1638
|
-
{
|
|
1639
|
-
internalType: "struct Commitments",
|
|
1640
|
-
name: "commitments",
|
|
1641
|
-
type: "tuple",
|
|
1642
|
-
components: [
|
|
1643
|
-
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1644
|
-
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1645
|
-
]
|
|
1646
|
-
},
|
|
1647
|
-
{
|
|
1648
|
-
internalType: "struct ServiceConfig",
|
|
1649
|
-
name: "serviceConfig",
|
|
1650
|
-
type: "tuple",
|
|
1651
|
-
components: [
|
|
1652
|
-
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1653
|
-
{ internalType: "string", name: "domain", type: "string" },
|
|
1654
|
-
{ internalType: "string", name: "scope", type: "string" },
|
|
1655
|
-
{ internalType: "bool", name: "devMode", type: "bool" }
|
|
1656
|
-
]
|
|
1657
|
-
}
|
|
1658
|
-
],
|
|
1659
|
-
stateMutability: "view",
|
|
1660
|
-
type: "function",
|
|
1661
|
-
name: "isExpiryDateAfterOrEqual",
|
|
1662
|
-
outputs: [{ internalType: "bool", name: "", type: "bool" }]
|
|
1663
|
-
},
|
|
1664
|
-
{
|
|
1665
|
-
inputs: [
|
|
1666
|
-
{ internalType: "uint256", name: "maxDate", type: "uint256" },
|
|
1667
|
-
{
|
|
1668
|
-
internalType: "struct Commitments",
|
|
1669
|
-
name: "commitments",
|
|
1670
|
-
type: "tuple",
|
|
1671
|
-
components: [
|
|
1672
|
-
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1673
|
-
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1674
|
-
]
|
|
1675
|
-
},
|
|
1676
|
-
{
|
|
1677
|
-
internalType: "struct ServiceConfig",
|
|
1678
|
-
name: "serviceConfig",
|
|
1679
|
-
type: "tuple",
|
|
1680
|
-
components: [
|
|
1681
|
-
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1682
|
-
{ internalType: "string", name: "domain", type: "string" },
|
|
1683
|
-
{ internalType: "string", name: "scope", type: "string" },
|
|
1684
|
-
{ internalType: "bool", name: "devMode", type: "bool" }
|
|
1685
|
-
]
|
|
1686
|
-
}
|
|
1687
|
-
],
|
|
1688
|
-
stateMutability: "view",
|
|
1689
|
-
type: "function",
|
|
1690
|
-
name: "isExpiryDateBefore",
|
|
1691
|
-
outputs: [{ internalType: "bool", name: "", type: "bool" }]
|
|
1692
|
-
},
|
|
1693
|
-
{
|
|
1694
|
-
inputs: [
|
|
1695
|
-
{ internalType: "uint256", name: "maxDate", type: "uint256" },
|
|
1696
|
-
{
|
|
1697
|
-
internalType: "struct Commitments",
|
|
1698
|
-
name: "commitments",
|
|
1699
|
-
type: "tuple",
|
|
1700
|
-
components: [
|
|
1701
|
-
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1702
|
-
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1703
|
-
]
|
|
1704
|
-
},
|
|
1705
|
-
{
|
|
1706
|
-
internalType: "struct ServiceConfig",
|
|
1707
|
-
name: "serviceConfig",
|
|
1708
|
-
type: "tuple",
|
|
1709
|
-
components: [
|
|
1710
|
-
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1711
|
-
{ internalType: "string", name: "domain", type: "string" },
|
|
1712
|
-
{ internalType: "string", name: "scope", type: "string" },
|
|
1713
|
-
{ internalType: "bool", name: "devMode", type: "bool" }
|
|
1714
|
-
]
|
|
1715
|
-
}
|
|
1716
|
-
],
|
|
1717
|
-
stateMutability: "view",
|
|
1718
|
-
type: "function",
|
|
1719
|
-
name: "isExpiryDateBeforeOrEqual",
|
|
1720
|
-
outputs: [{ internalType: "bool", name: "", type: "bool" }]
|
|
1721
|
-
},
|
|
1722
|
-
{
|
|
1723
|
-
inputs: [
|
|
1724
|
-
{ internalType: "uint256", name: "minDate", type: "uint256" },
|
|
1725
|
-
{ internalType: "uint256", name: "maxDate", type: "uint256" },
|
|
1726
|
-
{
|
|
1727
|
-
internalType: "struct Commitments",
|
|
1728
|
-
name: "commitments",
|
|
1729
|
-
type: "tuple",
|
|
1730
|
-
components: [
|
|
1731
|
-
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1732
|
-
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1733
|
-
]
|
|
1734
|
-
},
|
|
1735
|
-
{
|
|
1736
|
-
internalType: "struct ServiceConfig",
|
|
1737
|
-
name: "serviceConfig",
|
|
1738
|
-
type: "tuple",
|
|
1739
|
-
components: [
|
|
1740
|
-
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1741
|
-
{ internalType: "string", name: "domain", type: "string" },
|
|
1742
|
-
{ internalType: "string", name: "scope", type: "string" },
|
|
1743
|
-
{ internalType: "bool", name: "devMode", type: "bool" }
|
|
1744
|
-
]
|
|
1745
|
-
}
|
|
1746
|
-
],
|
|
1747
|
-
stateMutability: "view",
|
|
1748
|
-
type: "function",
|
|
1749
|
-
name: "isExpiryDateBetween",
|
|
1750
|
-
outputs: [{ internalType: "bool", name: "", type: "bool" }]
|
|
1751
|
-
},
|
|
1752
|
-
{
|
|
1753
|
-
inputs: [
|
|
1754
|
-
{ internalType: "uint256", name: "date", type: "uint256" },
|
|
1755
|
-
{
|
|
1756
|
-
internalType: "struct Commitments",
|
|
1757
|
-
name: "commitments",
|
|
1758
|
-
type: "tuple",
|
|
1759
|
-
components: [
|
|
1760
|
-
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1761
|
-
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1762
|
-
]
|
|
1763
|
-
},
|
|
1764
|
-
{
|
|
1765
|
-
internalType: "struct ServiceConfig",
|
|
1766
|
-
name: "serviceConfig",
|
|
1767
|
-
type: "tuple",
|
|
1768
|
-
components: [
|
|
1769
|
-
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1770
|
-
{ internalType: "string", name: "domain", type: "string" },
|
|
1771
|
-
{ internalType: "string", name: "scope", type: "string" },
|
|
1772
|
-
{ internalType: "bool", name: "devMode", type: "bool" }
|
|
1773
|
-
]
|
|
1774
|
-
}
|
|
1775
|
-
],
|
|
1776
|
-
stateMutability: "view",
|
|
1777
|
-
type: "function",
|
|
1778
|
-
name: "isExpiryDateEqual",
|
|
1779
|
-
outputs: [{ internalType: "bool", name: "", type: "bool" }]
|
|
1780
|
-
},
|
|
1781
|
-
{
|
|
1782
|
-
inputs: [
|
|
1783
|
-
{ internalType: "enum FaceMatchMode", name: "faceMatchMode", type: "uint8" },
|
|
1784
|
-
{ internalType: "enum OS", name: "os", type: "uint8" },
|
|
1785
|
-
{
|
|
1786
|
-
internalType: "struct Commitments",
|
|
1787
|
-
name: "commitments",
|
|
1788
|
-
type: "tuple",
|
|
1789
|
-
components: [
|
|
1790
|
-
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1791
|
-
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1792
|
-
]
|
|
1793
|
-
},
|
|
1794
|
-
{
|
|
1795
|
-
internalType: "struct ServiceConfig",
|
|
1796
|
-
name: "serviceConfig",
|
|
1797
|
-
type: "tuple",
|
|
1798
|
-
components: [
|
|
1799
|
-
{ internalType: "uint256", name: "validityPeriodInSeconds", type: "uint256" },
|
|
1800
|
-
{ internalType: "string", name: "domain", type: "string" },
|
|
1801
|
-
{ internalType: "string", name: "scope", type: "string" },
|
|
1802
|
-
{ internalType: "bool", name: "devMode", type: "bool" }
|
|
1803
|
-
]
|
|
1804
|
-
}
|
|
1805
|
-
],
|
|
1806
|
-
stateMutability: "pure",
|
|
1807
|
-
type: "function",
|
|
1808
|
-
name: "isFaceMatchVerified",
|
|
1809
|
-
outputs: [{ internalType: "bool", name: "", type: "bool" }]
|
|
1810
|
-
},
|
|
1811
|
-
{
|
|
1812
|
-
inputs: [
|
|
1813
|
-
{ internalType: "string[]", name: "countryList", type: "string[]" },
|
|
1814
|
-
{
|
|
1815
|
-
internalType: "struct Commitments",
|
|
1816
|
-
name: "commitments",
|
|
1817
|
-
type: "tuple",
|
|
1818
|
-
components: [
|
|
1819
|
-
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1820
|
-
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1821
|
-
]
|
|
1822
|
-
}
|
|
1823
|
-
],
|
|
1824
|
-
stateMutability: "pure",
|
|
1825
|
-
type: "function",
|
|
1826
|
-
name: "isIssuingCountryIn",
|
|
1827
|
-
outputs: [{ internalType: "bool", name: "", type: "bool" }]
|
|
1828
|
-
},
|
|
1829
|
-
{
|
|
1830
|
-
inputs: [
|
|
1831
|
-
{ internalType: "string[]", name: "countryList", type: "string[]" },
|
|
1832
|
-
{
|
|
1833
|
-
internalType: "struct Commitments",
|
|
1834
|
-
name: "commitments",
|
|
1835
|
-
type: "tuple",
|
|
1836
|
-
components: [
|
|
1837
|
-
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1838
|
-
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1839
|
-
]
|
|
1840
|
-
}
|
|
1841
|
-
],
|
|
1842
|
-
stateMutability: "pure",
|
|
1843
|
-
type: "function",
|
|
1844
|
-
name: "isIssuingCountryOut",
|
|
1845
|
-
outputs: [{ internalType: "bool", name: "", type: "bool" }]
|
|
1846
|
-
},
|
|
1847
|
-
{
|
|
1848
|
-
inputs: [
|
|
1849
|
-
{ internalType: "string[]", name: "countryList", type: "string[]" },
|
|
1850
|
-
{
|
|
1851
|
-
internalType: "struct Commitments",
|
|
1852
|
-
name: "commitments",
|
|
1853
|
-
type: "tuple",
|
|
1854
|
-
components: [
|
|
1855
|
-
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1856
|
-
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1857
|
-
]
|
|
1858
|
-
}
|
|
1859
|
-
],
|
|
1860
|
-
stateMutability: "pure",
|
|
1861
|
-
type: "function",
|
|
1862
|
-
name: "isNationalityIn",
|
|
1863
|
-
outputs: [{ internalType: "bool", name: "", type: "bool" }]
|
|
1864
|
-
},
|
|
1865
|
-
{
|
|
1866
|
-
inputs: [
|
|
1867
|
-
{ internalType: "string[]", name: "countryList", type: "string[]" },
|
|
1868
|
-
{
|
|
1869
|
-
internalType: "struct Commitments",
|
|
1870
|
-
name: "commitments",
|
|
1871
|
-
type: "tuple",
|
|
1872
|
-
components: [
|
|
1873
|
-
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1874
|
-
{ internalType: "uint256[]", name: "committedInputCounts", type: "uint256[]" }
|
|
1875
|
-
]
|
|
1876
|
-
}
|
|
1877
|
-
],
|
|
1878
|
-
stateMutability: "pure",
|
|
1879
|
-
type: "function",
|
|
1880
|
-
name: "isNationalityOut",
|
|
1881
|
-
outputs: [{ internalType: "bool", name: "", type: "bool" }]
|
|
1882
|
-
},
|
|
1883
|
-
{
|
|
1884
|
-
inputs: [],
|
|
1885
|
-
stateMutability: "view",
|
|
1886
|
-
type: "function",
|
|
1887
|
-
name: "paused",
|
|
1888
|
-
outputs: [{ internalType: "bool", name: "", type: "bool" }]
|
|
1889
|
-
},
|
|
1890
|
-
{
|
|
1891
|
-
inputs: [{ internalType: "bytes32[]", name: "vkeyHashes", type: "bytes32[]" }],
|
|
1892
|
-
stateMutability: "nonpayable",
|
|
1893
|
-
type: "function",
|
|
1894
|
-
name: "removeVerifiers"
|
|
1895
|
-
},
|
|
1896
|
-
{
|
|
1897
|
-
inputs: [],
|
|
1898
|
-
stateMutability: "view",
|
|
1899
|
-
type: "function",
|
|
1900
|
-
name: "rootRegistry",
|
|
1901
|
-
outputs: [{ internalType: "contract IRootRegistry", name: "", type: "address" }]
|
|
1902
|
-
},
|
|
1903
|
-
{
|
|
1904
|
-
inputs: [{ internalType: "bool", name: "_paused", type: "bool" }],
|
|
1905
|
-
stateMutability: "nonpayable",
|
|
1906
|
-
type: "function",
|
|
1907
|
-
name: "setPaused"
|
|
1908
|
-
},
|
|
1909
|
-
{
|
|
1910
|
-
inputs: [{ internalType: "address", name: "newAdmin", type: "address" }],
|
|
1911
|
-
stateMutability: "nonpayable",
|
|
1912
|
-
type: "function",
|
|
1913
|
-
name: "transferAdmin"
|
|
1914
|
-
},
|
|
1915
|
-
{
|
|
1916
|
-
inputs: [{ internalType: "address", name: "_rootRegistry", type: "address" }],
|
|
1917
|
-
stateMutability: "nonpayable",
|
|
1918
|
-
type: "function",
|
|
1919
|
-
name: "updateRootRegistry"
|
|
1920
|
-
},
|
|
1921
|
-
{
|
|
1922
|
-
inputs: [
|
|
1923
|
-
{
|
|
1924
|
-
internalType: "struct ProofVerificationParams",
|
|
1925
|
-
name: "params",
|
|
1926
|
-
type: "tuple",
|
|
1927
|
-
components: [
|
|
1928
|
-
{
|
|
1929
|
-
internalType: "struct ProofVerificationData",
|
|
1930
|
-
name: "proofVerificationData",
|
|
1931
|
-
type: "tuple",
|
|
1932
|
-
components: [
|
|
1933
|
-
{ internalType: "bytes32", name: "vkeyHash", type: "bytes32" },
|
|
1934
|
-
{ internalType: "bytes", name: "proof", type: "bytes" },
|
|
1935
|
-
{ internalType: "bytes32[]", name: "publicInputs", type: "bytes32[]" }
|
|
1936
|
-
]
|
|
1937
|
-
},
|
|
1938
|
-
{
|
|
1939
|
-
internalType: "struct Commitments",
|
|
1940
|
-
name: "commitments",
|
|
1941
|
-
type: "tuple",
|
|
1942
|
-
components: [
|
|
1943
|
-
{ internalType: "bytes", name: "committedInputs", type: "bytes" },
|
|
1944
|
-
{
|
|
1945
|
-
internalType: "uint256[]",
|
|
1946
|
-
name: "committedInputCounts",
|
|
1947
|
-
type: "uint256[]"
|
|
1948
|
-
}
|
|
1949
|
-
]
|
|
1950
|
-
},
|
|
1951
|
-
{
|
|
1952
|
-
internalType: "struct ServiceConfig",
|
|
1953
|
-
name: "serviceConfig",
|
|
1954
|
-
type: "tuple",
|
|
1955
|
-
components: [
|
|
1956
|
-
{
|
|
1957
|
-
internalType: "uint256",
|
|
1958
|
-
name: "validityPeriodInSeconds",
|
|
1959
|
-
type: "uint256"
|
|
1960
|
-
},
|
|
1961
|
-
{ internalType: "string", name: "domain", type: "string" },
|
|
1962
|
-
{ internalType: "string", name: "scope", type: "string" },
|
|
1963
|
-
{ internalType: "bool", name: "devMode", type: "bool" }
|
|
1964
|
-
]
|
|
1965
|
-
}
|
|
1966
|
-
]
|
|
1967
|
-
}
|
|
1968
|
-
],
|
|
1969
|
-
stateMutability: "view",
|
|
1970
|
-
type: "function",
|
|
1971
|
-
name: "verifyProof",
|
|
1972
|
-
outputs: [
|
|
1973
|
-
{ internalType: "bool", name: "isValid", type: "bool" },
|
|
1974
|
-
{ internalType: "bytes32", name: "uniqueIdentifier", type: "bytes32" }
|
|
1975
|
-
]
|
|
1976
|
-
},
|
|
1977
|
-
{
|
|
1978
|
-
inputs: [
|
|
1979
|
-
{ internalType: "bytes32[]", name: "publicInputs", type: "bytes32[]" },
|
|
1980
|
-
{ internalType: "string", name: "domain", type: "string" },
|
|
1981
|
-
{ internalType: "string", name: "scope", type: "string" }
|
|
1982
|
-
],
|
|
1983
|
-
stateMutability: "pure",
|
|
1984
|
-
type: "function",
|
|
1985
|
-
name: "verifyScopes",
|
|
1986
|
-
outputs: [{ internalType: "bool", name: "", type: "bool" }]
|
|
1987
|
-
},
|
|
1988
|
-
{
|
|
1989
|
-
inputs: [{ internalType: "bytes32", name: "", type: "bytes32" }],
|
|
1990
|
-
stateMutability: "view",
|
|
1991
|
-
type: "function",
|
|
1992
|
-
name: "vkeyHashToVerifier",
|
|
1993
|
-
outputs: [{ internalType: "address", name: "", type: "address" }]
|
|
1994
|
-
}
|
|
1995
|
-
],
|
|
1996
|
-
devdoc: {
|
|
1997
|
-
kind: "dev",
|
|
1998
|
-
methods: {
|
|
1999
|
-
constructor: { details: "Constructor" },
|
|
2000
|
-
"enforceSanctionsRoot((bytes,uint256[]))": {
|
|
2001
|
-
params: { commitments: "The commitments" }
|
|
2002
|
-
},
|
|
2003
|
-
"getBoundData((bytes,uint256[]))": {
|
|
2004
|
-
params: { commitments: "The commitments" },
|
|
2005
|
-
returns: { boundData: "The data bound to the proof" }
|
|
2006
|
-
},
|
|
2007
|
-
"getDisclosedData((bytes,uint256[]),bool)": {
|
|
2008
|
-
params: {
|
|
2009
|
-
commitments: "The commitments",
|
|
2010
|
-
isIDCard: "Whether the proof is an ID card"
|
|
2011
|
-
},
|
|
2012
|
-
returns: { disclosedData: "The data disclosed by the proof" }
|
|
2013
|
-
},
|
|
2014
|
-
"isAgeAbove(uint8,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2015
|
-
params: {
|
|
2016
|
-
commitments: "The commitments",
|
|
2017
|
-
minAge: "The age must be above this age",
|
|
2018
|
-
serviceConfig: "The service config"
|
|
2019
|
-
},
|
|
2020
|
-
returns: { _0: "True if the age is above the given age, false otherwise" }
|
|
2021
|
-
},
|
|
2022
|
-
"isAgeAboveOrEqual(uint8,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2023
|
-
params: {
|
|
2024
|
-
commitments: "The commitments",
|
|
2025
|
-
minAge: "The age must be above or equal to this age",
|
|
2026
|
-
serviceConfig: "The service config"
|
|
2027
|
-
},
|
|
2028
|
-
returns: {
|
|
2029
|
-
_0: "True if the age is above or equal to the given age, false otherwise"
|
|
2030
|
-
}
|
|
2031
|
-
},
|
|
2032
|
-
"isAgeBelow(uint8,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2033
|
-
params: {
|
|
2034
|
-
commitments: "The commitments",
|
|
2035
|
-
maxAge: "The age must be below this age",
|
|
2036
|
-
serviceConfig: "The service config"
|
|
2037
|
-
},
|
|
2038
|
-
returns: { _0: "True if the age is below the given age, false otherwise" }
|
|
2039
|
-
},
|
|
2040
|
-
"isAgeBelowOrEqual(uint8,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2041
|
-
params: {
|
|
2042
|
-
commitments: "The commitments",
|
|
2043
|
-
maxAge: "The age must be below or equal to this age",
|
|
2044
|
-
serviceConfig: "The service config"
|
|
2045
|
-
},
|
|
2046
|
-
returns: {
|
|
2047
|
-
_0: "True if the age is below or equal to the given age, false otherwise"
|
|
2048
|
-
}
|
|
2049
|
-
},
|
|
2050
|
-
"isAgeBetween(uint8,uint8,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2051
|
-
params: {
|
|
2052
|
-
commitments: "The commitments",
|
|
2053
|
-
maxAge: "The age must be less than or equal to this age",
|
|
2054
|
-
minAge: "The age must be greater than or equal to this age",
|
|
2055
|
-
serviceConfig: "The service config"
|
|
2056
|
-
},
|
|
2057
|
-
returns: { _0: "True if the age is in the given range, false otherwise" }
|
|
2058
|
-
},
|
|
2059
|
-
"isAgeEqual(uint8,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2060
|
-
params: {
|
|
2061
|
-
age: "The age must be equal to this age",
|
|
2062
|
-
commitments: "The commitments",
|
|
2063
|
-
serviceConfig: "The service config"
|
|
2064
|
-
},
|
|
2065
|
-
returns: { _0: "True if the age is equal to the given age, false otherwise" }
|
|
2066
|
-
},
|
|
2067
|
-
"isBirthdateAfter(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2068
|
-
params: {
|
|
2069
|
-
commitments: "The commitments",
|
|
2070
|
-
minDate: "The birthdate must be after this date",
|
|
2071
|
-
serviceConfig: "The service config"
|
|
2072
|
-
},
|
|
2073
|
-
returns: { _0: "True if the birthdate is after the given date, false otherwise" }
|
|
2074
|
-
},
|
|
2075
|
-
"isBirthdateAfterOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2076
|
-
params: {
|
|
2077
|
-
commitments: "The commitments",
|
|
2078
|
-
minDate: "The birthdate must be after or equal to this date",
|
|
2079
|
-
serviceConfig: "The service config"
|
|
2080
|
-
},
|
|
2081
|
-
returns: {
|
|
2082
|
-
_0: "True if the birthdate is after or equal to the given date, false otherwise"
|
|
2083
|
-
}
|
|
2084
|
-
},
|
|
2085
|
-
"isBirthdateBefore(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2086
|
-
params: {
|
|
2087
|
-
commitments: "The commitments",
|
|
2088
|
-
maxDate: "The birthdate must be before this date",
|
|
2089
|
-
serviceConfig: "The service config"
|
|
2090
|
-
},
|
|
2091
|
-
returns: { _0: "True if the birthdate is before the given date, false otherwise" }
|
|
2092
|
-
},
|
|
2093
|
-
"isBirthdateBeforeOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2094
|
-
params: {
|
|
2095
|
-
commitments: "The commitments",
|
|
2096
|
-
maxDate: "The birthdate must be before or equal to this date",
|
|
2097
|
-
serviceConfig: "The service config"
|
|
2098
|
-
},
|
|
2099
|
-
returns: {
|
|
2100
|
-
_0: "True if the birthdate is before or equal to the given date, false otherwise"
|
|
2101
|
-
}
|
|
2102
|
-
},
|
|
2103
|
-
"isBirthdateBetween(uint256,uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2104
|
-
params: {
|
|
2105
|
-
commitments: "The commitments",
|
|
2106
|
-
maxDate: "The birthdate must be before or equal to this date",
|
|
2107
|
-
minDate: "The birthdate must be after or equal to this date",
|
|
2108
|
-
serviceConfig: "The service config"
|
|
2109
|
-
},
|
|
2110
|
-
returns: { _0: "True if the birthdate is between the given dates, false otherwise" }
|
|
2111
|
-
},
|
|
2112
|
-
"isBirthdateEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2113
|
-
params: {
|
|
2114
|
-
commitments: "The commitments",
|
|
2115
|
-
date: "The birthdate must be equal to this date",
|
|
2116
|
-
serviceConfig: "The service config"
|
|
2117
|
-
},
|
|
2118
|
-
returns: { _0: "True if the birthdate is equal to the given date, false otherwise" }
|
|
2119
|
-
},
|
|
2120
|
-
"isExpiryDateAfter(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2121
|
-
params: {
|
|
2122
|
-
commitments: "The commitments",
|
|
2123
|
-
minDate: "The expiry date must be after this date",
|
|
2124
|
-
serviceConfig: "The service config"
|
|
2125
|
-
},
|
|
2126
|
-
returns: { _0: "True if the expiry date is after the given date, false otherwise" }
|
|
2127
|
-
},
|
|
2128
|
-
"isExpiryDateAfterOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2129
|
-
params: {
|
|
2130
|
-
commitments: "The commitments",
|
|
2131
|
-
minDate: "The expiry date must be after or equal to this date",
|
|
2132
|
-
serviceConfig: "The service config"
|
|
2133
|
-
},
|
|
2134
|
-
returns: {
|
|
2135
|
-
_0: "True if the expiry date is after or equal to the given date, false otherwise"
|
|
2136
|
-
}
|
|
2137
|
-
},
|
|
2138
|
-
"isExpiryDateBefore(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2139
|
-
params: {
|
|
2140
|
-
commitments: "The commitments",
|
|
2141
|
-
maxDate: "The expiry date must be before this date",
|
|
2142
|
-
serviceConfig: "The service config"
|
|
2143
|
-
},
|
|
2144
|
-
returns: { _0: "True if the expiry date is before the given date, false otherwise" }
|
|
2145
|
-
},
|
|
2146
|
-
"isExpiryDateBeforeOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2147
|
-
params: {
|
|
2148
|
-
commitments: "The commitments",
|
|
2149
|
-
maxDate: "The expiry date must be before or equal to this date",
|
|
2150
|
-
serviceConfig: "The service config"
|
|
2151
|
-
},
|
|
2152
|
-
returns: {
|
|
2153
|
-
_0: "True if the expiry date is before or equal to the given date, false otherwise"
|
|
2154
|
-
}
|
|
2155
|
-
},
|
|
2156
|
-
"isExpiryDateBetween(uint256,uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2157
|
-
params: {
|
|
2158
|
-
commitments: "The commitments",
|
|
2159
|
-
maxDate: "The expiry date must be before or equal to this date",
|
|
2160
|
-
minDate: "The expiry date must be after or equal to this date",
|
|
2161
|
-
serviceConfig: "The service config"
|
|
2162
|
-
},
|
|
2163
|
-
returns: {
|
|
2164
|
-
_0: "True if the expiry date is between the given dates, false otherwise"
|
|
2165
|
-
}
|
|
2166
|
-
},
|
|
2167
|
-
"isExpiryDateEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2168
|
-
params: {
|
|
2169
|
-
commitments: "The commitments",
|
|
2170
|
-
date: "The expiry date must be equal to this date",
|
|
2171
|
-
serviceConfig: "The service config"
|
|
2172
|
-
},
|
|
2173
|
-
returns: {
|
|
2174
|
-
_0: "True if the expiry date is equal to the given date, false otherwise"
|
|
2175
|
-
}
|
|
2176
|
-
},
|
|
2177
|
-
"isFaceMatchVerified(uint8,uint8,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2178
|
-
params: {
|
|
2179
|
-
commitments: "The commitments",
|
|
2180
|
-
faceMatchMode: "The FaceMatch mode expected to be used in the verification",
|
|
2181
|
-
os: "The operating system on which the proof should have been generated (Any (0), iOS (1), Android (2))",
|
|
2182
|
-
serviceConfig: "The service config"
|
|
2183
|
-
},
|
|
2184
|
-
returns: {
|
|
2185
|
-
_0: "True if the proof is tied to a valid FaceMatch verification, false otherwise"
|
|
2186
|
-
}
|
|
2187
|
-
},
|
|
2188
|
-
"isIssuingCountryIn(string[],(bytes,uint256[]))": {
|
|
2189
|
-
params: {
|
|
2190
|
-
commitments: "The commitments",
|
|
2191
|
-
countryList: "The list of countries (needs to match exactly the list of countries in the proof)"
|
|
2192
|
-
},
|
|
2193
|
-
returns: {
|
|
2194
|
-
_0: "True if the issuing country is in the list of countries, false otherwise"
|
|
2195
|
-
}
|
|
2196
|
-
},
|
|
2197
|
-
"isIssuingCountryOut(string[],(bytes,uint256[]))": {
|
|
2198
|
-
params: {
|
|
2199
|
-
commitments: "The commitments",
|
|
2200
|
-
countryList: "The list of countries (needs to match exactly the list of countries in the proof) Note: The list of countries must be sorted in alphabetical order"
|
|
2201
|
-
},
|
|
2202
|
-
returns: {
|
|
2203
|
-
_0: "True if the issuing country is not in the list of countries, false otherwise"
|
|
2204
|
-
}
|
|
2205
|
-
},
|
|
2206
|
-
"isNationalityIn(string[],(bytes,uint256[]))": {
|
|
2207
|
-
params: {
|
|
2208
|
-
commitments: "The commitments",
|
|
2209
|
-
countryList: "The list of countries (needs to match exactly the list of countries in the proof)"
|
|
2210
|
-
},
|
|
2211
|
-
returns: {
|
|
2212
|
-
_0: "True if the nationality is in the list of countries, false otherwise"
|
|
2213
|
-
}
|
|
2214
|
-
},
|
|
2215
|
-
"isNationalityOut(string[],(bytes,uint256[]))": {
|
|
2216
|
-
params: {
|
|
2217
|
-
commitments: "The commitments",
|
|
2218
|
-
countryList: "The list of countries (needs to match exactly the list of countries in the proof) Note: The list of countries must be sorted in alphabetical order"
|
|
2219
|
-
},
|
|
2220
|
-
returns: {
|
|
2221
|
-
_0: "True if the nationality is not in the list of countries, false otherwise"
|
|
2222
|
-
}
|
|
2223
|
-
},
|
|
2224
|
-
"verifyProof(((bytes32,bytes,bytes32[]),(bytes,uint256[]),(uint256,string,string,bool)))": {
|
|
2225
|
-
params: { params: "The proof verification parameters" },
|
|
2226
|
-
returns: {
|
|
2227
|
-
isValid: "True if the proof is valid, false otherwise",
|
|
2228
|
-
uniqueIdentifier: "The unique identifier associated to the identity document that generated the proof"
|
|
2229
|
-
}
|
|
2230
|
-
},
|
|
2231
|
-
"verifyScopes(bytes32[],string,string)": {
|
|
2232
|
-
params: {
|
|
2233
|
-
domain: "The domain to check against",
|
|
2234
|
-
publicInputs: "The public inputs of the proof",
|
|
2235
|
-
scope: "The scope to check against"
|
|
2236
|
-
},
|
|
2237
|
-
returns: {
|
|
2238
|
-
_0: "True if the proof was generated for the given domain and scope, false otherwise"
|
|
2239
|
-
}
|
|
2240
|
-
}
|
|
2241
|
-
},
|
|
2242
|
-
version: 1
|
|
2243
|
-
},
|
|
2244
|
-
userdoc: {
|
|
2245
|
-
kind: "user",
|
|
2246
|
-
methods: {
|
|
2247
|
-
"enforceSanctionsRoot((bytes,uint256[]))": {
|
|
2248
|
-
notice: "Enforces that the proof checks against the expected sanction list(s)"
|
|
2249
|
-
},
|
|
2250
|
-
"getBoundData((bytes,uint256[]))": { notice: "Gets the data bound to the proof" },
|
|
2251
|
-
"getDisclosedData((bytes,uint256[]),bool)": {
|
|
2252
|
-
notice: "Gets the data disclosed by the proof"
|
|
2253
|
-
},
|
|
2254
|
-
"isAgeAbove(uint8,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2255
|
-
notice: "Checks if the age is above the given age"
|
|
2256
|
-
},
|
|
2257
|
-
"isAgeAboveOrEqual(uint8,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2258
|
-
notice: "Checks if the age is above or equal to the given age"
|
|
2259
|
-
},
|
|
2260
|
-
"isAgeBelow(uint8,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2261
|
-
notice: "Checks if the age is below the given age"
|
|
2262
|
-
},
|
|
2263
|
-
"isAgeBelowOrEqual(uint8,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2264
|
-
notice: "Checks if the age is below or equal to the given age"
|
|
2265
|
-
},
|
|
2266
|
-
"isAgeBetween(uint8,uint8,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2267
|
-
notice: "Checks if the age is in the given range"
|
|
2268
|
-
},
|
|
2269
|
-
"isAgeEqual(uint8,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2270
|
-
notice: "Checks if the age is equal to the given age"
|
|
2271
|
-
},
|
|
2272
|
-
"isBirthdateAfter(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2273
|
-
notice: "Checks if the birthdate is after the given date"
|
|
2274
|
-
},
|
|
2275
|
-
"isBirthdateAfterOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2276
|
-
notice: "Checks if the birthdate is after or equal to the given date"
|
|
2277
|
-
},
|
|
2278
|
-
"isBirthdateBefore(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2279
|
-
notice: "Checks if the birthdate is before the given date"
|
|
2280
|
-
},
|
|
2281
|
-
"isBirthdateBeforeOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2282
|
-
notice: "Checks if the birthdate is before or equal to the given date"
|
|
2283
|
-
},
|
|
2284
|
-
"isBirthdateBetween(uint256,uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2285
|
-
notice: "Checks if the birthdate is between the given dates"
|
|
2286
|
-
},
|
|
2287
|
-
"isBirthdateEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2288
|
-
notice: "Checks if the birthdate is equal to the given date"
|
|
2289
|
-
},
|
|
2290
|
-
"isExpiryDateAfter(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2291
|
-
notice: "Checks if the expiry date is after the given date"
|
|
2292
|
-
},
|
|
2293
|
-
"isExpiryDateAfterOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2294
|
-
notice: "Checks if the expiry date is after or equal to the given date"
|
|
2295
|
-
},
|
|
2296
|
-
"isExpiryDateBefore(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2297
|
-
notice: "Checks if the expiry date is before the given date"
|
|
2298
|
-
},
|
|
2299
|
-
"isExpiryDateBeforeOrEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2300
|
-
notice: "Checks if the expiry date is before or equal to the given date"
|
|
2301
|
-
},
|
|
2302
|
-
"isExpiryDateBetween(uint256,uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2303
|
-
notice: "Checks if the expiry date is between the given dates"
|
|
2304
|
-
},
|
|
2305
|
-
"isExpiryDateEqual(uint256,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2306
|
-
notice: "Checks if the expiry date is equal to the given date"
|
|
2307
|
-
},
|
|
2308
|
-
"isFaceMatchVerified(uint8,uint8,(bytes,uint256[]),(uint256,string,string,bool))": {
|
|
2309
|
-
notice: "Checks if the proof is tied to a FaceMatch verification"
|
|
2310
|
-
},
|
|
2311
|
-
"isIssuingCountryIn(string[],(bytes,uint256[]))": {
|
|
2312
|
-
notice: "Checks if the issuing country is in the list of countries"
|
|
2313
|
-
},
|
|
2314
|
-
"isIssuingCountryOut(string[],(bytes,uint256[]))": {
|
|
2315
|
-
notice: "Checks if the issuing country is not in the list of countries"
|
|
2316
|
-
},
|
|
2317
|
-
"isNationalityIn(string[],(bytes,uint256[]))": {
|
|
2318
|
-
notice: "Checks if the nationality is in the list of countries"
|
|
2319
|
-
},
|
|
2320
|
-
"isNationalityOut(string[],(bytes,uint256[]))": {
|
|
2321
|
-
notice: "Checks if the nationality is not in the list of countries"
|
|
2322
|
-
},
|
|
2323
|
-
"verifyProof(((bytes32,bytes,bytes32[]),(bytes,uint256[]),(uint256,string,string,bool)))": {
|
|
2324
|
-
notice: "Verifies a proof from ZKPassport"
|
|
2325
|
-
},
|
|
2326
|
-
"verifyScopes(bytes32[],string,string)": {
|
|
2327
|
-
notice: "Verifies that the proof was generated for the given domain and scope"
|
|
2328
|
-
}
|
|
2329
|
-
},
|
|
2330
|
-
version: 1
|
|
2331
|
-
}
|
|
2332
|
-
},
|
|
2333
|
-
settings: {
|
|
2334
|
-
remappings: ["forge-std/=lib/forge-std/src/"],
|
|
2335
|
-
optimizer: { enabled: true, runs: 200 },
|
|
2336
|
-
metadata: { bytecodeHash: "ipfs" },
|
|
2337
|
-
compilationTarget: { "src/ZKPassportVerifier.sol": "ZKPassportVerifier" },
|
|
2338
|
-
evmVersion: "prague",
|
|
2339
|
-
libraries: {}
|
|
2340
|
-
},
|
|
2341
|
-
sources: {
|
|
2342
|
-
"src/Constants.sol": {
|
|
2343
|
-
keccak256: "0x9028200b38f4ec17533664ed4d04e16c500b68ef398d0935811a16409bd9d84f",
|
|
2344
|
-
urls: [
|
|
2345
|
-
"bzz-raw://065da1a99b9be089622088760a46cf5ec6a0bbece388cb722d12fd4f67237ce4",
|
|
2346
|
-
"dweb:/ipfs/Qmdqt9UV9ecPBTdVsudSDVszwgu3U2DG3e9DZ4AJt7Zghm"
|
|
2347
|
-
],
|
|
2348
|
-
license: "Apache-2.0"
|
|
2349
|
-
},
|
|
2350
|
-
"src/DateUtils.sol": {
|
|
2351
|
-
keccak256: "0xc04aef2f5732f8c3b28077a0af19e2fbbdec2f9178f3800563bf64ccdecefc77",
|
|
2352
|
-
urls: [
|
|
2353
|
-
"bzz-raw://bcc2610f3bdd3411fc040d39efe9e68f826b48986b2df7987f3adb6a1467c833",
|
|
2354
|
-
"dweb:/ipfs/Qmc7uyW8Y7ekaKEdjd3kU9e1eDcCiAqsujGc5ZavuzGx4w"
|
|
2355
|
-
],
|
|
2356
|
-
license: "Apache-2.0"
|
|
2357
|
-
},
|
|
2358
|
-
"src/IRootRegistry.sol": {
|
|
2359
|
-
keccak256: "0xa9955e80821ca9ccbdf7d05a8ce9a3e237b4771e1f6e09190ed1c803a5e1e516",
|
|
2360
|
-
urls: [
|
|
2361
|
-
"bzz-raw://fd9fc9fbd7057a6bcc16a682e52be9ebd012954898626a11f0a0e8788644789d",
|
|
2362
|
-
"dweb:/ipfs/QmZYpMRHdv4gMCNXCQtGQu8XqRVtNR9Kgkzh7u1YMpvrEB"
|
|
2363
|
-
],
|
|
2364
|
-
license: "MIT"
|
|
2365
|
-
},
|
|
2366
|
-
"src/InputsExtractor.sol": {
|
|
2367
|
-
keccak256: "0x85df2d9d89bb8538bd3d7168c30d8ace823a3710ee83ef3a8fbc1f59a7720473",
|
|
2368
|
-
urls: [
|
|
2369
|
-
"bzz-raw://7681a82ac614eafba56b8a9c1b7943f0d66cce6a5319124fb214a13f00535f07",
|
|
2370
|
-
"dweb:/ipfs/QmPoj2DXmCeuYGZpAf4MWUwc5buMRqwykUc1B8mryQrPqT"
|
|
2371
|
-
],
|
|
2372
|
-
license: "Apache-2.0"
|
|
2373
|
-
},
|
|
2374
|
-
"src/StringUtils.sol": {
|
|
2375
|
-
keccak256: "0x0174454c28003f489bcdf636c93ccb512d80f3dbdca7485e11b51cf2c8ebfff1",
|
|
2376
|
-
urls: [
|
|
2377
|
-
"bzz-raw://92ea71064b8199c9a05cbe279cf42adaaa7b29604d960a84754d3d997b1c2342",
|
|
2378
|
-
"dweb:/ipfs/QmcsrqRJ2YZABCZHzS782RqKmWEegSK1LCmTTjJ94gdh5q"
|
|
2379
|
-
],
|
|
2380
|
-
license: "Apache-2.0"
|
|
2381
|
-
},
|
|
2382
|
-
"src/Types.sol": {
|
|
2383
|
-
keccak256: "0x1cb492c099b71287da0349afef0c72c430e2476ad7373a0ea1456e7145207a06",
|
|
2384
|
-
urls: [
|
|
2385
|
-
"bzz-raw://a158753948b82917aa802c4b475a1ffb4b5f09b2a86ebcb64db11437ab297047",
|
|
2386
|
-
"dweb:/ipfs/QmPgGhT59MzcG4TA5PmKjzaoNMZ4VRmcLJH6w5LkWQYjxV"
|
|
2387
|
-
],
|
|
2388
|
-
license: "Apache-2.0"
|
|
2389
|
-
},
|
|
2390
|
-
"src/ZKPassportVerifier.sol": {
|
|
2391
|
-
keccak256: "0xc1a8e1598a279af7a72f60c684531a3cb43e81f65a394dd2ea12da78dae27cc5",
|
|
2392
|
-
urls: [
|
|
2393
|
-
"bzz-raw://9b6a3ebc79fa7ed343f5a46730a4c24431768d2276fe0295fed3814d795eab1b",
|
|
2394
|
-
"dweb:/ipfs/QmboGSLvn9BFNEikCzoBTVrqoXLQKUKN8eMn5VZqyFP2Q9"
|
|
2395
|
-
],
|
|
2396
|
-
license: "Apache-2.0"
|
|
2397
|
-
},
|
|
2398
|
-
"src/ultra-honk-verifiers/OuterCount4.sol": {
|
|
2399
|
-
keccak256: "0x0f0d75a82f697db2db5f689acd8fbd603940a2e2d862601a16316a3a21a6f916",
|
|
2400
|
-
urls: [
|
|
2401
|
-
"bzz-raw://b2306e16c0265d824e0a5aa4cd1fea70a1322af74a4e8b34df1444c0e47ed345",
|
|
2402
|
-
"dweb:/ipfs/QmRaEPoyvBX2n1VV9SoXPmoEEXzRyFGB9obQUuYuuXAMAR"
|
|
2403
|
-
],
|
|
2404
|
-
license: "Apache-2.0"
|
|
2405
|
-
}
|
|
2406
|
-
},
|
|
2407
|
-
version: 1
|
|
2408
|
-
},
|
|
2409
|
-
id: 26
|
|
2410
|
-
};
|
|
2411
|
-
|
|
2412
|
-
// src/solidity-verifier.ts
|
|
2413
|
-
var SolidityVerifier = class {
|
|
2414
|
-
static getDetails(network) {
|
|
2415
|
-
const baseConfig = {
|
|
2416
|
-
functionName: "verifyProof",
|
|
2417
|
-
abi: ZKPassportVerifier_default.abi
|
|
2418
|
-
};
|
|
2419
|
-
if (network === "ethereum_sepolia") {
|
|
2420
|
-
return {
|
|
2421
|
-
...baseConfig,
|
|
2422
|
-
address: "0x3101Bad9eA5fACadA5554844a1a88F7Fe48D4DE0"
|
|
2423
|
-
};
|
|
2424
|
-
} else if (network === "local_anvil") {
|
|
2425
|
-
return {
|
|
2426
|
-
...baseConfig,
|
|
2427
|
-
address: "0x0"
|
|
2428
|
-
};
|
|
2429
|
-
}
|
|
2430
|
-
throw new Error(`Unsupported network: ${network}`);
|
|
2431
|
-
}
|
|
2432
|
-
static getParameters({
|
|
2433
|
-
proof,
|
|
2434
|
-
validityPeriodInSeconds = DEFAULT_VALIDITY,
|
|
2435
|
-
domain,
|
|
2436
|
-
scope,
|
|
2437
|
-
devMode = false
|
|
2438
|
-
}) {
|
|
2439
|
-
if (!proof.name?.startsWith("outer_evm")) {
|
|
2440
|
-
throw new Error(
|
|
2441
|
-
"This proof cannot be verified on an EVM chain. Please make sure to use the `compressed-evm` mode."
|
|
2442
|
-
);
|
|
2443
|
-
}
|
|
2444
|
-
const proofData = getProofData(proof.proof, getNumberOfPublicInputs(proof.name));
|
|
2445
|
-
let committedInputCounts = [];
|
|
2446
|
-
let committedInputs = [];
|
|
2447
|
-
for (const key in proof.committedInputs) {
|
|
2448
|
-
const committedInputCount = getCommittedInputCount(key);
|
|
2449
|
-
const circuitName = key;
|
|
2450
|
-
committedInputCounts.push({ circuitName, count: committedInputCount });
|
|
2451
|
-
let compressedCommittedInputs2 = "";
|
|
2452
|
-
if (circuitName === "inclusion_check_issuing_country_evm" || circuitName === "inclusion_check_nationality_evm" || circuitName === "exclusion_check_issuing_country_evm" || circuitName === "exclusion_check_nationality_evm") {
|
|
2453
|
-
const value = proof.committedInputs[circuitName];
|
|
2454
|
-
const formattedCountries = value.countries;
|
|
2455
|
-
if (circuitName === "exclusion_check_issuing_country_evm" || circuitName === "exclusion_check_nationality_evm") {
|
|
2456
|
-
formattedCountries.sort((a, b) => a.localeCompare(b));
|
|
2457
|
-
}
|
|
2458
|
-
const proofType = (() => {
|
|
2459
|
-
switch (circuitName) {
|
|
2460
|
-
case "exclusion_check_issuing_country_evm":
|
|
2461
|
-
return ProofType.ISSUING_COUNTRY_EXCLUSION;
|
|
2462
|
-
case "exclusion_check_nationality_evm":
|
|
2463
|
-
return ProofType.NATIONALITY_EXCLUSION;
|
|
2464
|
-
case "inclusion_check_issuing_country_evm":
|
|
2465
|
-
return ProofType.ISSUING_COUNTRY_INCLUSION;
|
|
2466
|
-
case "inclusion_check_nationality_evm":
|
|
2467
|
-
return ProofType.NATIONALITY_INCLUSION;
|
|
2468
|
-
}
|
|
2469
|
-
})();
|
|
2470
|
-
compressedCommittedInputs2 = proofType.toString(16).padStart(2, "0") + rightPadArrayWithZeros(
|
|
2471
|
-
formattedCountries.map((c) => Array.from(new TextEncoder().encode(c))).flat(),
|
|
2472
|
-
600
|
|
2473
|
-
).map((x) => x.toString(16).padStart(2, "0")).join("");
|
|
2474
|
-
} else if (circuitName === "compare_age_evm") {
|
|
2475
|
-
const value = proof.committedInputs[circuitName];
|
|
2476
|
-
const currentDateBytes = Array.from(numberToBytesBE(value.currentDateTimestamp, 8));
|
|
2477
|
-
compressedCommittedInputs2 = ProofType.AGE.toString(16).padStart(2, "0") + currentDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("") + value.minAge.toString(16).padStart(2, "0") + value.maxAge.toString(16).padStart(2, "0");
|
|
2478
|
-
} else if (circuitName === "compare_birthdate_evm") {
|
|
2479
|
-
const value = proof.committedInputs[circuitName];
|
|
2480
|
-
const currentDateBytes = Array.from(numberToBytesBE(value.currentDateTimestamp, 8));
|
|
2481
|
-
const minDateBytes = Array.from(numberToBytesBE(value.minDateTimestamp, 8));
|
|
2482
|
-
const maxDateBytes = Array.from(numberToBytesBE(value.maxDateTimestamp, 8));
|
|
2483
|
-
compressedCommittedInputs2 = ProofType.BIRTHDATE.toString(16).padStart(2, "0") + currentDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("") + minDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("") + maxDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("");
|
|
2484
|
-
} else if (circuitName === "compare_expiry_evm") {
|
|
2485
|
-
const value = proof.committedInputs[circuitName];
|
|
2486
|
-
const currentDateBytes = Array.from(numberToBytesBE(value.currentDateTimestamp, 8));
|
|
2487
|
-
const minDateBytes = Array.from(numberToBytesBE(value.minDateTimestamp, 8));
|
|
2488
|
-
const maxDateBytes = Array.from(numberToBytesBE(value.maxDateTimestamp, 8));
|
|
2489
|
-
compressedCommittedInputs2 = ProofType.EXPIRY_DATE.toString(16).padStart(2, "0") + currentDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("") + minDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("") + maxDateBytes.map((x) => x.toString(16).padStart(2, "0")).join("");
|
|
2490
|
-
} else if (circuitName === "disclose_bytes_evm") {
|
|
2491
|
-
const value = proof.committedInputs[circuitName];
|
|
2492
|
-
compressedCommittedInputs2 = ProofType.DISCLOSE.toString(16).padStart(2, "0") + value.discloseMask.map((x) => x.toString(16).padStart(2, "0")).join("") + value.disclosedBytes.map((x) => x.toString(16).padStart(2, "0")).join("");
|
|
2493
|
-
} else if (circuitName === "bind_evm") {
|
|
2494
|
-
const value = proof.committedInputs[circuitName];
|
|
2495
|
-
compressedCommittedInputs2 = ProofType.BIND.toString(16).padStart(2, "0") + rightPadArrayWithZeros(formatBoundData(value.data), 500).map((x) => x.toString(16).padStart(2, "0")).join("");
|
|
2496
|
-
} else if (circuitName === "exclusion_check_sanctions_evm") {
|
|
2497
|
-
const value = proof.committedInputs[circuitName];
|
|
2498
|
-
compressedCommittedInputs2 = ProofType.SANCTIONS_EXCLUSION.toString(16).padStart(2, "0") + Array.from(numberToBytesBE(BigInt(value.rootHash), 32)).map((x) => x.toString(16).padStart(2, "0")).join("");
|
|
2499
|
-
} else if (circuitName.startsWith("facematch") && circuitName.endsWith("_evm")) {
|
|
2500
|
-
const value = proof.committedInputs[circuitName];
|
|
2501
|
-
compressedCommittedInputs2 += ProofType.FACEMATCH.toString(16).padStart(2, "0");
|
|
2502
|
-
compressedCommittedInputs2 += Array.from(numberToBytesBE(BigInt(value.rootKeyLeaf), 32)).map((x) => x.toString(16).padStart(2, "0")).join("");
|
|
2503
|
-
compressedCommittedInputs2 += value.environment === "development" ? "00" : "01";
|
|
2504
|
-
compressedCommittedInputs2 += Array.from(numberToBytesBE(BigInt(value.appIdHash), 32)).map((x) => x.toString(16).padStart(2, "0")).join("");
|
|
2505
|
-
compressedCommittedInputs2 += Array.from(
|
|
2506
|
-
numberToBytesBE(BigInt(value.integrityPubkeyHash), 32)
|
|
2507
|
-
).map((x) => x.toString(16).padStart(2, "0")).join("");
|
|
2508
|
-
compressedCommittedInputs2 += value.mode === "regular" ? "01" : "02";
|
|
2509
|
-
} else {
|
|
2510
|
-
throw new Error(`Unsupported circuit for EVM verification: ${circuitName}`);
|
|
2511
|
-
}
|
|
2512
|
-
committedInputs.push({ circuitName, inputs: compressedCommittedInputs2 });
|
|
2513
|
-
}
|
|
2514
|
-
const parameterCommitments = getParamCommitmentsFromOuterProof(proofData).map(
|
|
2515
|
-
(x) => x.toString(16).padStart(64, "0")
|
|
2516
|
-
);
|
|
2517
|
-
let compressedCommittedInputs = "";
|
|
2518
|
-
let committedInputCountsArray = [];
|
|
2519
|
-
for (const commitment of parameterCommitments) {
|
|
2520
|
-
const committedInput = committedInputs.find((x) => {
|
|
2521
|
-
const rawHashedInputs = sha256(hexToBytes(x.inputs));
|
|
2522
|
-
const hashedInputs = new Uint8Array(rawHashedInputs.length);
|
|
2523
|
-
for (let i = 0; i < rawHashedInputs.length - 1; i++) {
|
|
2524
|
-
hashedInputs[i + 1] = rawHashedInputs[i];
|
|
2525
|
-
}
|
|
2526
|
-
hashedInputs[0] = 0;
|
|
2527
|
-
return bytesToHex(hashedInputs) === commitment.replace("0x", "");
|
|
2528
|
-
});
|
|
2529
|
-
if (committedInput) {
|
|
2530
|
-
const count = committedInputCounts.find(
|
|
2531
|
-
(x) => x.circuitName === committedInput.circuitName
|
|
2532
|
-
)?.count;
|
|
2533
|
-
if (count) {
|
|
2534
|
-
committedInputCountsArray.push(count);
|
|
2535
|
-
compressedCommittedInputs += committedInput.inputs;
|
|
2536
|
-
} else {
|
|
2537
|
-
throw new Error(`Unknown circuit name: ${committedInput.circuitName}`);
|
|
2538
|
-
}
|
|
2539
|
-
} else {
|
|
2540
|
-
throw new Error(`Invalid commitment: ${commitment}`);
|
|
2541
|
-
}
|
|
2542
|
-
}
|
|
2543
|
-
const params = {
|
|
2544
|
-
proofVerificationData: {
|
|
2545
|
-
// Make sure the vkeyHash is 32 bytes
|
|
2546
|
-
vkeyHash: `0x${proof.vkeyHash.replace("0x", "").padStart(64, "0")}`,
|
|
2547
|
-
proof: `0x${proofData.proof.join("")}`,
|
|
2548
|
-
publicInputs: proofData.publicInputs
|
|
2549
|
-
},
|
|
2550
|
-
commitments: {
|
|
2551
|
-
committedInputs: `0x${compressedCommittedInputs}`,
|
|
2552
|
-
committedInputCounts: committedInputCountsArray
|
|
2553
|
-
},
|
|
2554
|
-
serviceConfig: {
|
|
2555
|
-
validityPeriodInSeconds,
|
|
2556
|
-
domain,
|
|
2557
|
-
scope: scope ?? "",
|
|
2558
|
-
devMode
|
|
2559
|
-
}
|
|
2560
|
-
};
|
|
2561
|
-
return params;
|
|
2562
|
-
}
|
|
2563
|
-
};
|
|
2564
|
-
|
|
2565
|
-
export {
|
|
2566
|
-
SolidityVerifier
|
|
2567
|
-
};
|