zkjson 0.6.1 → 1.0.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/README.md +537 -0
- package/assets/collection.png +0 -0
- package/assets/db.png +0 -0
- package/assets/encode.png +0 -0
- package/assets/query.png +0 -0
- package/assets/rollup.png +0 -0
- package/assets/structure.png +0 -0
- package/assets/weavedb.png +0 -0
- package/assets/zkjson.png +0 -0
- package/benchmark/components/ui/avatar.jsx +49 -0
- package/benchmark/components/ui/checkbox.jsx +17 -0
- package/benchmark/components/ui/close-button.jsx +20 -0
- package/benchmark/components/ui/color-mode.jsx +89 -0
- package/benchmark/components/ui/dialog.jsx +54 -0
- package/benchmark/components/ui/drawer.jsx +44 -0
- package/benchmark/components/ui/field.jsx +22 -0
- package/benchmark/components/ui/input-group.jsx +39 -0
- package/benchmark/components/ui/popover.jsx +49 -0
- package/benchmark/components/ui/provider.jsx +12 -0
- package/benchmark/components/ui/radio.jsx +17 -0
- package/benchmark/components/ui/slider.jsx +107 -0
- package/benchmark/components/ui/tooltip.jsx +35 -0
- package/benchmark/jsconfig.json +7 -0
- package/benchmark/lib/cbor.js +387 -0
- package/benchmark/lib/msgpack.js +651 -0
- package/benchmark/next.config.mjs +6 -0
- package/benchmark/package.json +22 -0
- package/benchmark/pages/_app.js +9 -0
- package/benchmark/pages/_document.js +13 -0
- package/benchmark/pages/api/hello.js +5 -0
- package/benchmark/pages/index.js +438 -0
- package/benchmark/public/favicon.ico +0 -0
- package/benchmark/public/file.svg +1 -0
- package/benchmark/public/globe.svg +1 -0
- package/benchmark/public/next.svg +1 -0
- package/benchmark/public/vercel.svg +1 -0
- package/benchmark/public/window.svg +1 -0
- package/benchmark/yarn.lock +2448 -0
- package/circom/collection/collection.circom +32 -0
- package/circom/collection/compile.sh +10 -0
- package/circom/collection/gen.js +34 -0
- package/circom/collection/generateInput.js +10 -0
- package/circom/collection/index.circom +4 -0
- package/circom/collection/test.js +21 -0
- package/circom/collection/verifier.sol +247 -0
- package/circom/db/compile.sh +10 -0
- package/circom/db/db.circom +39 -0
- package/circom/db/gen.js +30 -0
- package/circom/db/generateInput.js +10 -0
- package/circom/db/index.circom +4 -0
- package/circom/db/test.js +21 -0
- package/circom/db/verifier.sol +261 -0
- package/circom/ipfs/calculate_total.circom +17 -0
- package/circom/ipfs/compile.sh +10 -0
- package/circom/ipfs/gen.js +18 -0
- package/circom/ipfs/generateInput.js +10 -0
- package/circom/ipfs/index.circom +4 -0
- package/circom/ipfs/ipfs.circom +62 -0
- package/circom/ipfs/parse.circom +289 -0
- package/circom/ipfs/sha256.circom +99 -0
- package/circom/ipfs/test.js +167 -0
- package/circom/ipfs/verifier.sol +261 -0
- package/circom/json/compile.sh +10 -0
- package/circom/json/gen.js +22 -0
- package/circom/json/gen2.js +21 -0
- package/circom/json/generateInput.js +20 -0
- package/circom/json/index.circom +4 -0
- package/circom/json/json.circom +81 -0
- package/circom/json/test.js +100 -0
- package/circom/json/verifier.sol +247 -0
- package/circom/query/compile.sh +10 -0
- package/circom/query/gen.js +28 -0
- package/circom/query/generateInput.js +11 -0
- package/circom/query/index.circom +4 -0
- package/circom/query/query.circom +58 -0
- package/circom/query/test.js +20 -0
- package/circom/query/verifier.sol +177 -0
- package/circom/rollup/compile.sh +10 -0
- package/circom/rollup/gen.js +36 -0
- package/circom/rollup/generateInput.js +11 -0
- package/circom/rollup/index.circom +4 -0
- package/circom/rollup/rollup.circom +43 -0
- package/circom/rollup/test.js +35 -0
- package/circom/rollup/verifier.sol +240 -0
- package/circom/scripts/ceremony.js +39 -0
- package/circom/scripts/ceremony.sh +6 -0
- package/circom/scripts/compile.js +113 -0
- package/circom/scripts/compile.sh +16 -0
- package/circom/utils/uint.circom +512 -0
- package/circom/utils/utils.circom +628 -0
- package/demos/arweave/jsconfig.json +7 -0
- package/demos/arweave/lib/ZKArweave.json +617 -0
- package/demos/arweave/lib/encoder.js +375 -0
- package/demos/arweave/next.config.js +6 -0
- package/demos/arweave/package.json +26 -0
- package/demos/arweave/pages/_app.js +9 -0
- package/demos/arweave/pages/_document.js +19 -0
- package/demos/arweave/pages/api/arweave.js +31 -0
- package/demos/arweave/pages/api/hello.js +5 -0
- package/demos/arweave/pages/index.js +869 -0
- package/demos/arweave/public/circuit.wasm +0 -0
- package/demos/arweave/public/circuit_final.zkey +0 -0
- package/demos/arweave/public/verification_key.json +149 -0
- package/demos/arweave/vercel.json +7 -0
- package/demos/arweave/yarn.lock +2510 -0
- package/demos/simple/jsconfig.json +7 -0
- package/demos/simple/lib/encoder.js +375 -0
- package/demos/simple/next.config.js +6 -0
- package/demos/simple/package.json +24 -0
- package/demos/simple/pages/_app.js +9 -0
- package/demos/simple/pages/_document.js +13 -0
- package/demos/simple/pages/api/hello.js +5 -0
- package/demos/simple/pages/index.js +342 -0
- package/demos/simple/public/circuit.wasm +0 -0
- package/demos/simple/public/circuit_final.zkey +0 -0
- package/demos/simple/public/verification_key.json +149 -0
- package/demos/simple/yarn.lock +2519 -0
- package/docs/README.md +17 -0
- package/docs/simple-zkjson.md +210 -0
- package/docs/solidity-contracts.md +216 -0
- package/docs/zk-circuits.md +125 -0
- package/docs/zkdb-rollup.md +218 -0
- package/docs/zkjson-sdk.md +254 -0
- package/docs/zkjson-v1_5.md +365 -0
- package/package.json +16 -7
- package/{contracts → sdk/contracts}/NORollup.sol +0 -2
- package/sdk/package.json +15 -0
- package/sdk/yarn.lock +881 -0
- package/solidity/README.md +13 -0
- package/solidity/arguments.js +4 -0
- package/solidity/contracts/NORollup.sol +13 -0
- package/solidity/contracts/OPRollup.sol +14 -0
- package/solidity/contracts/ZKIPFS.sol +95 -0
- package/solidity/contracts/ZKJson.sol +21 -0
- package/solidity/contracts/ZKQuery.sol +286 -0
- package/solidity/contracts/ZKRollup.sol +35 -0
- package/solidity/contracts/apps/NORU.sol +66 -0
- package/solidity/contracts/apps/SimpleJSON.sol +64 -0
- package/solidity/contracts/apps/SimpleOPRU.sol +67 -0
- package/solidity/contracts/apps/SimpleRU.sol +67 -0
- package/solidity/contracts/apps/Token.sol +12 -0
- package/solidity/contracts/apps/ZKArweave.sol +89 -0
- package/solidity/contracts/apps/ZKBridge.sol +74 -0
- package/solidity/contracts/apps/ZKNFT.sol +63 -0
- package/solidity/contracts/verifiers/verifier_db.sol +275 -0
- package/solidity/contracts/verifiers/verifier_ipfs.sol +464 -0
- package/solidity/contracts/verifiers/verifier_json.sol +261 -0
- package/solidity/contracts/verifiers/verifier_rollup.sol +240 -0
- package/solidity/package.json +27 -0
- package/solidity/scripts/deploy.js +33 -0
- package/solidity/test/NORU.js +66 -0
- package/solidity/test/ZKArweave.js +97 -0
- package/solidity/test/arweave.js +55 -0
- package/solidity/test/bridge.js +71 -0
- package/solidity/test/simple.js +76 -0
- package/solidity/test/simpleOPRU.js +98 -0
- package/solidity/test/simpleRU.js +94 -0
- package/solidity/test/zknft.js +98 -0
- package/solidity/yarn.lock +4152 -0
- package/test/test.js +304 -0
- /package/{circomlibjs.js → sdk/circomlibjs.js} +0 -0
- /package/{collection.js → sdk/collection.js} +0 -0
- /package/{contracts → sdk/contracts}/OPRollup.sol +0 -0
- /package/{contracts → sdk/contracts}/ZKIPFS.sol +0 -0
- /package/{contracts → sdk/contracts}/ZKJson.sol +0 -0
- /package/{contracts → sdk/contracts}/ZKQuery.sol +0 -0
- /package/{contracts → sdk/contracts}/ZKRollup.sol +0 -0
- /package/{contracts → sdk/contracts}/apps/SimpleJSON.sol +0 -0
- /package/{contracts → sdk/contracts}/apps/SimpleOPRU.sol +0 -0
- /package/{contracts → sdk/contracts}/apps/SimpleRU.sol +0 -0
- /package/{contracts → sdk/contracts}/apps/Token.sol +0 -0
- /package/{contracts → sdk/contracts}/apps/ZKArweave.sol +0 -0
- /package/{contracts → sdk/contracts}/apps/ZKBridge.sol +0 -0
- /package/{contracts → sdk/contracts}/apps/ZKNFT.sol +0 -0
- /package/{contracts → sdk/contracts}/verifiers/verifier_db.sol +0 -0
- /package/{contracts → sdk/contracts}/verifiers/verifier_ipfs.sol +0 -0
- /package/{contracts → sdk/contracts}/verifiers/verifier_json.sol +0 -0
- /package/{contracts → sdk/contracts}/verifiers/verifier_rollup.sol +0 -0
- /package/{db.js → sdk/db.js} +0 -0
- /package/{doc.js → sdk/doc.js} +0 -0
- /package/{encoder-v1_5.js → sdk/encoder-v1_5.js} +0 -0
- /package/{encoder.js → sdk/encoder.js} +0 -0
- /package/{index.js → sdk/index.js} +0 -0
- /package/{json.js → sdk/json.js} +0 -0
- /package/{nft.js → sdk/nft.js} +0 -0
- /package/{parse.js → sdk/parse.js} +0 -0
- /package/{uint.js → sdk/uint.js} +0 -0
@@ -0,0 +1,617 @@
|
|
1
|
+
{
|
2
|
+
"_format": "hh-sol-artifact-1",
|
3
|
+
"contractName": "ZKArweave",
|
4
|
+
"sourceName": "contracts/ZKArweave.sol",
|
5
|
+
"abi": [
|
6
|
+
{
|
7
|
+
"inputs": [
|
8
|
+
{
|
9
|
+
"internalType": "address",
|
10
|
+
"name": "_verifier",
|
11
|
+
"type": "address"
|
12
|
+
},
|
13
|
+
{
|
14
|
+
"internalType": "address",
|
15
|
+
"name": "_validator",
|
16
|
+
"type": "address"
|
17
|
+
}
|
18
|
+
],
|
19
|
+
"stateMutability": "nonpayable",
|
20
|
+
"type": "constructor"
|
21
|
+
},
|
22
|
+
{
|
23
|
+
"inputs": [
|
24
|
+
{
|
25
|
+
"internalType": "uint256",
|
26
|
+
"name": "x",
|
27
|
+
"type": "uint256"
|
28
|
+
}
|
29
|
+
],
|
30
|
+
"name": "digits",
|
31
|
+
"outputs": [
|
32
|
+
{
|
33
|
+
"internalType": "uint256",
|
34
|
+
"name": "",
|
35
|
+
"type": "uint256"
|
36
|
+
}
|
37
|
+
],
|
38
|
+
"stateMutability": "pure",
|
39
|
+
"type": "function"
|
40
|
+
},
|
41
|
+
{
|
42
|
+
"inputs": [
|
43
|
+
{
|
44
|
+
"internalType": "uint256[5]",
|
45
|
+
"name": "path",
|
46
|
+
"type": "uint256[5]"
|
47
|
+
},
|
48
|
+
{
|
49
|
+
"internalType": "uint256[100]",
|
50
|
+
"name": "raw",
|
51
|
+
"type": "uint256[100]"
|
52
|
+
}
|
53
|
+
],
|
54
|
+
"name": "getBool",
|
55
|
+
"outputs": [
|
56
|
+
{
|
57
|
+
"internalType": "bool",
|
58
|
+
"name": "",
|
59
|
+
"type": "bool"
|
60
|
+
}
|
61
|
+
],
|
62
|
+
"stateMutability": "pure",
|
63
|
+
"type": "function"
|
64
|
+
},
|
65
|
+
{
|
66
|
+
"inputs": [
|
67
|
+
{
|
68
|
+
"internalType": "bytes32",
|
69
|
+
"name": "_messageHash",
|
70
|
+
"type": "bytes32"
|
71
|
+
}
|
72
|
+
],
|
73
|
+
"name": "getEthSignedMessageHash",
|
74
|
+
"outputs": [
|
75
|
+
{
|
76
|
+
"internalType": "bytes32",
|
77
|
+
"name": "",
|
78
|
+
"type": "bytes32"
|
79
|
+
}
|
80
|
+
],
|
81
|
+
"stateMutability": "pure",
|
82
|
+
"type": "function"
|
83
|
+
},
|
84
|
+
{
|
85
|
+
"inputs": [
|
86
|
+
{
|
87
|
+
"internalType": "uint256[5]",
|
88
|
+
"name": "path",
|
89
|
+
"type": "uint256[5]"
|
90
|
+
},
|
91
|
+
{
|
92
|
+
"internalType": "uint256[100]",
|
93
|
+
"name": "raw",
|
94
|
+
"type": "uint256[100]"
|
95
|
+
}
|
96
|
+
],
|
97
|
+
"name": "getInt",
|
98
|
+
"outputs": [
|
99
|
+
{
|
100
|
+
"internalType": "int256",
|
101
|
+
"name": "",
|
102
|
+
"type": "int256"
|
103
|
+
}
|
104
|
+
],
|
105
|
+
"stateMutability": "pure",
|
106
|
+
"type": "function"
|
107
|
+
},
|
108
|
+
{
|
109
|
+
"inputs": [
|
110
|
+
{
|
111
|
+
"internalType": "string",
|
112
|
+
"name": "txid",
|
113
|
+
"type": "string"
|
114
|
+
},
|
115
|
+
{
|
116
|
+
"internalType": "uint256",
|
117
|
+
"name": "hash",
|
118
|
+
"type": "uint256"
|
119
|
+
}
|
120
|
+
],
|
121
|
+
"name": "getMessageHash",
|
122
|
+
"outputs": [
|
123
|
+
{
|
124
|
+
"internalType": "bytes32",
|
125
|
+
"name": "",
|
126
|
+
"type": "bytes32"
|
127
|
+
}
|
128
|
+
],
|
129
|
+
"stateMutability": "pure",
|
130
|
+
"type": "function"
|
131
|
+
},
|
132
|
+
{
|
133
|
+
"inputs": [
|
134
|
+
{
|
135
|
+
"internalType": "uint256[5]",
|
136
|
+
"name": "path",
|
137
|
+
"type": "uint256[5]"
|
138
|
+
},
|
139
|
+
{
|
140
|
+
"internalType": "uint256[100]",
|
141
|
+
"name": "raw",
|
142
|
+
"type": "uint256[100]"
|
143
|
+
}
|
144
|
+
],
|
145
|
+
"name": "getNull",
|
146
|
+
"outputs": [
|
147
|
+
{
|
148
|
+
"internalType": "bool",
|
149
|
+
"name": "",
|
150
|
+
"type": "bool"
|
151
|
+
}
|
152
|
+
],
|
153
|
+
"stateMutability": "pure",
|
154
|
+
"type": "function"
|
155
|
+
},
|
156
|
+
{
|
157
|
+
"inputs": [
|
158
|
+
{
|
159
|
+
"internalType": "uint256[5]",
|
160
|
+
"name": "path",
|
161
|
+
"type": "uint256[5]"
|
162
|
+
},
|
163
|
+
{
|
164
|
+
"internalType": "uint256[100]",
|
165
|
+
"name": "raw",
|
166
|
+
"type": "uint256[100]"
|
167
|
+
}
|
168
|
+
],
|
169
|
+
"name": "getString",
|
170
|
+
"outputs": [
|
171
|
+
{
|
172
|
+
"internalType": "string",
|
173
|
+
"name": "",
|
174
|
+
"type": "string"
|
175
|
+
}
|
176
|
+
],
|
177
|
+
"stateMutability": "pure",
|
178
|
+
"type": "function"
|
179
|
+
},
|
180
|
+
{
|
181
|
+
"inputs": [
|
182
|
+
{
|
183
|
+
"internalType": "uint256[5]",
|
184
|
+
"name": "path",
|
185
|
+
"type": "uint256[5]"
|
186
|
+
},
|
187
|
+
{
|
188
|
+
"internalType": "uint256[100]",
|
189
|
+
"name": "_json",
|
190
|
+
"type": "uint256[100]"
|
191
|
+
}
|
192
|
+
],
|
193
|
+
"name": "getVal",
|
194
|
+
"outputs": [
|
195
|
+
{
|
196
|
+
"internalType": "uint256[100]",
|
197
|
+
"name": "",
|
198
|
+
"type": "uint256[100]"
|
199
|
+
}
|
200
|
+
],
|
201
|
+
"stateMutability": "pure",
|
202
|
+
"type": "function"
|
203
|
+
},
|
204
|
+
{
|
205
|
+
"inputs": [
|
206
|
+
{
|
207
|
+
"internalType": "string",
|
208
|
+
"name": "txid",
|
209
|
+
"type": "string"
|
210
|
+
},
|
211
|
+
{
|
212
|
+
"internalType": "uint256[5]",
|
213
|
+
"name": "path",
|
214
|
+
"type": "uint256[5]"
|
215
|
+
},
|
216
|
+
{
|
217
|
+
"internalType": "uint256[20]",
|
218
|
+
"name": "zkp",
|
219
|
+
"type": "uint256[20]"
|
220
|
+
},
|
221
|
+
{
|
222
|
+
"internalType": "bytes",
|
223
|
+
"name": "sig",
|
224
|
+
"type": "bytes"
|
225
|
+
}
|
226
|
+
],
|
227
|
+
"name": "qBool",
|
228
|
+
"outputs": [
|
229
|
+
{
|
230
|
+
"internalType": "bool",
|
231
|
+
"name": "",
|
232
|
+
"type": "bool"
|
233
|
+
}
|
234
|
+
],
|
235
|
+
"stateMutability": "view",
|
236
|
+
"type": "function"
|
237
|
+
},
|
238
|
+
{
|
239
|
+
"inputs": [
|
240
|
+
{
|
241
|
+
"internalType": "string",
|
242
|
+
"name": "txid",
|
243
|
+
"type": "string"
|
244
|
+
},
|
245
|
+
{
|
246
|
+
"internalType": "uint256[5]",
|
247
|
+
"name": "path",
|
248
|
+
"type": "uint256[5]"
|
249
|
+
},
|
250
|
+
{
|
251
|
+
"internalType": "uint256[20]",
|
252
|
+
"name": "zkp",
|
253
|
+
"type": "uint256[20]"
|
254
|
+
},
|
255
|
+
{
|
256
|
+
"internalType": "bytes",
|
257
|
+
"name": "sig",
|
258
|
+
"type": "bytes"
|
259
|
+
}
|
260
|
+
],
|
261
|
+
"name": "qFloat",
|
262
|
+
"outputs": [
|
263
|
+
{
|
264
|
+
"internalType": "uint256[3]",
|
265
|
+
"name": "",
|
266
|
+
"type": "uint256[3]"
|
267
|
+
}
|
268
|
+
],
|
269
|
+
"stateMutability": "view",
|
270
|
+
"type": "function"
|
271
|
+
},
|
272
|
+
{
|
273
|
+
"inputs": [
|
274
|
+
{
|
275
|
+
"internalType": "string",
|
276
|
+
"name": "txid",
|
277
|
+
"type": "string"
|
278
|
+
},
|
279
|
+
{
|
280
|
+
"internalType": "uint256[5]",
|
281
|
+
"name": "path",
|
282
|
+
"type": "uint256[5]"
|
283
|
+
},
|
284
|
+
{
|
285
|
+
"internalType": "uint256[20]",
|
286
|
+
"name": "zkp",
|
287
|
+
"type": "uint256[20]"
|
288
|
+
},
|
289
|
+
{
|
290
|
+
"internalType": "bytes",
|
291
|
+
"name": "sig",
|
292
|
+
"type": "bytes"
|
293
|
+
}
|
294
|
+
],
|
295
|
+
"name": "qInt",
|
296
|
+
"outputs": [
|
297
|
+
{
|
298
|
+
"internalType": "int256",
|
299
|
+
"name": "",
|
300
|
+
"type": "int256"
|
301
|
+
}
|
302
|
+
],
|
303
|
+
"stateMutability": "view",
|
304
|
+
"type": "function"
|
305
|
+
},
|
306
|
+
{
|
307
|
+
"inputs": [
|
308
|
+
{
|
309
|
+
"internalType": "string",
|
310
|
+
"name": "txid",
|
311
|
+
"type": "string"
|
312
|
+
},
|
313
|
+
{
|
314
|
+
"internalType": "uint256[5]",
|
315
|
+
"name": "path",
|
316
|
+
"type": "uint256[5]"
|
317
|
+
},
|
318
|
+
{
|
319
|
+
"internalType": "uint256[20]",
|
320
|
+
"name": "zkp",
|
321
|
+
"type": "uint256[20]"
|
322
|
+
},
|
323
|
+
{
|
324
|
+
"internalType": "bytes",
|
325
|
+
"name": "sig",
|
326
|
+
"type": "bytes"
|
327
|
+
}
|
328
|
+
],
|
329
|
+
"name": "qNull",
|
330
|
+
"outputs": [
|
331
|
+
{
|
332
|
+
"internalType": "bool",
|
333
|
+
"name": "",
|
334
|
+
"type": "bool"
|
335
|
+
}
|
336
|
+
],
|
337
|
+
"stateMutability": "view",
|
338
|
+
"type": "function"
|
339
|
+
},
|
340
|
+
{
|
341
|
+
"inputs": [
|
342
|
+
{
|
343
|
+
"internalType": "string",
|
344
|
+
"name": "txid",
|
345
|
+
"type": "string"
|
346
|
+
},
|
347
|
+
{
|
348
|
+
"internalType": "uint256[5]",
|
349
|
+
"name": "path",
|
350
|
+
"type": "uint256[5]"
|
351
|
+
},
|
352
|
+
{
|
353
|
+
"internalType": "uint256[20]",
|
354
|
+
"name": "zkp",
|
355
|
+
"type": "uint256[20]"
|
356
|
+
},
|
357
|
+
{
|
358
|
+
"internalType": "bytes",
|
359
|
+
"name": "sig",
|
360
|
+
"type": "bytes"
|
361
|
+
}
|
362
|
+
],
|
363
|
+
"name": "qRaw",
|
364
|
+
"outputs": [
|
365
|
+
{
|
366
|
+
"internalType": "uint256[100]",
|
367
|
+
"name": "",
|
368
|
+
"type": "uint256[100]"
|
369
|
+
}
|
370
|
+
],
|
371
|
+
"stateMutability": "view",
|
372
|
+
"type": "function"
|
373
|
+
},
|
374
|
+
{
|
375
|
+
"inputs": [
|
376
|
+
{
|
377
|
+
"internalType": "string",
|
378
|
+
"name": "txid",
|
379
|
+
"type": "string"
|
380
|
+
},
|
381
|
+
{
|
382
|
+
"internalType": "uint256[5]",
|
383
|
+
"name": "path",
|
384
|
+
"type": "uint256[5]"
|
385
|
+
},
|
386
|
+
{
|
387
|
+
"internalType": "uint256[20]",
|
388
|
+
"name": "zkp",
|
389
|
+
"type": "uint256[20]"
|
390
|
+
},
|
391
|
+
{
|
392
|
+
"internalType": "bytes",
|
393
|
+
"name": "sig",
|
394
|
+
"type": "bytes"
|
395
|
+
}
|
396
|
+
],
|
397
|
+
"name": "qString",
|
398
|
+
"outputs": [
|
399
|
+
{
|
400
|
+
"internalType": "string",
|
401
|
+
"name": "",
|
402
|
+
"type": "string"
|
403
|
+
}
|
404
|
+
],
|
405
|
+
"stateMutability": "view",
|
406
|
+
"type": "function"
|
407
|
+
},
|
408
|
+
{
|
409
|
+
"inputs": [
|
410
|
+
{
|
411
|
+
"internalType": "bytes32",
|
412
|
+
"name": "_ethSignedMessageHash",
|
413
|
+
"type": "bytes32"
|
414
|
+
},
|
415
|
+
{
|
416
|
+
"internalType": "bytes",
|
417
|
+
"name": "_signature",
|
418
|
+
"type": "bytes"
|
419
|
+
}
|
420
|
+
],
|
421
|
+
"name": "recoverSigner",
|
422
|
+
"outputs": [
|
423
|
+
{
|
424
|
+
"internalType": "address",
|
425
|
+
"name": "",
|
426
|
+
"type": "address"
|
427
|
+
}
|
428
|
+
],
|
429
|
+
"stateMutability": "pure",
|
430
|
+
"type": "function"
|
431
|
+
},
|
432
|
+
{
|
433
|
+
"inputs": [
|
434
|
+
{
|
435
|
+
"internalType": "bytes",
|
436
|
+
"name": "sig",
|
437
|
+
"type": "bytes"
|
438
|
+
}
|
439
|
+
],
|
440
|
+
"name": "splitSignature",
|
441
|
+
"outputs": [
|
442
|
+
{
|
443
|
+
"internalType": "bytes32",
|
444
|
+
"name": "r",
|
445
|
+
"type": "bytes32"
|
446
|
+
},
|
447
|
+
{
|
448
|
+
"internalType": "bytes32",
|
449
|
+
"name": "s",
|
450
|
+
"type": "bytes32"
|
451
|
+
},
|
452
|
+
{
|
453
|
+
"internalType": "uint8",
|
454
|
+
"name": "v",
|
455
|
+
"type": "uint8"
|
456
|
+
}
|
457
|
+
],
|
458
|
+
"stateMutability": "pure",
|
459
|
+
"type": "function"
|
460
|
+
},
|
461
|
+
{
|
462
|
+
"inputs": [
|
463
|
+
{
|
464
|
+
"internalType": "uint256",
|
465
|
+
"name": "size_json",
|
466
|
+
"type": "uint256"
|
467
|
+
},
|
468
|
+
{
|
469
|
+
"internalType": "uint256[5]",
|
470
|
+
"name": "json",
|
471
|
+
"type": "uint256[5]"
|
472
|
+
}
|
473
|
+
],
|
474
|
+
"name": "toArr",
|
475
|
+
"outputs": [
|
476
|
+
{
|
477
|
+
"internalType": "uint256[100]",
|
478
|
+
"name": "",
|
479
|
+
"type": "uint256[100]"
|
480
|
+
}
|
481
|
+
],
|
482
|
+
"stateMutability": "pure",
|
483
|
+
"type": "function"
|
484
|
+
},
|
485
|
+
{
|
486
|
+
"inputs": [
|
487
|
+
{
|
488
|
+
"internalType": "uint8[]",
|
489
|
+
"name": "charCodes",
|
490
|
+
"type": "uint8[]"
|
491
|
+
}
|
492
|
+
],
|
493
|
+
"name": "toString",
|
494
|
+
"outputs": [
|
495
|
+
{
|
496
|
+
"internalType": "string",
|
497
|
+
"name": "",
|
498
|
+
"type": "string"
|
499
|
+
}
|
500
|
+
],
|
501
|
+
"stateMutability": "pure",
|
502
|
+
"type": "function"
|
503
|
+
},
|
504
|
+
{
|
505
|
+
"inputs": [
|
506
|
+
{
|
507
|
+
"internalType": "string",
|
508
|
+
"name": "txid",
|
509
|
+
"type": "string"
|
510
|
+
},
|
511
|
+
{
|
512
|
+
"internalType": "uint256[5]",
|
513
|
+
"name": "path",
|
514
|
+
"type": "uint256[5]"
|
515
|
+
},
|
516
|
+
{
|
517
|
+
"internalType": "uint256[20]",
|
518
|
+
"name": "zkp",
|
519
|
+
"type": "uint256[20]"
|
520
|
+
},
|
521
|
+
{
|
522
|
+
"internalType": "bytes",
|
523
|
+
"name": "sig",
|
524
|
+
"type": "bytes"
|
525
|
+
}
|
526
|
+
],
|
527
|
+
"name": "validateQuery",
|
528
|
+
"outputs": [
|
529
|
+
{
|
530
|
+
"internalType": "uint256[100]",
|
531
|
+
"name": "",
|
532
|
+
"type": "uint256[100]"
|
533
|
+
}
|
534
|
+
],
|
535
|
+
"stateMutability": "view",
|
536
|
+
"type": "function"
|
537
|
+
},
|
538
|
+
{
|
539
|
+
"inputs": [],
|
540
|
+
"name": "validator",
|
541
|
+
"outputs": [
|
542
|
+
{
|
543
|
+
"internalType": "address",
|
544
|
+
"name": "",
|
545
|
+
"type": "address"
|
546
|
+
}
|
547
|
+
],
|
548
|
+
"stateMutability": "view",
|
549
|
+
"type": "function"
|
550
|
+
},
|
551
|
+
{
|
552
|
+
"inputs": [],
|
553
|
+
"name": "verifier",
|
554
|
+
"outputs": [
|
555
|
+
{
|
556
|
+
"internalType": "address",
|
557
|
+
"name": "",
|
558
|
+
"type": "address"
|
559
|
+
}
|
560
|
+
],
|
561
|
+
"stateMutability": "view",
|
562
|
+
"type": "function"
|
563
|
+
},
|
564
|
+
{
|
565
|
+
"inputs": [
|
566
|
+
{
|
567
|
+
"internalType": "uint256[20]",
|
568
|
+
"name": "zkp",
|
569
|
+
"type": "uint256[20]"
|
570
|
+
}
|
571
|
+
],
|
572
|
+
"name": "verify",
|
573
|
+
"outputs": [
|
574
|
+
{
|
575
|
+
"internalType": "bool",
|
576
|
+
"name": "",
|
577
|
+
"type": "bool"
|
578
|
+
}
|
579
|
+
],
|
580
|
+
"stateMutability": "view",
|
581
|
+
"type": "function"
|
582
|
+
},
|
583
|
+
{
|
584
|
+
"inputs": [
|
585
|
+
{
|
586
|
+
"internalType": "string",
|
587
|
+
"name": "txid",
|
588
|
+
"type": "string"
|
589
|
+
},
|
590
|
+
{
|
591
|
+
"internalType": "uint256",
|
592
|
+
"name": "_message",
|
593
|
+
"type": "uint256"
|
594
|
+
},
|
595
|
+
{
|
596
|
+
"internalType": "bytes",
|
597
|
+
"name": "signature",
|
598
|
+
"type": "bytes"
|
599
|
+
}
|
600
|
+
],
|
601
|
+
"name": "verifyMessage",
|
602
|
+
"outputs": [
|
603
|
+
{
|
604
|
+
"internalType": "bool",
|
605
|
+
"name": "",
|
606
|
+
"type": "bool"
|
607
|
+
}
|
608
|
+
],
|
609
|
+
"stateMutability": "view",
|
610
|
+
"type": "function"
|
611
|
+
}
|
612
|
+
],
|
613
|
+
"bytecode": "0x60806040523480156200001157600080fd5b50604051620038713803806200387183398181016040528101906200003791906200012a565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000171565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000f282620000c5565b9050919050565b6200010481620000e5565b81146200011057600080fd5b50565b6000815190506200012481620000f9565b92915050565b60008060408385031215620001445762000143620000c0565b5b6000620001548582860162000113565b9250506020620001678582860162000113565b9150509250929050565b6136f080620001816000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c806395a4b6f0116100c3578063d4aa69161161007c578063d4aa691614610460578063e401c8c714610490578063e4e004d3146104c0578063e5e6483a146104f0578063f6dd6f3914610520578063fa540801146105505761014d565b806395a4b6f01461033e57806397aba7f91461036e578063a01176961461039e578063a7bb5803146103ce578063b6c11f5314610400578063c7ddd56f146104305761014d565b80633c671755116101155780633c6717551461021e5780633e7993291461024e57806377af7dd91461027e5780637b23c90d146102ae5780637b6864dc146102de578063905aac3f1461030e5761014d565b8063072f10f21461015257806319d1390f146101825780632b7ac3f3146101b25780633048d44b146101d05780633a5381b514610200575b600080fd5b61016c600480360381019061016791906120b4565b610580565b6040516101799190612110565b60405180910390f35b61019c600480360381019061019791906120b4565b6105f5565b6040516101a991906121aa565b60405180910390f35b6101ba610760565b6040516101c7919061220d565b60405180910390f35b6101ea60048036038101906101e59190612324565b610784565b6040516101f791906121aa565b60405180910390f35b610208610861565b604051610215919061220d565b60405180910390f35b610238600480360381019061023391906120b4565b610887565b6040516102459190612418565b60405180910390f35b610268600480360381019061026391906120b4565b610d4c565b6040516102759190612110565b60405180910390f35b61029860048036038101906102939190612456565b610de9565b6040516102a59190612110565b60405180910390f35b6102c860048036038101906102c39190612484565b61110b565b6040516102d591906124c0565b60405180910390f35b6102f860048036038101906102f391906120b4565b611147565b60405161030591906124f4565b60405180910390f35b61032860048036038101906103239190612665565b61124a565b6040516103359190612418565b60405180910390f35b61035860048036038101906103539190612665565b6112d3565b60405161036591906124f4565b60405180910390f35b6103886004803603810190610383919061273c565b6113e4565b604051610395919061220d565b60405180910390f35b6103b860048036038101906103b39190612798565b611453565b6040516103c59190612110565b60405180910390f35b6103e860048036038101906103e39190612823565b6114e3565b6040516103f79392919061288a565b60405180910390f35b61041a60048036038101906104159190612665565b61154b565b60405161042791906121aa565b60405180910390f35b61044a60048036038101906104459190612665565b6116c4565b6040516104579190612110565b60405180910390f35b61047a600480360381019061047591906128c1565b61176f565b604051610487919061291d565b60405180910390f35b6104aa60048036038101906104a59190612665565b6117a2565b6040516104b79190612418565b60405180910390f35b6104da60048036038101906104d59190612938565b61194b565b6040516104e79190612418565b60405180910390f35b61050a60048036038101906105059190612665565b611b8e565b6040516105179190612110565b60405180910390f35b61053a60048036038101906105359190612665565b611c11565b60405161054791906129fc565b60405180910390f35b61056a60048036038101906105659190612a17565b611d69565b604051610577919061291d565b60405180910390f35b60008061058d8484610887565b90506000816000606481106105a5576105a4612a44565b5b6020020151146105ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e190612abf565b60405180910390fd5b600191505092915050565b606060006106038484610887565b905060038160006064811061061b5761061a612a44565b5b602002015114610660576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065790612b2b565b60405180910390fd5b60008160016064811061067657610675612a44565b5b602002015167ffffffffffffffff81111561069457610693611e9c565b5b6040519080825280602002602001820160405280156106c25781602001602082028036833780820191505090505b50905060005b826001606481106106dc576106db612a44565b5b602002015181101561074657826002826106f69190612b7a565b6064811061070757610706612a44565b5b602002015182828151811061071f5761071e612a44565b5b602002602001019060ff16908160ff1681525050808061073e90612bae565b9150506106c8565b50600061075282610784565b905080935050505092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606000825167ffffffffffffffff8111156107a3576107a2611e9c565b5b6040519080825280601f01601f1916602001820160405280156107d55781602001600182028036833780820191505090505b50905060005b8351811015610857578381815181106107f7576107f6612a44565b5b602002602001015160f81b82828151811061081557610814612a44565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061084f90612bae565b9150506107db565b5080915050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61088f611d99565b6004826000606481106108a5576108a4612a44565b5b6020020151146108ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190612c42565b60405180910390fd5b6000600190506108f8611d99565b600061090560058761194b565b90505b6064831015610d4057610919611d99565b600086856064811061092e5761092d612a44565b5b60200201519050848061094090612bae565b955050808260006064811061095857610957612a44565b5b60200201818152505060006001905060005b82811015610a8757600089886064811061098757610986612a44565b5b60200201519050808584606481106109a2576109a1612a44565b5b60200201818152505082806109b690612bae565b93505087806109c490612bae565b985050600081905060008203610a035760008b8a606481106109e9576109e8612a44565b5b6020020151146109fa5760016109fd565b60025b60ff1690505b60005b81811015610a71578b8a60648110610a2157610a20612a44565b5b6020020151878660648110610a3957610a38612a44565b5b6020020181815250508480610a4d90612bae565b9550508980610a5b90612bae565b9a50508080610a6990612bae565b915050610a06565b5050508080610a7f90612bae565b91505061096a565b506000888760648110610a9d57610a9c612a44565b5b602002015190508680610aaf90612bae565b975050610aba611d99565b8181600060648110610acf57610ace612a44565b5b60200201818152505060018203610b2857898860648110610af357610af2612a44565b5b602002015181600160648110610b0c57610b0b612a44565b5b6020020181815250508780610b2090612bae565b985050610cbf565b60028203610bfe57898860648110610b4357610b42612a44565b5b602002015181600160648110610b5c57610b5b612a44565b5b6020020181815250508780610b7090612bae565b985050898860648110610b8657610b85612a44565b5b602002015181600260648110610b9f57610b9e612a44565b5b6020020181815250508780610bb390612bae565b985050898860648110610bc957610bc8612a44565b5b602002015181600360648110610be257610be1612a44565b5b6020020181815250508780610bf690612bae565b985050610cbe565b60038203610cbd5760008a8960648110610c1b57610c1a612a44565b5b602002015190508082600160648110610c3757610c36612a44565b5b6020020181815250508880610c4b90612bae565b99505060005b81811015610cba578b8a60648110610c6c57610c6b612a44565b5b602002015183600283610c7f9190612b7a565b60648110610c9057610c8f612a44565b5b6020020181815250508980610ca490612bae565b9a50508080610cb290612bae565b915050610c51565b50505b5b5b60006001905060005b6064811015610d1e57878160648110610ce457610ce3612a44565b5b6020020151878260648110610cfc57610cfb612a44565b5b602002015114610d0b57600091505b8080610d1690612bae565b915050610cc8565b5060018103610d3557819750505050505050610d40565b505050505050610908565b81935050505092915050565b600080610d598484610887565b9050600181600060648110610d7157610d70612a44565b5b602002015114610db6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dad90612cae565b60405180910390fd5b600181600160648110610dcc57610dcb612a44565b5b602002015114610ddd576000610de0565b60015b91505092915050565b6000610df3611dbc565b610dfb611dde565b610e03611dbc565b610e0b611e0b565b60005b6002811015610e5e57868160148110610e2a57610e29612a44565b5b6020020135858260028110610e4257610e41612a44565b5b6020020181815250508080610e5690612bae565b915050610e0e565b506000600290505b6004811015610eda57868160148110610e8257610e81612a44565b5b602002013584600060028110610e9b57610e9a612a44565b5b6020020151600283610ead9190612cce565b60028110610ebe57610ebd612a44565b5b6020020181815250508080610ed290612bae565b915050610e66565b506000600490505b6006811015610f5657868160148110610efe57610efd612a44565b5b602002013584600160028110610f1757610f16612a44565b5b6020020151600483610f299190612cce565b60028110610f3a57610f39612a44565b5b6020020181815250508080610f4e90612bae565b915050610ee2565b506000600690505b6008811015610fba57868160148110610f7a57610f79612a44565b5b602002013583600683610f8d9190612cce565b60028110610f9e57610f9d612a44565b5b6020020181815250508080610fb290612bae565b915050610f5e565b506000600890505b601481101561101e57868160148110610fde57610fdd612a44565b5b602002013582600883610ff19190612cce565b600c811061100257611001612a44565b5b602002018181525050808061101690612bae565b915050610fc2565b5060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638cbac0fa858585856040518563ffffffff1660e01b815260040161107e9493929190612f08565b602060405180830381865afa15801561109b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bf9190612f7b565b6110fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f590612ff4565b60405180910390fd5b6001945050505050919050565b600080600090505b600083111561113e57600a836111299190613043565b9250808061113690612bae565b915050611113565b80915050919050565b6000806111548484610887565b905060028160006064811061116c5761116b612a44565b5b6020020151148015611196575060008160026064811061118f5761118e612a44565b5b6020020151145b6111d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cc906130c0565b60405180910390fd5b6001816001606481106111eb576111ea612a44565b5b60200201511461121b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61121e565b60015b8160036064811061123257611231612a44565b5b602002015161124191906130e0565b91505092915050565b611252611d99565b6000611260868686866117a2565b905060048160006064811061127857611277612a44565b5b6020020151146112bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b4906131a4565b60405180910390fd5b6112c684610de9565b5080915050949350505050565b6000806112e2868686866117a2565b90506002816000606481106112fa576112f9612a44565b5b6020020151148015611324575060008160026064811061131d5761131c612a44565b5b6020020151145b611363576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135a906130c0565b60405180910390fd5b61136c84610de9565b5060018160016064811061138357611382612a44565b5b6020020151146113b3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6113b6565b60015b816003606481106113ca576113c9612a44565b5b60200201516113d991906130e0565b915050949350505050565b6000806000806113f3856114e3565b9250925092506001868285856040516000815260200160405260405161141c94939291906131c4565b6020604051602081039080840390855afa15801561143e573d6000803e3d6000fd5b50505060206040510351935050505092915050565b600080611460858561176f565b9050600061146d82611d69565b9050600061147b82866113e4565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114c083876113e4565b73ffffffffffffffffffffffffffffffffffffffff161493505050509392505050565b6000806000604184511461152c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152390613255565b60405180910390fd5b6020840151925060408401519150606084015160001a90509193909250565b6060600061155b868686866117a2565b905060038160006064811061157357611572612a44565b5b6020020151146115b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115af90612b2b565b60405180910390fd5b6115c184610de9565b506000816001606481106115d8576115d7612a44565b5b602002015167ffffffffffffffff8111156115f6576115f5611e9c565b5b6040519080825280602002602001820160405280156116245781602001602082028036833780820191505090505b50905060005b8260016064811061163e5761163d612a44565b5b60200201518110156116a857826002826116589190612b7a565b6064811061166957611668612a44565b5b602002015182828151811061168157611680612a44565b5b602002602001019060ff16908160ff168152505080806116a090612bae565b91505061162a565b5060006116b482610784565b9050809350505050949350505050565b6000806116d3868686866117a2565b90506001816000606481106116eb576116ea612a44565b5b602002015114611730576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172790612cae565b60405180910390fd5b61173984610de9565b506001816001606481106117505761174f612a44565b5b602002015114611761576000611764565b60015b915050949350505050565b600082826040516020016117849291906132d2565b60405160208183030381529060405280519060200120905092915050565b6117aa611d99565b6117cd85846009601481106117c2576117c1612a44565b5b602002013584611453565b506001836008601481106117e4576117e3612a44565b5b602002013514611829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182090613346565b60405180910390fd5b6000600a90505b600f8110156118c85783816014811061184c5761184b612a44565b5b602002013585600a8361185f9190612cce565b600581106118705761186f612a44565b5b6020020151146118b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ac906133b2565b60405180910390fd5b80806118c090612bae565b915050611830565b506118d1611e2e565b6000600f90505b6014811015611934578481601481106118f4576118f3612a44565b5b602002013582600f836119079190612cce565b6005811061191857611917612a44565b5b602002018181525050808061192c90612bae565b9150506118d8565b5061194060058261194b565b915050949350505050565b611953611d99565b61195b611d99565b60008060005b86811015611b8157600086826005811061197e5761197d612a44565b5b60200201511115611b6e5760006119ab8783600581106119a1576119a0612a44565b5b602002015161110b565b905060008783600581106119c2576119c1612a44565b5b6020020151905060008060008060005b6000871115611b665760006001886119ea9190612cce565b600a6119f69190613505565b87611a019190613043565b9050600086148015611a135750600081115b15611a3e576001955060098103611a31576008935060009150611a35565b8093505b60009450611b21565b60018603611b205760018585611a549190612cce565b611a5e9190612cce565b600a611a6a9190613505565b81611a759190613550565b83611a809190612b7a565b92508480611a8d90612bae565b955050838503611b1f5783600a611aa49190613505565b8a611aaf9190613550565b995060018203611acc57828a611ac59190612b7a565b9950611b0a565b8983611ad89190612b7a565b925060009950828c8c60648110611af257611af1612a44565b5b6020020181815250508a80611b0690612bae565b9b50505b60009450600095506000935060009250600091505b5b5b80600189611b2f9190612cce565b600a611b3b9190613505565b611b459190613550565b87611b509190612cce565b96508780611b5d90613592565b985050506119d2565b505050505050505b8080611b7990612bae565b915050611961565b5082935050505092915050565b600080611b9d868686866117a2565b9050600081600060648110611bb557611bb4612a44565b5b602002015114611bfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf190612abf565b60405180910390fd5b611c0384610de9565b506001915050949350505050565b611c19611e50565b6000611c27868686866117a2565b9050600281600060648110611c3f57611c3e612a44565b5b6020020151148015611c695750600181600260648110611c6257611c61612a44565b5b6020020151145b611ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9f90613607565b60405180910390fd5b611cb184610de9565b50611cba611e50565b81600160648110611cce57611ccd612a44565b5b602002015181600060038110611ce757611ce6612a44565b5b60200201818152505081600260648110611d0457611d03612a44565b5b602002015181600160038110611d1d57611d1c612a44565b5b60200201818152505081600360648110611d3a57611d39612a44565b5b602002015181600260038110611d5357611d52612a44565b5b6020020181815250508092505050949350505050565b600081604051602001611d7c9190613694565b604051602081830303815290604052805190602001209050919050565b60405180610c800160405280606490602082028036833780820191505090505090565b6040518060400160405280600290602082028036833780820191505090505090565b60405180604001604052806002905b611df5611dbc565b815260200190600190039081611ded5790505090565b604051806101800160405280600c90602082028036833780820191505090505090565b6040518060a00160405280600590602082028036833780820191505090505090565b6040518060600160405280600390602082028036833780820191505090505090565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611ed482611e8b565b810181811067ffffffffffffffff82111715611ef357611ef2611e9c565b5b80604052505050565b6000611f06611e72565b9050611f128282611ecb565b919050565b600067ffffffffffffffff821115611f3257611f31611e9c565b5b602082029050919050565b600080fd5b6000819050919050565b611f5581611f42565b8114611f6057600080fd5b50565b600081359050611f7281611f4c565b92915050565b6000611f8b611f8684611f17565b611efc565b90508060208402830185811115611fa557611fa4611f3d565b5b835b81811015611fce5780611fba8882611f63565b845260208401935050602081019050611fa7565b5050509392505050565b600082601f830112611fed57611fec611e86565b5b6005611ffa848285611f78565b91505092915050565b600067ffffffffffffffff82111561201e5761201d611e9c565b5b602082029050919050565b600061203c61203784612003565b611efc565b9050806020840283018581111561205657612055611f3d565b5b835b8181101561207f578061206b8882611f63565b845260208401935050602081019050612058565b5050509392505050565b600082601f83011261209e5761209d611e86565b5b60646120ab848285612029565b91505092915050565b600080610d2083850312156120cc576120cb611e7c565b5b60006120da85828601611fd8565b92505060a06120eb85828601612089565b9150509250929050565b60008115159050919050565b61210a816120f5565b82525050565b60006020820190506121256000830184612101565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561216557808201518184015260208101905061214a565b60008484015250505050565b600061217c8261212b565b6121868185612136565b9350612196818560208601612147565b61219f81611e8b565b840191505092915050565b600060208201905081810360008301526121c48184612171565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121f7826121cc565b9050919050565b612207816121ec565b82525050565b600060208201905061222260008301846121fe565b92915050565b600067ffffffffffffffff82111561224357612242611e9c565b5b602082029050602081019050919050565b600060ff82169050919050565b61226a81612254565b811461227557600080fd5b50565b60008135905061228781612261565b92915050565b60006122a061229b84612228565b611efc565b905080838252602082019050602084028301858111156122c3576122c2611f3d565b5b835b818110156122ec57806122d88882612278565b8452602084019350506020810190506122c5565b5050509392505050565b600082601f83011261230b5761230a611e86565b5b813561231b84826020860161228d565b91505092915050565b60006020828403121561233a57612339611e7c565b5b600082013567ffffffffffffffff81111561235857612357611e81565b5b612364848285016122f6565b91505092915050565b600060649050919050565b600081905092915050565b6000819050919050565b61239681611f42565b82525050565b60006123a8838361238d565b60208301905092915050565b6000602082019050919050565b6123ca8161236d565b6123d48184612378565b92506123df82612383565b8060005b838110156124105781516123f7878261239c565b9650612402836123b4565b9250506001810190506123e3565b505050505050565b6000610c808201905061242e60008301846123c1565b92915050565b6000819050826020601402820111156124505761244f611f3d565b5b92915050565b6000610280828403121561246d5761246c611e7c565b5b600061247b84828501612434565b91505092915050565b60006020828403121561249a57612499611e7c565b5b60006124a884828501611f63565b91505092915050565b6124ba81611f42565b82525050565b60006020820190506124d560008301846124b1565b92915050565b6000819050919050565b6124ee816124db565b82525050565b600060208201905061250960008301846124e5565b92915050565b600080fd5b600067ffffffffffffffff82111561252f5761252e611e9c565b5b61253882611e8b565b9050602081019050919050565b82818337600083830152505050565b600061256761256284612514565b611efc565b9050828152602081018484840111156125835761258261250f565b5b61258e848285612545565b509392505050565b600082601f8301126125ab576125aa611e86565b5b81356125bb848260208601612554565b91505092915050565b600067ffffffffffffffff8211156125df576125de611e9c565b5b6125e882611e8b565b9050602081019050919050565b6000612608612603846125c4565b611efc565b9050828152602081018484840111156126245761262361250f565b5b61262f848285612545565b509392505050565b600082601f83011261264c5761264b611e86565b5b813561265c8482602086016125f5565b91505092915050565b60008060008061036085870312156126805761267f611e7c565b5b600085013567ffffffffffffffff81111561269e5761269d611e81565b5b6126aa87828801612596565b94505060206126bb87828801611fd8565b93505060c06126cc87828801612434565b92505061034085013567ffffffffffffffff8111156126ee576126ed611e81565b5b6126fa87828801612637565b91505092959194509250565b6000819050919050565b61271981612706565b811461272457600080fd5b50565b60008135905061273681612710565b92915050565b6000806040838503121561275357612752611e7c565b5b600061276185828601612727565b925050602083013567ffffffffffffffff81111561278257612781611e81565b5b61278e85828601612637565b9150509250929050565b6000806000606084860312156127b1576127b0611e7c565b5b600084013567ffffffffffffffff8111156127cf576127ce611e81565b5b6127db86828701612596565b93505060206127ec86828701611f63565b925050604084013567ffffffffffffffff81111561280d5761280c611e81565b5b61281986828701612637565b9150509250925092565b60006020828403121561283957612838611e7c565b5b600082013567ffffffffffffffff81111561285757612856611e81565b5b61286384828501612637565b91505092915050565b61287581612706565b82525050565b61288481612254565b82525050565b600060608201905061289f600083018661286c565b6128ac602083018561286c565b6128b9604083018461287b565b949350505050565b600080604083850312156128d8576128d7611e7c565b5b600083013567ffffffffffffffff8111156128f6576128f5611e81565b5b61290285828601612596565b925050602061291385828601611f63565b9150509250929050565b6000602082019050612932600083018461286c565b92915050565b60008060c0838503121561294f5761294e611e7c565b5b600061295d85828601611f63565b925050602061296e85828601611fd8565b9150509250929050565b600060039050919050565b600081905092915050565b6000819050919050565b6000602082019050919050565b6129ae81612978565b6129b88184612983565b92506129c38261298e565b8060005b838110156129f45781516129db878261239c565b96506129e683612998565b9250506001810190506129c7565b505050505050565b6000606082019050612a1160008301846129a5565b92915050565b600060208284031215612a2d57612a2c611e7c565b5b6000612a3b84828501612727565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f6e6f74206e756c6c000000000000000000000000000000000000000000000000600082015250565b6000612aa9600883612136565b9150612ab482612a73565b602082019050919050565b60006020820190508181036000830152612ad881612a9c565b9050919050565b7f6e6f7420737472696e6700000000000000000000000000000000000000000000600082015250565b6000612b15600a83612136565b9150612b2082612adf565b602082019050919050565b60006020820190508181036000830152612b4481612b08565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b8582611f42565b9150612b9083611f42565b9250828201905080821115612ba857612ba7612b4b565b5b92915050565b6000612bb982611f42565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612beb57612bea612b4b565b5b600182019050919050565b7f6e6f74207261772076616c756500000000000000000000000000000000000000600082015250565b6000612c2c600d83612136565b9150612c3782612bf6565b602082019050919050565b60006020820190508181036000830152612c5b81612c1f565b9050919050565b7f6e6f7420626f6f6c000000000000000000000000000000000000000000000000600082015250565b6000612c98600883612136565b9150612ca382612c62565b602082019050919050565b60006020820190508181036000830152612cc781612c8b565b9050919050565b6000612cd982611f42565b9150612ce483611f42565b9250828203905081811115612cfc57612cfb612b4b565b5b92915050565b600060029050919050565b600081905092915050565b6000819050919050565b6000602082019050919050565b612d3881612d02565b612d428184612d0d565b9250612d4d82612d18565b8060005b83811015612d7e578151612d65878261239c565b9650612d7083612d22565b925050600181019050612d51565b505050505050565b600060029050919050565b600081905092915050565b6000819050919050565b600081905092915050565b612dba81612d02565b612dc48184612da6565b9250612dcf82612d18565b8060005b83811015612e00578151612de7878261239c565b9650612df283612d22565b925050600181019050612dd3565b505050505050565b6000612e148383612db1565b60408301905092915050565b6000602082019050919050565b612e3681612d86565b612e408184612d91565b9250612e4b82612d9c565b8060005b83811015612e7c578151612e638782612e08565b9650612e6e83612e20565b925050600181019050612e4f565b505050505050565b6000600c9050919050565b600081905092915050565b6000819050919050565b6000602082019050919050565b612eba81612e84565b612ec48184612e8f565b9250612ecf82612e9a565b8060005b83811015612f00578151612ee7878261239c565b9650612ef283612ea4565b925050600181019050612ed3565b505050505050565b600061028082019050612f1e6000830187612d2f565b612f2b6040830186612e2d565b612f3860c0830185612d2f565b612f46610100830184612eb1565b95945050505050565b612f58816120f5565b8114612f6357600080fd5b50565b600081519050612f7581612f4f565b92915050565b600060208284031215612f9157612f90611e7c565b5b6000612f9f84828501612f66565b91505092915050565b7f696e76616c69642070726f6f6600000000000000000000000000000000000000600082015250565b6000612fde600d83612136565b9150612fe982612fa8565b602082019050919050565b6000602082019050818103600083015261300d81612fd1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061304e82611f42565b915061305983611f42565b92508261306957613068613014565b5b828204905092915050565b7f6e6f7420696e7400000000000000000000000000000000000000000000000000600082015250565b60006130aa600783612136565b91506130b582613074565b602082019050919050565b600060208201905081810360008301526130d98161309d565b9050919050565b60006130eb826124db565b91506130f6836124db565b9250828202613104816124db565b91507f8000000000000000000000000000000000000000000000000000000000000000841460008412161561313c5761313b612b4b565b5b828205841483151761315157613150612b4b565b5b5092915050565b7f6e6f74206f626a656374206f7220617272617900000000000000000000000000600082015250565b600061318e601383612136565b915061319982613158565b602082019050919050565b600060208201905081810360008301526131bd81613181565b9050919050565b60006080820190506131d9600083018761286c565b6131e6602083018661287b565b6131f3604083018561286c565b613200606083018461286c565b95945050505050565b7f696e76616c6964207369676e6174757265206c656e6774680000000000000000600082015250565b600061323f601883612136565b915061324a82613209565b602082019050919050565b6000602082019050818103600083015261326e81613232565b9050919050565b600081905092915050565b600061328b8261212b565b6132958185613275565b93506132a5818560208601612147565b80840191505092915050565b6000819050919050565b6132cc6132c782611f42565b6132b1565b82525050565b60006132de8285613280565b91506132ea82846132bb565b6020820191508190509392505050565b7f76616c756520646f65736e277420657869737400000000000000000000000000600082015250565b6000613330601383612136565b915061333b826132fa565b602082019050919050565b6000602082019050818103600083015261335f81613323565b9050919050565b7f77726f6e67207061746800000000000000000000000000000000000000000000600082015250565b600061339c600a83612136565b91506133a782613366565b602082019050919050565b600060208201905081810360008301526133cb8161338f565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156134295780860481111561340557613404612b4b565b5b60018516156134145780820291505b8081029050613422856133d2565b94506133e9565b94509492505050565b60008261344257600190506134fe565b8161345057600090506134fe565b816001811461346657600281146134705761349f565b60019150506134fe565b60ff84111561348257613481612b4b565b5b8360020a91508482111561349957613498612b4b565b5b506134fe565b5060208310610133831016604e8410600b84101617156134d45782820a9050838111156134cf576134ce612b4b565b5b6134fe565b6134e184848460016133df565b925090508184048111156134f8576134f7612b4b565b5b81810290505b9392505050565b600061351082611f42565b915061351b83611f42565b92506135487fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613432565b905092915050565b600061355b82611f42565b915061356683611f42565b925082820261357481611f42565b9150828204841483151761358b5761358a612b4b565b5b5092915050565b600061359d82611f42565b9150600082036135b0576135af612b4b565b5b600182039050919050565b7f6e6f7420666c6f61740000000000000000000000000000000000000000000000600082015250565b60006135f1600983612136565b91506135fc826135bb565b602082019050919050565b60006020820190508181036000830152613620816135e4565b9050919050565b7f19457468657265756d205369676e6564204d6573736167653a0a333200000000600082015250565b600061365d601c83613275565b915061366882613627565b601c82019050919050565b6000819050919050565b61368e61368982612706565b613673565b82525050565b600061369f82613650565b91506136ab828461367d565b6020820191508190509291505056fea264697066735822122084a0583d858ee5faa1e0efd5e0a74c08d214891755c5cf2ec8b598d8ab0d835964736f6c63430008120033",
|
614
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061014d5760003560e01c806395a4b6f0116100c3578063d4aa69161161007c578063d4aa691614610460578063e401c8c714610490578063e4e004d3146104c0578063e5e6483a146104f0578063f6dd6f3914610520578063fa540801146105505761014d565b806395a4b6f01461033e57806397aba7f91461036e578063a01176961461039e578063a7bb5803146103ce578063b6c11f5314610400578063c7ddd56f146104305761014d565b80633c671755116101155780633c6717551461021e5780633e7993291461024e57806377af7dd91461027e5780637b23c90d146102ae5780637b6864dc146102de578063905aac3f1461030e5761014d565b8063072f10f21461015257806319d1390f146101825780632b7ac3f3146101b25780633048d44b146101d05780633a5381b514610200575b600080fd5b61016c600480360381019061016791906120b4565b610580565b6040516101799190612110565b60405180910390f35b61019c600480360381019061019791906120b4565b6105f5565b6040516101a991906121aa565b60405180910390f35b6101ba610760565b6040516101c7919061220d565b60405180910390f35b6101ea60048036038101906101e59190612324565b610784565b6040516101f791906121aa565b60405180910390f35b610208610861565b604051610215919061220d565b60405180910390f35b610238600480360381019061023391906120b4565b610887565b6040516102459190612418565b60405180910390f35b610268600480360381019061026391906120b4565b610d4c565b6040516102759190612110565b60405180910390f35b61029860048036038101906102939190612456565b610de9565b6040516102a59190612110565b60405180910390f35b6102c860048036038101906102c39190612484565b61110b565b6040516102d591906124c0565b60405180910390f35b6102f860048036038101906102f391906120b4565b611147565b60405161030591906124f4565b60405180910390f35b61032860048036038101906103239190612665565b61124a565b6040516103359190612418565b60405180910390f35b61035860048036038101906103539190612665565b6112d3565b60405161036591906124f4565b60405180910390f35b6103886004803603810190610383919061273c565b6113e4565b604051610395919061220d565b60405180910390f35b6103b860048036038101906103b39190612798565b611453565b6040516103c59190612110565b60405180910390f35b6103e860048036038101906103e39190612823565b6114e3565b6040516103f79392919061288a565b60405180910390f35b61041a60048036038101906104159190612665565b61154b565b60405161042791906121aa565b60405180910390f35b61044a60048036038101906104459190612665565b6116c4565b6040516104579190612110565b60405180910390f35b61047a600480360381019061047591906128c1565b61176f565b604051610487919061291d565b60405180910390f35b6104aa60048036038101906104a59190612665565b6117a2565b6040516104b79190612418565b60405180910390f35b6104da60048036038101906104d59190612938565b61194b565b6040516104e79190612418565b60405180910390f35b61050a60048036038101906105059190612665565b611b8e565b6040516105179190612110565b60405180910390f35b61053a60048036038101906105359190612665565b611c11565b60405161054791906129fc565b60405180910390f35b61056a60048036038101906105659190612a17565b611d69565b604051610577919061291d565b60405180910390f35b60008061058d8484610887565b90506000816000606481106105a5576105a4612a44565b5b6020020151146105ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e190612abf565b60405180910390fd5b600191505092915050565b606060006106038484610887565b905060038160006064811061061b5761061a612a44565b5b602002015114610660576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065790612b2b565b60405180910390fd5b60008160016064811061067657610675612a44565b5b602002015167ffffffffffffffff81111561069457610693611e9c565b5b6040519080825280602002602001820160405280156106c25781602001602082028036833780820191505090505b50905060005b826001606481106106dc576106db612a44565b5b602002015181101561074657826002826106f69190612b7a565b6064811061070757610706612a44565b5b602002015182828151811061071f5761071e612a44565b5b602002602001019060ff16908160ff1681525050808061073e90612bae565b9150506106c8565b50600061075282610784565b905080935050505092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606000825167ffffffffffffffff8111156107a3576107a2611e9c565b5b6040519080825280601f01601f1916602001820160405280156107d55781602001600182028036833780820191505090505b50905060005b8351811015610857578381815181106107f7576107f6612a44565b5b602002602001015160f81b82828151811061081557610814612a44565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350808061084f90612bae565b9150506107db565b5080915050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61088f611d99565b6004826000606481106108a5576108a4612a44565b5b6020020151146108ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190612c42565b60405180910390fd5b6000600190506108f8611d99565b600061090560058761194b565b90505b6064831015610d4057610919611d99565b600086856064811061092e5761092d612a44565b5b60200201519050848061094090612bae565b955050808260006064811061095857610957612a44565b5b60200201818152505060006001905060005b82811015610a8757600089886064811061098757610986612a44565b5b60200201519050808584606481106109a2576109a1612a44565b5b60200201818152505082806109b690612bae565b93505087806109c490612bae565b985050600081905060008203610a035760008b8a606481106109e9576109e8612a44565b5b6020020151146109fa5760016109fd565b60025b60ff1690505b60005b81811015610a71578b8a60648110610a2157610a20612a44565b5b6020020151878660648110610a3957610a38612a44565b5b6020020181815250508480610a4d90612bae565b9550508980610a5b90612bae565b9a50508080610a6990612bae565b915050610a06565b5050508080610a7f90612bae565b91505061096a565b506000888760648110610a9d57610a9c612a44565b5b602002015190508680610aaf90612bae565b975050610aba611d99565b8181600060648110610acf57610ace612a44565b5b60200201818152505060018203610b2857898860648110610af357610af2612a44565b5b602002015181600160648110610b0c57610b0b612a44565b5b6020020181815250508780610b2090612bae565b985050610cbf565b60028203610bfe57898860648110610b4357610b42612a44565b5b602002015181600160648110610b5c57610b5b612a44565b5b6020020181815250508780610b7090612bae565b985050898860648110610b8657610b85612a44565b5b602002015181600260648110610b9f57610b9e612a44565b5b6020020181815250508780610bb390612bae565b985050898860648110610bc957610bc8612a44565b5b602002015181600360648110610be257610be1612a44565b5b6020020181815250508780610bf690612bae565b985050610cbe565b60038203610cbd5760008a8960648110610c1b57610c1a612a44565b5b602002015190508082600160648110610c3757610c36612a44565b5b6020020181815250508880610c4b90612bae565b99505060005b81811015610cba578b8a60648110610c6c57610c6b612a44565b5b602002015183600283610c7f9190612b7a565b60648110610c9057610c8f612a44565b5b6020020181815250508980610ca490612bae565b9a50508080610cb290612bae565b915050610c51565b50505b5b5b60006001905060005b6064811015610d1e57878160648110610ce457610ce3612a44565b5b6020020151878260648110610cfc57610cfb612a44565b5b602002015114610d0b57600091505b8080610d1690612bae565b915050610cc8565b5060018103610d3557819750505050505050610d40565b505050505050610908565b81935050505092915050565b600080610d598484610887565b9050600181600060648110610d7157610d70612a44565b5b602002015114610db6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dad90612cae565b60405180910390fd5b600181600160648110610dcc57610dcb612a44565b5b602002015114610ddd576000610de0565b60015b91505092915050565b6000610df3611dbc565b610dfb611dde565b610e03611dbc565b610e0b611e0b565b60005b6002811015610e5e57868160148110610e2a57610e29612a44565b5b6020020135858260028110610e4257610e41612a44565b5b6020020181815250508080610e5690612bae565b915050610e0e565b506000600290505b6004811015610eda57868160148110610e8257610e81612a44565b5b602002013584600060028110610e9b57610e9a612a44565b5b6020020151600283610ead9190612cce565b60028110610ebe57610ebd612a44565b5b6020020181815250508080610ed290612bae565b915050610e66565b506000600490505b6006811015610f5657868160148110610efe57610efd612a44565b5b602002013584600160028110610f1757610f16612a44565b5b6020020151600483610f299190612cce565b60028110610f3a57610f39612a44565b5b6020020181815250508080610f4e90612bae565b915050610ee2565b506000600690505b6008811015610fba57868160148110610f7a57610f79612a44565b5b602002013583600683610f8d9190612cce565b60028110610f9e57610f9d612a44565b5b6020020181815250508080610fb290612bae565b915050610f5e565b506000600890505b601481101561101e57868160148110610fde57610fdd612a44565b5b602002013582600883610ff19190612cce565b600c811061100257611001612a44565b5b602002018181525050808061101690612bae565b915050610fc2565b5060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638cbac0fa858585856040518563ffffffff1660e01b815260040161107e9493929190612f08565b602060405180830381865afa15801561109b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110bf9190612f7b565b6110fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f590612ff4565b60405180910390fd5b6001945050505050919050565b600080600090505b600083111561113e57600a836111299190613043565b9250808061113690612bae565b915050611113565b80915050919050565b6000806111548484610887565b905060028160006064811061116c5761116b612a44565b5b6020020151148015611196575060008160026064811061118f5761118e612a44565b5b6020020151145b6111d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cc906130c0565b60405180910390fd5b6001816001606481106111eb576111ea612a44565b5b60200201511461121b577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61121e565b60015b8160036064811061123257611231612a44565b5b602002015161124191906130e0565b91505092915050565b611252611d99565b6000611260868686866117a2565b905060048160006064811061127857611277612a44565b5b6020020151146112bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b4906131a4565b60405180910390fd5b6112c684610de9565b5080915050949350505050565b6000806112e2868686866117a2565b90506002816000606481106112fa576112f9612a44565b5b6020020151148015611324575060008160026064811061131d5761131c612a44565b5b6020020151145b611363576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135a906130c0565b60405180910390fd5b61136c84610de9565b5060018160016064811061138357611382612a44565b5b6020020151146113b3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6113b6565b60015b816003606481106113ca576113c9612a44565b5b60200201516113d991906130e0565b915050949350505050565b6000806000806113f3856114e3565b9250925092506001868285856040516000815260200160405260405161141c94939291906131c4565b6020604051602081039080840390855afa15801561143e573d6000803e3d6000fd5b50505060206040510351935050505092915050565b600080611460858561176f565b9050600061146d82611d69565b9050600061147b82866113e4565b9050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114c083876113e4565b73ffffffffffffffffffffffffffffffffffffffff161493505050509392505050565b6000806000604184511461152c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152390613255565b60405180910390fd5b6020840151925060408401519150606084015160001a90509193909250565b6060600061155b868686866117a2565b905060038160006064811061157357611572612a44565b5b6020020151146115b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115af90612b2b565b60405180910390fd5b6115c184610de9565b506000816001606481106115d8576115d7612a44565b5b602002015167ffffffffffffffff8111156115f6576115f5611e9c565b5b6040519080825280602002602001820160405280156116245781602001602082028036833780820191505090505b50905060005b8260016064811061163e5761163d612a44565b5b60200201518110156116a857826002826116589190612b7a565b6064811061166957611668612a44565b5b602002015182828151811061168157611680612a44565b5b602002602001019060ff16908160ff168152505080806116a090612bae565b91505061162a565b5060006116b482610784565b9050809350505050949350505050565b6000806116d3868686866117a2565b90506001816000606481106116eb576116ea612a44565b5b602002015114611730576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172790612cae565b60405180910390fd5b61173984610de9565b506001816001606481106117505761174f612a44565b5b602002015114611761576000611764565b60015b915050949350505050565b600082826040516020016117849291906132d2565b60405160208183030381529060405280519060200120905092915050565b6117aa611d99565b6117cd85846009601481106117c2576117c1612a44565b5b602002013584611453565b506001836008601481106117e4576117e3612a44565b5b602002013514611829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182090613346565b60405180910390fd5b6000600a90505b600f8110156118c85783816014811061184c5761184b612a44565b5b602002013585600a8361185f9190612cce565b600581106118705761186f612a44565b5b6020020151146118b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ac906133b2565b60405180910390fd5b80806118c090612bae565b915050611830565b506118d1611e2e565b6000600f90505b6014811015611934578481601481106118f4576118f3612a44565b5b602002013582600f836119079190612cce565b6005811061191857611917612a44565b5b602002018181525050808061192c90612bae565b9150506118d8565b5061194060058261194b565b915050949350505050565b611953611d99565b61195b611d99565b60008060005b86811015611b8157600086826005811061197e5761197d612a44565b5b60200201511115611b6e5760006119ab8783600581106119a1576119a0612a44565b5b602002015161110b565b905060008783600581106119c2576119c1612a44565b5b6020020151905060008060008060005b6000871115611b665760006001886119ea9190612cce565b600a6119f69190613505565b87611a019190613043565b9050600086148015611a135750600081115b15611a3e576001955060098103611a31576008935060009150611a35565b8093505b60009450611b21565b60018603611b205760018585611a549190612cce565b611a5e9190612cce565b600a611a6a9190613505565b81611a759190613550565b83611a809190612b7a565b92508480611a8d90612bae565b955050838503611b1f5783600a611aa49190613505565b8a611aaf9190613550565b995060018203611acc57828a611ac59190612b7a565b9950611b0a565b8983611ad89190612b7a565b925060009950828c8c60648110611af257611af1612a44565b5b6020020181815250508a80611b0690612bae565b9b50505b60009450600095506000935060009250600091505b5b5b80600189611b2f9190612cce565b600a611b3b9190613505565b611b459190613550565b87611b509190612cce565b96508780611b5d90613592565b985050506119d2565b505050505050505b8080611b7990612bae565b915050611961565b5082935050505092915050565b600080611b9d868686866117a2565b9050600081600060648110611bb557611bb4612a44565b5b602002015114611bfa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf190612abf565b60405180910390fd5b611c0384610de9565b506001915050949350505050565b611c19611e50565b6000611c27868686866117a2565b9050600281600060648110611c3f57611c3e612a44565b5b6020020151148015611c695750600181600260648110611c6257611c61612a44565b5b6020020151145b611ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9f90613607565b60405180910390fd5b611cb184610de9565b50611cba611e50565b81600160648110611cce57611ccd612a44565b5b602002015181600060038110611ce757611ce6612a44565b5b60200201818152505081600260648110611d0457611d03612a44565b5b602002015181600160038110611d1d57611d1c612a44565b5b60200201818152505081600360648110611d3a57611d39612a44565b5b602002015181600260038110611d5357611d52612a44565b5b6020020181815250508092505050949350505050565b600081604051602001611d7c9190613694565b604051602081830303815290604052805190602001209050919050565b60405180610c800160405280606490602082028036833780820191505090505090565b6040518060400160405280600290602082028036833780820191505090505090565b60405180604001604052806002905b611df5611dbc565b815260200190600190039081611ded5790505090565b604051806101800160405280600c90602082028036833780820191505090505090565b6040518060a00160405280600590602082028036833780820191505090505090565b6040518060600160405280600390602082028036833780820191505090505090565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611ed482611e8b565b810181811067ffffffffffffffff82111715611ef357611ef2611e9c565b5b80604052505050565b6000611f06611e72565b9050611f128282611ecb565b919050565b600067ffffffffffffffff821115611f3257611f31611e9c565b5b602082029050919050565b600080fd5b6000819050919050565b611f5581611f42565b8114611f6057600080fd5b50565b600081359050611f7281611f4c565b92915050565b6000611f8b611f8684611f17565b611efc565b90508060208402830185811115611fa557611fa4611f3d565b5b835b81811015611fce5780611fba8882611f63565b845260208401935050602081019050611fa7565b5050509392505050565b600082601f830112611fed57611fec611e86565b5b6005611ffa848285611f78565b91505092915050565b600067ffffffffffffffff82111561201e5761201d611e9c565b5b602082029050919050565b600061203c61203784612003565b611efc565b9050806020840283018581111561205657612055611f3d565b5b835b8181101561207f578061206b8882611f63565b845260208401935050602081019050612058565b5050509392505050565b600082601f83011261209e5761209d611e86565b5b60646120ab848285612029565b91505092915050565b600080610d2083850312156120cc576120cb611e7c565b5b60006120da85828601611fd8565b92505060a06120eb85828601612089565b9150509250929050565b60008115159050919050565b61210a816120f5565b82525050565b60006020820190506121256000830184612101565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561216557808201518184015260208101905061214a565b60008484015250505050565b600061217c8261212b565b6121868185612136565b9350612196818560208601612147565b61219f81611e8b565b840191505092915050565b600060208201905081810360008301526121c48184612171565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121f7826121cc565b9050919050565b612207816121ec565b82525050565b600060208201905061222260008301846121fe565b92915050565b600067ffffffffffffffff82111561224357612242611e9c565b5b602082029050602081019050919050565b600060ff82169050919050565b61226a81612254565b811461227557600080fd5b50565b60008135905061228781612261565b92915050565b60006122a061229b84612228565b611efc565b905080838252602082019050602084028301858111156122c3576122c2611f3d565b5b835b818110156122ec57806122d88882612278565b8452602084019350506020810190506122c5565b5050509392505050565b600082601f83011261230b5761230a611e86565b5b813561231b84826020860161228d565b91505092915050565b60006020828403121561233a57612339611e7c565b5b600082013567ffffffffffffffff81111561235857612357611e81565b5b612364848285016122f6565b91505092915050565b600060649050919050565b600081905092915050565b6000819050919050565b61239681611f42565b82525050565b60006123a8838361238d565b60208301905092915050565b6000602082019050919050565b6123ca8161236d565b6123d48184612378565b92506123df82612383565b8060005b838110156124105781516123f7878261239c565b9650612402836123b4565b9250506001810190506123e3565b505050505050565b6000610c808201905061242e60008301846123c1565b92915050565b6000819050826020601402820111156124505761244f611f3d565b5b92915050565b6000610280828403121561246d5761246c611e7c565b5b600061247b84828501612434565b91505092915050565b60006020828403121561249a57612499611e7c565b5b60006124a884828501611f63565b91505092915050565b6124ba81611f42565b82525050565b60006020820190506124d560008301846124b1565b92915050565b6000819050919050565b6124ee816124db565b82525050565b600060208201905061250960008301846124e5565b92915050565b600080fd5b600067ffffffffffffffff82111561252f5761252e611e9c565b5b61253882611e8b565b9050602081019050919050565b82818337600083830152505050565b600061256761256284612514565b611efc565b9050828152602081018484840111156125835761258261250f565b5b61258e848285612545565b509392505050565b600082601f8301126125ab576125aa611e86565b5b81356125bb848260208601612554565b91505092915050565b600067ffffffffffffffff8211156125df576125de611e9c565b5b6125e882611e8b565b9050602081019050919050565b6000612608612603846125c4565b611efc565b9050828152602081018484840111156126245761262361250f565b5b61262f848285612545565b509392505050565b600082601f83011261264c5761264b611e86565b5b813561265c8482602086016125f5565b91505092915050565b60008060008061036085870312156126805761267f611e7c565b5b600085013567ffffffffffffffff81111561269e5761269d611e81565b5b6126aa87828801612596565b94505060206126bb87828801611fd8565b93505060c06126cc87828801612434565b92505061034085013567ffffffffffffffff8111156126ee576126ed611e81565b5b6126fa87828801612637565b91505092959194509250565b6000819050919050565b61271981612706565b811461272457600080fd5b50565b60008135905061273681612710565b92915050565b6000806040838503121561275357612752611e7c565b5b600061276185828601612727565b925050602083013567ffffffffffffffff81111561278257612781611e81565b5b61278e85828601612637565b9150509250929050565b6000806000606084860312156127b1576127b0611e7c565b5b600084013567ffffffffffffffff8111156127cf576127ce611e81565b5b6127db86828701612596565b93505060206127ec86828701611f63565b925050604084013567ffffffffffffffff81111561280d5761280c611e81565b5b61281986828701612637565b9150509250925092565b60006020828403121561283957612838611e7c565b5b600082013567ffffffffffffffff81111561285757612856611e81565b5b61286384828501612637565b91505092915050565b61287581612706565b82525050565b61288481612254565b82525050565b600060608201905061289f600083018661286c565b6128ac602083018561286c565b6128b9604083018461287b565b949350505050565b600080604083850312156128d8576128d7611e7c565b5b600083013567ffffffffffffffff8111156128f6576128f5611e81565b5b61290285828601612596565b925050602061291385828601611f63565b9150509250929050565b6000602082019050612932600083018461286c565b92915050565b60008060c0838503121561294f5761294e611e7c565b5b600061295d85828601611f63565b925050602061296e85828601611fd8565b9150509250929050565b600060039050919050565b600081905092915050565b6000819050919050565b6000602082019050919050565b6129ae81612978565b6129b88184612983565b92506129c38261298e565b8060005b838110156129f45781516129db878261239c565b96506129e683612998565b9250506001810190506129c7565b505050505050565b6000606082019050612a1160008301846129a5565b92915050565b600060208284031215612a2d57612a2c611e7c565b5b6000612a3b84828501612727565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f6e6f74206e756c6c000000000000000000000000000000000000000000000000600082015250565b6000612aa9600883612136565b9150612ab482612a73565b602082019050919050565b60006020820190508181036000830152612ad881612a9c565b9050919050565b7f6e6f7420737472696e6700000000000000000000000000000000000000000000600082015250565b6000612b15600a83612136565b9150612b2082612adf565b602082019050919050565b60006020820190508181036000830152612b4481612b08565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b8582611f42565b9150612b9083611f42565b9250828201905080821115612ba857612ba7612b4b565b5b92915050565b6000612bb982611f42565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612beb57612bea612b4b565b5b600182019050919050565b7f6e6f74207261772076616c756500000000000000000000000000000000000000600082015250565b6000612c2c600d83612136565b9150612c3782612bf6565b602082019050919050565b60006020820190508181036000830152612c5b81612c1f565b9050919050565b7f6e6f7420626f6f6c000000000000000000000000000000000000000000000000600082015250565b6000612c98600883612136565b9150612ca382612c62565b602082019050919050565b60006020820190508181036000830152612cc781612c8b565b9050919050565b6000612cd982611f42565b9150612ce483611f42565b9250828203905081811115612cfc57612cfb612b4b565b5b92915050565b600060029050919050565b600081905092915050565b6000819050919050565b6000602082019050919050565b612d3881612d02565b612d428184612d0d565b9250612d4d82612d18565b8060005b83811015612d7e578151612d65878261239c565b9650612d7083612d22565b925050600181019050612d51565b505050505050565b600060029050919050565b600081905092915050565b6000819050919050565b600081905092915050565b612dba81612d02565b612dc48184612da6565b9250612dcf82612d18565b8060005b83811015612e00578151612de7878261239c565b9650612df283612d22565b925050600181019050612dd3565b505050505050565b6000612e148383612db1565b60408301905092915050565b6000602082019050919050565b612e3681612d86565b612e408184612d91565b9250612e4b82612d9c565b8060005b83811015612e7c578151612e638782612e08565b9650612e6e83612e20565b925050600181019050612e4f565b505050505050565b6000600c9050919050565b600081905092915050565b6000819050919050565b6000602082019050919050565b612eba81612e84565b612ec48184612e8f565b9250612ecf82612e9a565b8060005b83811015612f00578151612ee7878261239c565b9650612ef283612ea4565b925050600181019050612ed3565b505050505050565b600061028082019050612f1e6000830187612d2f565b612f2b6040830186612e2d565b612f3860c0830185612d2f565b612f46610100830184612eb1565b95945050505050565b612f58816120f5565b8114612f6357600080fd5b50565b600081519050612f7581612f4f565b92915050565b600060208284031215612f9157612f90611e7c565b5b6000612f9f84828501612f66565b91505092915050565b7f696e76616c69642070726f6f6600000000000000000000000000000000000000600082015250565b6000612fde600d83612136565b9150612fe982612fa8565b602082019050919050565b6000602082019050818103600083015261300d81612fd1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061304e82611f42565b915061305983611f42565b92508261306957613068613014565b5b828204905092915050565b7f6e6f7420696e7400000000000000000000000000000000000000000000000000600082015250565b60006130aa600783612136565b91506130b582613074565b602082019050919050565b600060208201905081810360008301526130d98161309d565b9050919050565b60006130eb826124db565b91506130f6836124db565b9250828202613104816124db565b91507f8000000000000000000000000000000000000000000000000000000000000000841460008412161561313c5761313b612b4b565b5b828205841483151761315157613150612b4b565b5b5092915050565b7f6e6f74206f626a656374206f7220617272617900000000000000000000000000600082015250565b600061318e601383612136565b915061319982613158565b602082019050919050565b600060208201905081810360008301526131bd81613181565b9050919050565b60006080820190506131d9600083018761286c565b6131e6602083018661287b565b6131f3604083018561286c565b613200606083018461286c565b95945050505050565b7f696e76616c6964207369676e6174757265206c656e6774680000000000000000600082015250565b600061323f601883612136565b915061324a82613209565b602082019050919050565b6000602082019050818103600083015261326e81613232565b9050919050565b600081905092915050565b600061328b8261212b565b6132958185613275565b93506132a5818560208601612147565b80840191505092915050565b6000819050919050565b6132cc6132c782611f42565b6132b1565b82525050565b60006132de8285613280565b91506132ea82846132bb565b6020820191508190509392505050565b7f76616c756520646f65736e277420657869737400000000000000000000000000600082015250565b6000613330601383612136565b915061333b826132fa565b602082019050919050565b6000602082019050818103600083015261335f81613323565b9050919050565b7f77726f6e67207061746800000000000000000000000000000000000000000000600082015250565b600061339c600a83612136565b91506133a782613366565b602082019050919050565b600060208201905081810360008301526133cb8161338f565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156134295780860481111561340557613404612b4b565b5b60018516156134145780820291505b8081029050613422856133d2565b94506133e9565b94509492505050565b60008261344257600190506134fe565b8161345057600090506134fe565b816001811461346657600281146134705761349f565b60019150506134fe565b60ff84111561348257613481612b4b565b5b8360020a91508482111561349957613498612b4b565b5b506134fe565b5060208310610133831016604e8410600b84101617156134d45782820a9050838111156134cf576134ce612b4b565b5b6134fe565b6134e184848460016133df565b925090508184048111156134f8576134f7612b4b565b5b81810290505b9392505050565b600061351082611f42565b915061351b83611f42565b92506135487fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613432565b905092915050565b600061355b82611f42565b915061356683611f42565b925082820261357481611f42565b9150828204841483151761358b5761358a612b4b565b5b5092915050565b600061359d82611f42565b9150600082036135b0576135af612b4b565b5b600182039050919050565b7f6e6f7420666c6f61740000000000000000000000000000000000000000000000600082015250565b60006135f1600983612136565b91506135fc826135bb565b602082019050919050565b60006020820190508181036000830152613620816135e4565b9050919050565b7f19457468657265756d205369676e6564204d6573736167653a0a333200000000600082015250565b600061365d601c83613275565b915061366882613627565b601c82019050919050565b6000819050919050565b61368e61368982612706565b613673565b82525050565b600061369f82613650565b91506136ab828461367d565b6020820191508190509291505056fea264697066735822122084a0583d858ee5faa1e0efd5e0a74c08d214891755c5cf2ec8b598d8ab0d835964736f6c63430008120033",
|
615
|
+
"linkReferences": {},
|
616
|
+
"deployedLinkReferences": {}
|
617
|
+
}
|