@super-protocol/sdk-js 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/BlockchainConnector.d.ts +48 -0
- package/build/BlockchainConnector.js +259 -0
- package/build/TIIGenerator.d.ts +21 -0
- package/build/TIIGenerator.js +251 -0
- package/build/constants.d.ts +7 -0
- package/build/constants.js +10 -0
- package/build/contracts/ActiveOffersList.json +131 -0
- package/build/contracts/ActiveOrdersList.json +74 -0
- package/build/contracts/Marks.json +79 -0
- package/build/contracts/Offers.json +999 -0
- package/build/contracts/Orders.json +984 -0
- package/build/contracts/Providers.json +440 -0
- package/build/contracts/ProvidersOffers.json +254 -0
- package/build/contracts/Staking.json +323 -0
- package/build/contracts/Superpro.json +197 -0
- package/build/contracts/SuperproToken.json +356 -0
- package/build/crypto/Crypto.d.ts +37 -0
- package/build/crypto/Crypto.js +181 -0
- package/build/crypto/index.d.ts +2 -0
- package/build/crypto/index.js +7 -0
- package/build/crypto/nodejs/AES.d.ts +24 -0
- package/build/crypto/nodejs/AES.js +152 -0
- package/build/crypto/nodejs/ARIA.d.ts +24 -0
- package/build/crypto/nodejs/ARIA.js +151 -0
- package/build/crypto/nodejs/ECIES.d.ts +6 -0
- package/build/crypto/nodejs/ECIES.js +94 -0
- package/build/crypto/nodejs/NativeCrypto.d.ts +54 -0
- package/build/crypto/nodejs/NativeCrypto.js +214 -0
- package/build/crypto/nodejs/RSA-Hybrid.d.ts +15 -0
- package/build/crypto/nodejs/RSA-Hybrid.js +153 -0
- package/build/index.d.ts +65 -0
- package/build/index.js +117 -0
- package/build/logger.d.ts +4 -0
- package/build/logger.js +8 -0
- package/build/models/Ballot.d.ts +13 -0
- package/build/models/Ballot.js +76 -0
- package/build/models/Offer.d.ts +70 -0
- package/build/models/Offer.js +273 -0
- package/build/models/Order.d.ts +125 -0
- package/build/models/Order.js +540 -0
- package/build/models/Provider.d.ts +40 -0
- package/build/models/Provider.js +167 -0
- package/build/models/TCB.d.ts +80 -0
- package/build/models/TCB.js +315 -0
- package/build/models/TeeOffer.d.ts +118 -0
- package/build/models/TeeOffer.js +436 -0
- package/build/proto/Compression.d.ts +33 -0
- package/build/proto/Compression.js +146 -0
- package/build/proto/TRI.d.ts +122 -0
- package/build/proto/TRI.js +316 -0
- package/build/providers/storage/ChunksDownloadDecorator.d.ts +38 -0
- package/build/providers/storage/ChunksDownloadDecorator.js +284 -0
- package/build/providers/storage/IStorageProvider.d.ts +17 -0
- package/build/providers/storage/IStorageProvider.js +2 -0
- package/build/providers/storage/StorjStorageProvider.d.ts +26 -0
- package/build/providers/storage/StorjStorageProvider.js +389 -0
- package/build/providers/storage/getStorageProvider.d.ts +4 -0
- package/build/providers/storage/getStorageProvider.js +16 -0
- package/build/staticModels/ActiveOffers.d.ts +29 -0
- package/build/staticModels/ActiveOffers.js +144 -0
- package/build/staticModels/ActiveOrders.d.ts +21 -0
- package/build/staticModels/ActiveOrders.js +120 -0
- package/build/staticModels/Consensus.d.ts +63 -0
- package/build/staticModels/Consensus.js +373 -0
- package/build/staticModels/Epochs.d.ts +23 -0
- package/build/staticModels/Epochs.js +97 -0
- package/build/staticModels/LastBlocks.d.ts +25 -0
- package/build/staticModels/LastBlocks.js +96 -0
- package/build/staticModels/Marks.d.ts +13 -0
- package/build/staticModels/Marks.js +113 -0
- package/build/staticModels/OffersFactory.d.ts +37 -0
- package/build/staticModels/OffersFactory.js +227 -0
- package/build/staticModels/OrdersFactory.d.ts +137 -0
- package/build/staticModels/OrdersFactory.js +539 -0
- package/build/staticModels/ProviderRegistry.d.ts +81 -0
- package/build/staticModels/ProviderRegistry.js +311 -0
- package/build/staticModels/Staking.d.ts +26 -0
- package/build/staticModels/Staking.js +132 -0
- package/build/staticModels/Superpro.d.ts +20 -0
- package/build/staticModels/Superpro.js +99 -0
- package/build/staticModels/SuperproToken.d.ts +30 -0
- package/build/staticModels/SuperproToken.js +125 -0
- package/build/staticModels/Suspicious.d.ts +26 -0
- package/build/staticModels/Suspicious.js +99 -0
- package/build/staticModels/TeeOffersFactory.d.ts +36 -0
- package/build/staticModels/TeeOffersFactory.js +206 -0
- package/build/staticModels/Voting.d.ts +35 -0
- package/build/staticModels/Voting.js +111 -0
- package/build/store.d.ts +12 -0
- package/build/store.js +13 -0
- package/build/types/Ballot.d.ts +75 -0
- package/build/types/Ballot.js +49 -0
- package/build/types/Epoch.d.ts +21 -0
- package/build/types/Epoch.js +18 -0
- package/build/types/Events.d.ts +18 -0
- package/build/types/Events.js +2 -0
- package/build/types/Marks.d.ts +5 -0
- package/build/types/Marks.js +9 -0
- package/build/types/Offer.d.ts +63 -0
- package/build/types/Offer.js +41 -0
- package/build/types/Order.d.ts +61 -0
- package/build/types/Order.js +36 -0
- package/build/types/Origins.d.ts +12 -0
- package/build/types/Origins.js +10 -0
- package/build/types/Provider.d.ts +25 -0
- package/build/types/Provider.js +19 -0
- package/build/types/Staking.d.ts +27 -0
- package/build/types/Staking.js +22 -0
- package/build/types/Superpro.d.ts +24 -0
- package/build/types/Superpro.js +29 -0
- package/build/types/TcbData.d.ts +26 -0
- package/build/types/TcbData.js +21 -0
- package/build/types/TeeOffer.d.ts +22 -0
- package/build/types/TeeOffer.js +15 -0
- package/build/types/Web3.d.ts +26 -0
- package/build/types/Web3.js +2 -0
- package/build/types/blockchainConnector/StorageAccess.d.ts +8 -0
- package/build/types/blockchainConnector/StorageAccess.js +2 -0
- package/build/types/storage/StorageAccess.d.ts +6 -0
- package/build/types/storage/StorageAccess.js +2 -0
- package/build/types/storage/StorageFileAccess.d.ts +5 -0
- package/build/types/storage/StorageFileAccess.js +2 -0
- package/build/types/storage/StorageObject.d.ts +8 -0
- package/build/types/storage/StorageObject.js +2 -0
- package/build/utils/NonceTracker.d.ts +12 -0
- package/build/utils/NonceTracker.js +84 -0
- package/build/utils/TxManager.d.ts +21 -0
- package/build/utils/TxManager.js +159 -0
- package/build/utils.d.ts +38 -0
- package/build/utils.js +195 -0
- package/package.json +68 -0
- package/readme.md +40 -0
|
@@ -0,0 +1,984 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_format": "hh-sol-artifact-1",
|
|
3
|
+
"contractName": "Orders",
|
|
4
|
+
"sourceName": "contracts/Orders.sol",
|
|
5
|
+
"abi": [
|
|
6
|
+
{
|
|
7
|
+
"anonymous": false,
|
|
8
|
+
"inputs": [
|
|
9
|
+
{
|
|
10
|
+
"indexed": true,
|
|
11
|
+
"internalType": "address",
|
|
12
|
+
"name": "consumer",
|
|
13
|
+
"type": "address"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"indexed": true,
|
|
17
|
+
"internalType": "uint256",
|
|
18
|
+
"name": "orderId",
|
|
19
|
+
"type": "uint256"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"indexed": false,
|
|
23
|
+
"internalType": "bool",
|
|
24
|
+
"name": "value",
|
|
25
|
+
"type": "bool"
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
"name": "OrderAwaitingPaymentChanged",
|
|
29
|
+
"type": "event"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"anonymous": false,
|
|
33
|
+
"inputs": [
|
|
34
|
+
{
|
|
35
|
+
"indexed": true,
|
|
36
|
+
"internalType": "address",
|
|
37
|
+
"name": "consumer",
|
|
38
|
+
"type": "address"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"indexed": true,
|
|
42
|
+
"internalType": "uint256",
|
|
43
|
+
"name": "orderId",
|
|
44
|
+
"type": "uint256"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"indexed": false,
|
|
48
|
+
"internalType": "uint256",
|
|
49
|
+
"name": "change",
|
|
50
|
+
"type": "uint256"
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
"name": "OrderChangedWithdrawn",
|
|
54
|
+
"type": "event"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"anonymous": false,
|
|
58
|
+
"inputs": [
|
|
59
|
+
{
|
|
60
|
+
"indexed": true,
|
|
61
|
+
"internalType": "address",
|
|
62
|
+
"name": "consumer",
|
|
63
|
+
"type": "address"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"indexed": true,
|
|
67
|
+
"internalType": "bytes32",
|
|
68
|
+
"name": "externalId",
|
|
69
|
+
"type": "bytes32"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"indexed": true,
|
|
73
|
+
"internalType": "uint256",
|
|
74
|
+
"name": "offerId",
|
|
75
|
+
"type": "uint256"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"indexed": false,
|
|
79
|
+
"internalType": "uint256",
|
|
80
|
+
"name": "orderId",
|
|
81
|
+
"type": "uint256"
|
|
82
|
+
}
|
|
83
|
+
],
|
|
84
|
+
"name": "OrderCreated",
|
|
85
|
+
"type": "event"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"anonymous": false,
|
|
89
|
+
"inputs": [
|
|
90
|
+
{
|
|
91
|
+
"indexed": true,
|
|
92
|
+
"internalType": "address",
|
|
93
|
+
"name": "consumer",
|
|
94
|
+
"type": "address"
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"indexed": true,
|
|
98
|
+
"internalType": "uint256",
|
|
99
|
+
"name": "orderId",
|
|
100
|
+
"type": "uint256"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"indexed": false,
|
|
104
|
+
"internalType": "uint256",
|
|
105
|
+
"name": "amount",
|
|
106
|
+
"type": "uint256"
|
|
107
|
+
}
|
|
108
|
+
],
|
|
109
|
+
"name": "OrderDepositRefilled",
|
|
110
|
+
"type": "event"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"anonymous": false,
|
|
114
|
+
"inputs": [
|
|
115
|
+
{
|
|
116
|
+
"indexed": true,
|
|
117
|
+
"internalType": "address",
|
|
118
|
+
"name": "consumer",
|
|
119
|
+
"type": "address"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"indexed": true,
|
|
123
|
+
"internalType": "uint256",
|
|
124
|
+
"name": "orderId",
|
|
125
|
+
"type": "uint256"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"indexed": false,
|
|
129
|
+
"internalType": "uint256",
|
|
130
|
+
"name": "value",
|
|
131
|
+
"type": "uint256"
|
|
132
|
+
}
|
|
133
|
+
],
|
|
134
|
+
"name": "OrderDepositSpentChanged",
|
|
135
|
+
"type": "event"
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"anonymous": false,
|
|
139
|
+
"inputs": [
|
|
140
|
+
{
|
|
141
|
+
"indexed": true,
|
|
142
|
+
"internalType": "address",
|
|
143
|
+
"name": "consumer",
|
|
144
|
+
"type": "address"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"indexed": true,
|
|
148
|
+
"internalType": "uint256",
|
|
149
|
+
"name": "orderId",
|
|
150
|
+
"type": "uint256"
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"indexed": false,
|
|
154
|
+
"internalType": "string",
|
|
155
|
+
"name": "encryptedResult",
|
|
156
|
+
"type": "string"
|
|
157
|
+
}
|
|
158
|
+
],
|
|
159
|
+
"name": "OrderEncryptedResultUpdated",
|
|
160
|
+
"type": "event"
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"anonymous": false,
|
|
164
|
+
"inputs": [
|
|
165
|
+
{
|
|
166
|
+
"indexed": true,
|
|
167
|
+
"internalType": "uint256",
|
|
168
|
+
"name": "orderId",
|
|
169
|
+
"type": "uint256"
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"indexed": false,
|
|
173
|
+
"internalType": "uint256",
|
|
174
|
+
"name": "price",
|
|
175
|
+
"type": "uint256"
|
|
176
|
+
}
|
|
177
|
+
],
|
|
178
|
+
"name": "OrderPriceUpdated",
|
|
179
|
+
"type": "event"
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"anonymous": false,
|
|
183
|
+
"inputs": [
|
|
184
|
+
{
|
|
185
|
+
"indexed": true,
|
|
186
|
+
"internalType": "address",
|
|
187
|
+
"name": "tokenReceiver",
|
|
188
|
+
"type": "address"
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"indexed": true,
|
|
192
|
+
"internalType": "uint256",
|
|
193
|
+
"name": "orderId",
|
|
194
|
+
"type": "uint256"
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"indexed": false,
|
|
198
|
+
"internalType": "uint256",
|
|
199
|
+
"name": "profit",
|
|
200
|
+
"type": "uint256"
|
|
201
|
+
}
|
|
202
|
+
],
|
|
203
|
+
"name": "OrderProfitWithdrawn",
|
|
204
|
+
"type": "event"
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"anonymous": false,
|
|
208
|
+
"inputs": [
|
|
209
|
+
{
|
|
210
|
+
"indexed": true,
|
|
211
|
+
"internalType": "address",
|
|
212
|
+
"name": "consumer",
|
|
213
|
+
"type": "address"
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
"indexed": true,
|
|
217
|
+
"internalType": "uint256",
|
|
218
|
+
"name": "orderId",
|
|
219
|
+
"type": "uint256"
|
|
220
|
+
}
|
|
221
|
+
],
|
|
222
|
+
"name": "OrderStarted",
|
|
223
|
+
"type": "event"
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"anonymous": false,
|
|
227
|
+
"inputs": [
|
|
228
|
+
{
|
|
229
|
+
"indexed": true,
|
|
230
|
+
"internalType": "uint256",
|
|
231
|
+
"name": "orderId",
|
|
232
|
+
"type": "uint256"
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
"indexed": true,
|
|
236
|
+
"internalType": "enum OrderStatus",
|
|
237
|
+
"name": "status",
|
|
238
|
+
"type": "uint8"
|
|
239
|
+
}
|
|
240
|
+
],
|
|
241
|
+
"name": "OrderStatusUpdated",
|
|
242
|
+
"type": "event"
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
"anonymous": false,
|
|
246
|
+
"inputs": [
|
|
247
|
+
{
|
|
248
|
+
"indexed": true,
|
|
249
|
+
"internalType": "uint256",
|
|
250
|
+
"name": "subOrderId",
|
|
251
|
+
"type": "uint256"
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
"indexed": true,
|
|
255
|
+
"internalType": "uint256",
|
|
256
|
+
"name": "parentOrderId",
|
|
257
|
+
"type": "uint256"
|
|
258
|
+
}
|
|
259
|
+
],
|
|
260
|
+
"name": "SubOrderCreated",
|
|
261
|
+
"type": "event"
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
"inputs": [
|
|
265
|
+
{
|
|
266
|
+
"internalType": "uint256",
|
|
267
|
+
"name": "orderId",
|
|
268
|
+
"type": "uint256"
|
|
269
|
+
}
|
|
270
|
+
],
|
|
271
|
+
"name": "cancelOrder",
|
|
272
|
+
"outputs": [],
|
|
273
|
+
"stateMutability": "nonpayable",
|
|
274
|
+
"type": "function"
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
"inputs": [
|
|
278
|
+
{
|
|
279
|
+
"internalType": "uint256",
|
|
280
|
+
"name": "orderId",
|
|
281
|
+
"type": "uint256"
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
"internalType": "enum OrderStatus",
|
|
285
|
+
"name": "status",
|
|
286
|
+
"type": "uint8"
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
"internalType": "string",
|
|
290
|
+
"name": "encryptedResult",
|
|
291
|
+
"type": "string"
|
|
292
|
+
}
|
|
293
|
+
],
|
|
294
|
+
"name": "completeOrder",
|
|
295
|
+
"outputs": [],
|
|
296
|
+
"stateMutability": "nonpayable",
|
|
297
|
+
"type": "function"
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
"inputs": [
|
|
301
|
+
{
|
|
302
|
+
"components": [
|
|
303
|
+
{
|
|
304
|
+
"internalType": "uint256",
|
|
305
|
+
"name": "offerId",
|
|
306
|
+
"type": "uint256"
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
"internalType": "string",
|
|
310
|
+
"name": "resultPublicKey",
|
|
311
|
+
"type": "string"
|
|
312
|
+
},
|
|
313
|
+
{
|
|
314
|
+
"internalType": "string",
|
|
315
|
+
"name": "encryptedRequirements",
|
|
316
|
+
"type": "string"
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
"internalType": "string",
|
|
320
|
+
"name": "encryptedArgs",
|
|
321
|
+
"type": "string"
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
"internalType": "enum OrderStatus",
|
|
325
|
+
"name": "status",
|
|
326
|
+
"type": "uint8"
|
|
327
|
+
},
|
|
328
|
+
{
|
|
329
|
+
"components": [
|
|
330
|
+
{
|
|
331
|
+
"internalType": "uint256",
|
|
332
|
+
"name": "slots",
|
|
333
|
+
"type": "uint256"
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
"internalType": "uint256[]",
|
|
337
|
+
"name": "inputOffers",
|
|
338
|
+
"type": "uint256[]"
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
"internalType": "uint256[]",
|
|
342
|
+
"name": "selectedOffers",
|
|
343
|
+
"type": "uint256[]"
|
|
344
|
+
}
|
|
345
|
+
],
|
|
346
|
+
"internalType": "struct OrderArgs",
|
|
347
|
+
"name": "args",
|
|
348
|
+
"type": "tuple"
|
|
349
|
+
}
|
|
350
|
+
],
|
|
351
|
+
"internalType": "struct OrderInfo",
|
|
352
|
+
"name": "info",
|
|
353
|
+
"type": "tuple"
|
|
354
|
+
},
|
|
355
|
+
{
|
|
356
|
+
"internalType": "uint256",
|
|
357
|
+
"name": "holdDeposit",
|
|
358
|
+
"type": "uint256"
|
|
359
|
+
},
|
|
360
|
+
{
|
|
361
|
+
"internalType": "bool",
|
|
362
|
+
"name": "suspended",
|
|
363
|
+
"type": "bool"
|
|
364
|
+
},
|
|
365
|
+
{
|
|
366
|
+
"internalType": "bytes32",
|
|
367
|
+
"name": "externalId",
|
|
368
|
+
"type": "bytes32"
|
|
369
|
+
}
|
|
370
|
+
],
|
|
371
|
+
"name": "createOrder",
|
|
372
|
+
"outputs": [],
|
|
373
|
+
"stateMutability": "nonpayable",
|
|
374
|
+
"type": "function"
|
|
375
|
+
},
|
|
376
|
+
{
|
|
377
|
+
"inputs": [
|
|
378
|
+
{
|
|
379
|
+
"internalType": "uint256",
|
|
380
|
+
"name": "parentOrderId",
|
|
381
|
+
"type": "uint256"
|
|
382
|
+
},
|
|
383
|
+
{
|
|
384
|
+
"components": [
|
|
385
|
+
{
|
|
386
|
+
"internalType": "uint256",
|
|
387
|
+
"name": "offerId",
|
|
388
|
+
"type": "uint256"
|
|
389
|
+
},
|
|
390
|
+
{
|
|
391
|
+
"internalType": "string",
|
|
392
|
+
"name": "resultPublicKey",
|
|
393
|
+
"type": "string"
|
|
394
|
+
},
|
|
395
|
+
{
|
|
396
|
+
"internalType": "string",
|
|
397
|
+
"name": "encryptedRequirements",
|
|
398
|
+
"type": "string"
|
|
399
|
+
},
|
|
400
|
+
{
|
|
401
|
+
"internalType": "string",
|
|
402
|
+
"name": "encryptedArgs",
|
|
403
|
+
"type": "string"
|
|
404
|
+
},
|
|
405
|
+
{
|
|
406
|
+
"internalType": "enum OrderStatus",
|
|
407
|
+
"name": "status",
|
|
408
|
+
"type": "uint8"
|
|
409
|
+
},
|
|
410
|
+
{
|
|
411
|
+
"components": [
|
|
412
|
+
{
|
|
413
|
+
"internalType": "uint256",
|
|
414
|
+
"name": "slots",
|
|
415
|
+
"type": "uint256"
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
"internalType": "uint256[]",
|
|
419
|
+
"name": "inputOffers",
|
|
420
|
+
"type": "uint256[]"
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
"internalType": "uint256[]",
|
|
424
|
+
"name": "selectedOffers",
|
|
425
|
+
"type": "uint256[]"
|
|
426
|
+
}
|
|
427
|
+
],
|
|
428
|
+
"internalType": "struct OrderArgs",
|
|
429
|
+
"name": "args",
|
|
430
|
+
"type": "tuple"
|
|
431
|
+
}
|
|
432
|
+
],
|
|
433
|
+
"internalType": "struct OrderInfo",
|
|
434
|
+
"name": "suborderInfo",
|
|
435
|
+
"type": "tuple"
|
|
436
|
+
},
|
|
437
|
+
{
|
|
438
|
+
"components": [
|
|
439
|
+
{
|
|
440
|
+
"internalType": "bool",
|
|
441
|
+
"name": "blockParentOrder",
|
|
442
|
+
"type": "bool"
|
|
443
|
+
},
|
|
444
|
+
{
|
|
445
|
+
"internalType": "bytes32",
|
|
446
|
+
"name": "externalId",
|
|
447
|
+
"type": "bytes32"
|
|
448
|
+
},
|
|
449
|
+
{
|
|
450
|
+
"internalType": "uint256",
|
|
451
|
+
"name": "holdSum",
|
|
452
|
+
"type": "uint256"
|
|
453
|
+
}
|
|
454
|
+
],
|
|
455
|
+
"internalType": "struct SubOrderParams",
|
|
456
|
+
"name": "params",
|
|
457
|
+
"type": "tuple"
|
|
458
|
+
}
|
|
459
|
+
],
|
|
460
|
+
"name": "createSubOrder",
|
|
461
|
+
"outputs": [],
|
|
462
|
+
"stateMutability": "nonpayable",
|
|
463
|
+
"type": "function"
|
|
464
|
+
},
|
|
465
|
+
{
|
|
466
|
+
"inputs": [
|
|
467
|
+
{
|
|
468
|
+
"internalType": "uint256",
|
|
469
|
+
"name": "orderId",
|
|
470
|
+
"type": "uint256"
|
|
471
|
+
}
|
|
472
|
+
],
|
|
473
|
+
"name": "getAwaitingPayment",
|
|
474
|
+
"outputs": [
|
|
475
|
+
{
|
|
476
|
+
"internalType": "bool",
|
|
477
|
+
"name": "",
|
|
478
|
+
"type": "bool"
|
|
479
|
+
}
|
|
480
|
+
],
|
|
481
|
+
"stateMutability": "view",
|
|
482
|
+
"type": "function"
|
|
483
|
+
},
|
|
484
|
+
{
|
|
485
|
+
"inputs": [
|
|
486
|
+
{
|
|
487
|
+
"internalType": "uint256",
|
|
488
|
+
"name": "orderId",
|
|
489
|
+
"type": "uint256"
|
|
490
|
+
}
|
|
491
|
+
],
|
|
492
|
+
"name": "getDepositSpent",
|
|
493
|
+
"outputs": [
|
|
494
|
+
{
|
|
495
|
+
"internalType": "uint256",
|
|
496
|
+
"name": "",
|
|
497
|
+
"type": "uint256"
|
|
498
|
+
}
|
|
499
|
+
],
|
|
500
|
+
"stateMutability": "view",
|
|
501
|
+
"type": "function"
|
|
502
|
+
},
|
|
503
|
+
{
|
|
504
|
+
"inputs": [
|
|
505
|
+
{
|
|
506
|
+
"internalType": "uint256",
|
|
507
|
+
"name": "orderId",
|
|
508
|
+
"type": "uint256"
|
|
509
|
+
}
|
|
510
|
+
],
|
|
511
|
+
"name": "getOrder",
|
|
512
|
+
"outputs": [
|
|
513
|
+
{
|
|
514
|
+
"internalType": "address",
|
|
515
|
+
"name": "",
|
|
516
|
+
"type": "address"
|
|
517
|
+
},
|
|
518
|
+
{
|
|
519
|
+
"components": [
|
|
520
|
+
{
|
|
521
|
+
"internalType": "uint256",
|
|
522
|
+
"name": "offerId",
|
|
523
|
+
"type": "uint256"
|
|
524
|
+
},
|
|
525
|
+
{
|
|
526
|
+
"internalType": "string",
|
|
527
|
+
"name": "resultPublicKey",
|
|
528
|
+
"type": "string"
|
|
529
|
+
},
|
|
530
|
+
{
|
|
531
|
+
"internalType": "string",
|
|
532
|
+
"name": "encryptedRequirements",
|
|
533
|
+
"type": "string"
|
|
534
|
+
},
|
|
535
|
+
{
|
|
536
|
+
"internalType": "string",
|
|
537
|
+
"name": "encryptedArgs",
|
|
538
|
+
"type": "string"
|
|
539
|
+
},
|
|
540
|
+
{
|
|
541
|
+
"internalType": "enum OrderStatus",
|
|
542
|
+
"name": "status",
|
|
543
|
+
"type": "uint8"
|
|
544
|
+
},
|
|
545
|
+
{
|
|
546
|
+
"components": [
|
|
547
|
+
{
|
|
548
|
+
"internalType": "uint256",
|
|
549
|
+
"name": "slots",
|
|
550
|
+
"type": "uint256"
|
|
551
|
+
},
|
|
552
|
+
{
|
|
553
|
+
"internalType": "uint256[]",
|
|
554
|
+
"name": "inputOffers",
|
|
555
|
+
"type": "uint256[]"
|
|
556
|
+
},
|
|
557
|
+
{
|
|
558
|
+
"internalType": "uint256[]",
|
|
559
|
+
"name": "selectedOffers",
|
|
560
|
+
"type": "uint256[]"
|
|
561
|
+
}
|
|
562
|
+
],
|
|
563
|
+
"internalType": "struct OrderArgs",
|
|
564
|
+
"name": "args",
|
|
565
|
+
"type": "tuple"
|
|
566
|
+
}
|
|
567
|
+
],
|
|
568
|
+
"internalType": "struct OrderInfo",
|
|
569
|
+
"name": "",
|
|
570
|
+
"type": "tuple"
|
|
571
|
+
},
|
|
572
|
+
{
|
|
573
|
+
"components": [
|
|
574
|
+
{
|
|
575
|
+
"internalType": "string",
|
|
576
|
+
"name": "encryptedResult",
|
|
577
|
+
"type": "string"
|
|
578
|
+
},
|
|
579
|
+
{
|
|
580
|
+
"internalType": "uint256",
|
|
581
|
+
"name": "orderPrice",
|
|
582
|
+
"type": "uint256"
|
|
583
|
+
}
|
|
584
|
+
],
|
|
585
|
+
"internalType": "struct OrderResult",
|
|
586
|
+
"name": "",
|
|
587
|
+
"type": "tuple"
|
|
588
|
+
}
|
|
589
|
+
],
|
|
590
|
+
"stateMutability": "view",
|
|
591
|
+
"type": "function"
|
|
592
|
+
},
|
|
593
|
+
{
|
|
594
|
+
"inputs": [
|
|
595
|
+
{
|
|
596
|
+
"internalType": "uint256",
|
|
597
|
+
"name": "orderId",
|
|
598
|
+
"type": "uint256"
|
|
599
|
+
}
|
|
600
|
+
],
|
|
601
|
+
"name": "getOrderChangeWithdrawn",
|
|
602
|
+
"outputs": [
|
|
603
|
+
{
|
|
604
|
+
"internalType": "bool",
|
|
605
|
+
"name": "",
|
|
606
|
+
"type": "bool"
|
|
607
|
+
}
|
|
608
|
+
],
|
|
609
|
+
"stateMutability": "view",
|
|
610
|
+
"type": "function"
|
|
611
|
+
},
|
|
612
|
+
{
|
|
613
|
+
"inputs": [
|
|
614
|
+
{
|
|
615
|
+
"internalType": "uint256",
|
|
616
|
+
"name": "orderId",
|
|
617
|
+
"type": "uint256"
|
|
618
|
+
}
|
|
619
|
+
],
|
|
620
|
+
"name": "getOrderHoldDeposit",
|
|
621
|
+
"outputs": [
|
|
622
|
+
{
|
|
623
|
+
"internalType": "uint256",
|
|
624
|
+
"name": "",
|
|
625
|
+
"type": "uint256"
|
|
626
|
+
}
|
|
627
|
+
],
|
|
628
|
+
"stateMutability": "view",
|
|
629
|
+
"type": "function"
|
|
630
|
+
},
|
|
631
|
+
{
|
|
632
|
+
"inputs": [
|
|
633
|
+
{
|
|
634
|
+
"internalType": "uint256",
|
|
635
|
+
"name": "orderId",
|
|
636
|
+
"type": "uint256"
|
|
637
|
+
}
|
|
638
|
+
],
|
|
639
|
+
"name": "getOrderOrigins",
|
|
640
|
+
"outputs": [
|
|
641
|
+
{
|
|
642
|
+
"components": [
|
|
643
|
+
{
|
|
644
|
+
"internalType": "uint256",
|
|
645
|
+
"name": "createdDate",
|
|
646
|
+
"type": "uint256"
|
|
647
|
+
},
|
|
648
|
+
{
|
|
649
|
+
"internalType": "address",
|
|
650
|
+
"name": "createdBy",
|
|
651
|
+
"type": "address"
|
|
652
|
+
},
|
|
653
|
+
{
|
|
654
|
+
"internalType": "uint256",
|
|
655
|
+
"name": "modifiedDate",
|
|
656
|
+
"type": "uint256"
|
|
657
|
+
},
|
|
658
|
+
{
|
|
659
|
+
"internalType": "address",
|
|
660
|
+
"name": "modifiedBy",
|
|
661
|
+
"type": "address"
|
|
662
|
+
}
|
|
663
|
+
],
|
|
664
|
+
"internalType": "struct Origins",
|
|
665
|
+
"name": "",
|
|
666
|
+
"type": "tuple"
|
|
667
|
+
}
|
|
668
|
+
],
|
|
669
|
+
"stateMutability": "view",
|
|
670
|
+
"type": "function"
|
|
671
|
+
},
|
|
672
|
+
{
|
|
673
|
+
"inputs": [
|
|
674
|
+
{
|
|
675
|
+
"internalType": "uint256",
|
|
676
|
+
"name": "orderId",
|
|
677
|
+
"type": "uint256"
|
|
678
|
+
}
|
|
679
|
+
],
|
|
680
|
+
"name": "getOrderParentOrder",
|
|
681
|
+
"outputs": [
|
|
682
|
+
{
|
|
683
|
+
"internalType": "uint256",
|
|
684
|
+
"name": "",
|
|
685
|
+
"type": "uint256"
|
|
686
|
+
}
|
|
687
|
+
],
|
|
688
|
+
"stateMutability": "view",
|
|
689
|
+
"type": "function"
|
|
690
|
+
},
|
|
691
|
+
{
|
|
692
|
+
"inputs": [
|
|
693
|
+
{
|
|
694
|
+
"internalType": "uint256",
|
|
695
|
+
"name": "orderId",
|
|
696
|
+
"type": "uint256"
|
|
697
|
+
}
|
|
698
|
+
],
|
|
699
|
+
"name": "getOrderPrice",
|
|
700
|
+
"outputs": [
|
|
701
|
+
{
|
|
702
|
+
"internalType": "uint256",
|
|
703
|
+
"name": "",
|
|
704
|
+
"type": "uint256"
|
|
705
|
+
}
|
|
706
|
+
],
|
|
707
|
+
"stateMutability": "view",
|
|
708
|
+
"type": "function"
|
|
709
|
+
},
|
|
710
|
+
{
|
|
711
|
+
"inputs": [
|
|
712
|
+
{
|
|
713
|
+
"internalType": "uint256",
|
|
714
|
+
"name": "orderId",
|
|
715
|
+
"type": "uint256"
|
|
716
|
+
}
|
|
717
|
+
],
|
|
718
|
+
"name": "getOrderProfitWithdrawn",
|
|
719
|
+
"outputs": [
|
|
720
|
+
{
|
|
721
|
+
"internalType": "bool",
|
|
722
|
+
"name": "",
|
|
723
|
+
"type": "bool"
|
|
724
|
+
}
|
|
725
|
+
],
|
|
726
|
+
"stateMutability": "view",
|
|
727
|
+
"type": "function"
|
|
728
|
+
},
|
|
729
|
+
{
|
|
730
|
+
"inputs": [
|
|
731
|
+
{
|
|
732
|
+
"internalType": "uint256",
|
|
733
|
+
"name": "orderId",
|
|
734
|
+
"type": "uint256"
|
|
735
|
+
}
|
|
736
|
+
],
|
|
737
|
+
"name": "getOrderSubOrders",
|
|
738
|
+
"outputs": [
|
|
739
|
+
{
|
|
740
|
+
"internalType": "uint256[]",
|
|
741
|
+
"name": "",
|
|
742
|
+
"type": "uint256[]"
|
|
743
|
+
}
|
|
744
|
+
],
|
|
745
|
+
"stateMutability": "view",
|
|
746
|
+
"type": "function"
|
|
747
|
+
},
|
|
748
|
+
{
|
|
749
|
+
"inputs": [],
|
|
750
|
+
"name": "getOrdersCount",
|
|
751
|
+
"outputs": [
|
|
752
|
+
{
|
|
753
|
+
"internalType": "uint256",
|
|
754
|
+
"name": "",
|
|
755
|
+
"type": "uint256"
|
|
756
|
+
}
|
|
757
|
+
],
|
|
758
|
+
"stateMutability": "view",
|
|
759
|
+
"type": "function"
|
|
760
|
+
},
|
|
761
|
+
{
|
|
762
|
+
"inputs": [
|
|
763
|
+
{
|
|
764
|
+
"internalType": "uint256",
|
|
765
|
+
"name": "orderId",
|
|
766
|
+
"type": "uint256"
|
|
767
|
+
}
|
|
768
|
+
],
|
|
769
|
+
"name": "getStartDate",
|
|
770
|
+
"outputs": [
|
|
771
|
+
{
|
|
772
|
+
"internalType": "uint256",
|
|
773
|
+
"name": "",
|
|
774
|
+
"type": "uint256"
|
|
775
|
+
}
|
|
776
|
+
],
|
|
777
|
+
"stateMutability": "view",
|
|
778
|
+
"type": "function"
|
|
779
|
+
},
|
|
780
|
+
{
|
|
781
|
+
"inputs": [
|
|
782
|
+
{
|
|
783
|
+
"internalType": "uint256",
|
|
784
|
+
"name": "orderId",
|
|
785
|
+
"type": "uint256"
|
|
786
|
+
}
|
|
787
|
+
],
|
|
788
|
+
"name": "isOrderCompleted",
|
|
789
|
+
"outputs": [
|
|
790
|
+
{
|
|
791
|
+
"internalType": "bool",
|
|
792
|
+
"name": "",
|
|
793
|
+
"type": "bool"
|
|
794
|
+
}
|
|
795
|
+
],
|
|
796
|
+
"stateMutability": "view",
|
|
797
|
+
"type": "function"
|
|
798
|
+
},
|
|
799
|
+
{
|
|
800
|
+
"inputs": [
|
|
801
|
+
{
|
|
802
|
+
"internalType": "uint256",
|
|
803
|
+
"name": "orderId",
|
|
804
|
+
"type": "uint256"
|
|
805
|
+
}
|
|
806
|
+
],
|
|
807
|
+
"name": "isOrderStarted",
|
|
808
|
+
"outputs": [
|
|
809
|
+
{
|
|
810
|
+
"internalType": "bool",
|
|
811
|
+
"name": "",
|
|
812
|
+
"type": "bool"
|
|
813
|
+
}
|
|
814
|
+
],
|
|
815
|
+
"stateMutability": "view",
|
|
816
|
+
"type": "function"
|
|
817
|
+
},
|
|
818
|
+
{
|
|
819
|
+
"inputs": [
|
|
820
|
+
{
|
|
821
|
+
"internalType": "uint256",
|
|
822
|
+
"name": "orderId",
|
|
823
|
+
"type": "uint256"
|
|
824
|
+
}
|
|
825
|
+
],
|
|
826
|
+
"name": "isOrderValid",
|
|
827
|
+
"outputs": [
|
|
828
|
+
{
|
|
829
|
+
"internalType": "bool",
|
|
830
|
+
"name": "",
|
|
831
|
+
"type": "bool"
|
|
832
|
+
}
|
|
833
|
+
],
|
|
834
|
+
"stateMutability": "view",
|
|
835
|
+
"type": "function"
|
|
836
|
+
},
|
|
837
|
+
{
|
|
838
|
+
"inputs": [
|
|
839
|
+
{
|
|
840
|
+
"internalType": "uint256",
|
|
841
|
+
"name": "orderId",
|
|
842
|
+
"type": "uint256"
|
|
843
|
+
}
|
|
844
|
+
],
|
|
845
|
+
"name": "processOrder",
|
|
846
|
+
"outputs": [],
|
|
847
|
+
"stateMutability": "nonpayable",
|
|
848
|
+
"type": "function"
|
|
849
|
+
},
|
|
850
|
+
{
|
|
851
|
+
"inputs": [
|
|
852
|
+
{
|
|
853
|
+
"internalType": "uint256",
|
|
854
|
+
"name": "orderId",
|
|
855
|
+
"type": "uint256"
|
|
856
|
+
},
|
|
857
|
+
{
|
|
858
|
+
"internalType": "uint256",
|
|
859
|
+
"name": "amount",
|
|
860
|
+
"type": "uint256"
|
|
861
|
+
}
|
|
862
|
+
],
|
|
863
|
+
"name": "refillOrder",
|
|
864
|
+
"outputs": [],
|
|
865
|
+
"stateMutability": "nonpayable",
|
|
866
|
+
"type": "function"
|
|
867
|
+
},
|
|
868
|
+
{
|
|
869
|
+
"inputs": [
|
|
870
|
+
{
|
|
871
|
+
"internalType": "uint256",
|
|
872
|
+
"name": "orderId",
|
|
873
|
+
"type": "uint256"
|
|
874
|
+
},
|
|
875
|
+
{
|
|
876
|
+
"internalType": "bool",
|
|
877
|
+
"name": "value",
|
|
878
|
+
"type": "bool"
|
|
879
|
+
}
|
|
880
|
+
],
|
|
881
|
+
"name": "setAwaitingPayment",
|
|
882
|
+
"outputs": [],
|
|
883
|
+
"stateMutability": "nonpayable",
|
|
884
|
+
"type": "function"
|
|
885
|
+
},
|
|
886
|
+
{
|
|
887
|
+
"inputs": [
|
|
888
|
+
{
|
|
889
|
+
"internalType": "uint256",
|
|
890
|
+
"name": "orderId",
|
|
891
|
+
"type": "uint256"
|
|
892
|
+
},
|
|
893
|
+
{
|
|
894
|
+
"internalType": "uint256",
|
|
895
|
+
"name": "value",
|
|
896
|
+
"type": "uint256"
|
|
897
|
+
}
|
|
898
|
+
],
|
|
899
|
+
"name": "setDepositSpent",
|
|
900
|
+
"outputs": [],
|
|
901
|
+
"stateMutability": "nonpayable",
|
|
902
|
+
"type": "function"
|
|
903
|
+
},
|
|
904
|
+
{
|
|
905
|
+
"inputs": [
|
|
906
|
+
{
|
|
907
|
+
"internalType": "uint256",
|
|
908
|
+
"name": "orderId",
|
|
909
|
+
"type": "uint256"
|
|
910
|
+
}
|
|
911
|
+
],
|
|
912
|
+
"name": "startOrder",
|
|
913
|
+
"outputs": [],
|
|
914
|
+
"stateMutability": "nonpayable",
|
|
915
|
+
"type": "function"
|
|
916
|
+
},
|
|
917
|
+
{
|
|
918
|
+
"inputs": [
|
|
919
|
+
{
|
|
920
|
+
"internalType": "uint256",
|
|
921
|
+
"name": "orderId",
|
|
922
|
+
"type": "uint256"
|
|
923
|
+
},
|
|
924
|
+
{
|
|
925
|
+
"internalType": "uint256",
|
|
926
|
+
"name": "orderPrice",
|
|
927
|
+
"type": "uint256"
|
|
928
|
+
}
|
|
929
|
+
],
|
|
930
|
+
"name": "updateOrderPrice",
|
|
931
|
+
"outputs": [],
|
|
932
|
+
"stateMutability": "nonpayable",
|
|
933
|
+
"type": "function"
|
|
934
|
+
},
|
|
935
|
+
{
|
|
936
|
+
"inputs": [
|
|
937
|
+
{
|
|
938
|
+
"internalType": "uint256",
|
|
939
|
+
"name": "orderId",
|
|
940
|
+
"type": "uint256"
|
|
941
|
+
},
|
|
942
|
+
{
|
|
943
|
+
"internalType": "string",
|
|
944
|
+
"name": "encryptedResult",
|
|
945
|
+
"type": "string"
|
|
946
|
+
}
|
|
947
|
+
],
|
|
948
|
+
"name": "updateOrderResult",
|
|
949
|
+
"outputs": [],
|
|
950
|
+
"stateMutability": "nonpayable",
|
|
951
|
+
"type": "function"
|
|
952
|
+
},
|
|
953
|
+
{
|
|
954
|
+
"inputs": [
|
|
955
|
+
{
|
|
956
|
+
"internalType": "uint256",
|
|
957
|
+
"name": "orderId",
|
|
958
|
+
"type": "uint256"
|
|
959
|
+
}
|
|
960
|
+
],
|
|
961
|
+
"name": "withdrawChange",
|
|
962
|
+
"outputs": [],
|
|
963
|
+
"stateMutability": "nonpayable",
|
|
964
|
+
"type": "function"
|
|
965
|
+
},
|
|
966
|
+
{
|
|
967
|
+
"inputs": [
|
|
968
|
+
{
|
|
969
|
+
"internalType": "uint256",
|
|
970
|
+
"name": "orderId",
|
|
971
|
+
"type": "uint256"
|
|
972
|
+
}
|
|
973
|
+
],
|
|
974
|
+
"name": "withdrawProfit",
|
|
975
|
+
"outputs": [],
|
|
976
|
+
"stateMutability": "nonpayable",
|
|
977
|
+
"type": "function"
|
|
978
|
+
}
|
|
979
|
+
],
|
|
980
|
+
"bytecode": "0x608060405234801561001057600080fd5b50615aee80620000216000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c8063920fba4f116100f9578063ba92763a11610097578063d54f807611610071578063d54f80761461051b578063d82a2bea1461052e578063df305d5914610541578063e0ab5ae01461055457600080fd5b8063ba92763a146104b6578063c9bd9ff0146104e6578063d09ef241146104f957600080fd5b8063a0a23849116100d3578063a0a2384914610436578063a90f3a2d14610469578063ab74e6421461047c578063b5b3b0511461048f57600080fd5b8063920fba4f146103e0578063975c4727146103f35780639959a56b1461042357600080fd5b80636eb691f4116101665780637a62b924116101405780637a62b9241461032d5780637d41fdd914610365578063835055c31461037857806388f4a6ba146103cd57600080fd5b80636eb691f41461029a578063752895dd146102ca578063779e423f146102ea57600080fd5b80632e5187fb116101a25780632e5187fb1461024e5780632f191ee814610261578063514fcac7146102745780635e9e78d01461028757600080fd5b80630f251358146101c957806319fed3981461020c5780631a02dc9214610221575b600080fd5b6101f96101d736600461512c565b6000908152600080516020615a9983398151915260205260409020600d015490565b6040519081526020015b60405180910390f35b61021f61021a366004615156565b610567565b005b6101f961022f36600461512c565b6000908152600080516020615a99833981519152602052604090205490565b61021f61025c36600461512c565b6107fb565b61021f61026f36600461529d565b610b32565b61021f61028236600461512c565b611096565b61021f6102953660046152f4565b611366565b6101f96102a836600461512c565b6000908152600080516020615a99833981519152602052604090206018015490565b6102dd6102d836600461512c565b6115dd565b6040516102039190615316565b61031d6102f836600461512c565b6000908152600080516020615a99833981519152602052604090206013015460ff1690565b6040519015158152602001610203565b61031d61033b36600461512c565b6000908152600080516020615a998339815191526020526040902060130154610100900460ff1690565b61021f61037336600461512c565b611654565b61038b61038636600461512c565b6117de565b6040516102039190815181526020808301516001600160a01b039081169183019190915260408084015190830152606092830151169181019190915260800190565b61031d6103db36600461512c565b611869565b61021f6103ee366004615527565b6118cb565b6101f961040136600461512c565b6000908152600080516020615a9983398151915260205260409020601a015490565b61021f61043136600461512c565b611e22565b61031d61044436600461512c565b6000908152600080516020615a99833981519152602052604090206019015460ff1690565b61021f610477366004615588565b612329565b61031d61048a36600461512c565b6129ec565b7ff68437791109705d2e300a0b0cfc858fedffc7438da1d9bf937e2f34afa0df76546101f9565b6101f96104c436600461512c565b6000908152600080516020615a99833981519152602052604090206002015490565b61031d6104f436600461512c565b612a53565b61050c61050736600461512c565b612a8a565b604051610203939291906156ea565b61021f6105293660046152f4565b612e76565b61021f61053c36600461512c565b613150565b61021f61054f3660046152f4565b613633565b61021f6105623660046157de565b61396b565b6000828152600080516020615a9983398151915260205260408120839150600030600483810154604051634e6e04f760e01b8152918201526001600160a01b039190911690634e6e04f79060240160206040518083038186803b1580156105cd57600080fd5b505afa1580156105e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610605919061583a565b905060003060405163071ddd6760e11b81526001600160a01b0384811660048301529190911690630e3bbace9060240160206040518083038186803b15801561064d57600080fd5b505afa158015610661573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610685919061583a565b90506001600160a01b03811633146106ee5760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920617661696c61626c6520666f7220616374696f6e206163636f756e6044820152601d60fa1b60648201526084015b60405180910390fd5b6000868152600080516020615a9983398151915260205260409020600881015460019060ff16600781111561072557610725615660565b146107985760405162461bcd60e51b815260206004820152602360248201527f4f72646572206d75737420626520696e20612070726f63657373696e6720737460448201527f617465000000000000000000000000000000000000000000000000000000000060648201526084016106e5565b60198101805460ff1916871515908117909155600182015460405191825288916001600160a01b03909116907fb10fd7c76991a3f5a6ddad3affbfd91cba71af0ecf74de0aea2f04655f869133906020015b60405180910390a350505050505050565b6000818152600080516020615a9983398151915260205260408120829150600030600483810154604051634e6e04f760e01b8152918201526001600160a01b039190911690634e6e04f79060240160206040518083038186803b15801561086157600080fd5b505afa158015610875573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610899919061583a565b905060003060405163071ddd6760e11b81526001600160a01b0384811660048301529190911690630e3bbace9060240160206040518083038186803b1580156108e157600080fd5b505afa1580156108f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610919919061583a565b90506001600160a01b038116331461097d5760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920617661696c61626c6520666f7220616374696f6e206163636f756e6044820152601d60fa1b60648201526084016106e5565b610986856129ec565b156109f95760405162461bcd60e51b815260206004820152602c60248201527f436f6d706c65746564206f726465722063616e27742062652072657475726e6560448201527f6420746f2070726f63657373000000000000000000000000000000000000000060648201526084016106e5565b610a0285611869565b610a4e5760405162461bcd60e51b815260206004820152601960248201527f4f72646572206861736e2774206265656e20737461727465640000000000000060448201526064016106e5565b6000858152600080516020615a99833981519152602052604090206008810154610a7c9060ff166001613c36565b610aed5760405162461bcd60e51b8152602060048201526024808201527f4e6f7420616c6c6f77656420746f207365742050726f63657373696e6720737460448201527f617475730000000000000000000000000000000000000000000000000000000060648201526084016106e5565b610b0f81600f0142600282015560030180546001600160a01b03191633179055565b610b1a866001613cd0565b6002810154610b2a574260028201555b505050505050565b6000838152600080516020615a9983398151915260205260408120849150600030600483810154604051634e6e04f760e01b8152918201526001600160a01b039190911690634e6e04f79060240160206040518083038186803b158015610b9857600080fd5b505afa158015610bac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd0919061583a565b905060003060405163071ddd6760e11b81526001600160a01b0384811660048301529190911690630e3bbace9060240160206040518083038186803b158015610c1857600080fd5b505afa158015610c2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c50919061583a565b90506001600160a01b0381163314610cb45760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920617661696c61626c6520666f7220616374696f6e206163636f756e6044820152601d60fa1b60648201526084016106e5565b86610cbe81612a53565b610cfa5760405162461bcd60e51b815260206004820152600d60248201526c2ab735b737bbb71037b93232b960991b60448201526064016106e5565b610d03886129ec565b15610d505760405162461bcd60e51b815260206004820152601160248201527f416c726561647920636f6d706c6574656400000000000000000000000000000060448201526064016106e5565b6005876007811115610d6457610d64615660565b1480610d8157506004876007811115610d7f57610d7f615660565b145b80610d9d57506003876007811115610d9b57610d9b615660565b145b610e0f5760405162461bcd60e51b815260206004820152603560248201527f43616e20636f6d706c657465206f6e6c7920776974682073746174757320457260448201527f726f722c2043616e63656c6564206f7220446f6e65000000000000000000000060648201526084016106e5565b6000888152600080516020615a9983398151915260205260409020600881015460019060ff166007811115610e4657610e46615660565b1480610e6a57506002600882015460ff166007811115610e6857610e68615660565b145b610edc5760405162461bcd60e51b815260206004820152602d60248201527f43616e277420636f6d706c657465206265666f72652070726f63657373696e6760448201527f206f722063616e63656c696e670000000000000000000000000000000000000060648201526084016106e5565b610efe81600f0142600282015560030180546001600160a01b03191633179055565b8651610f1390600c83019060208a0190614ff1565b506005886007811115610f2857610f28615660565b1415610f405760138101805461ff0019166101001790555b6003886007811115610f5457610f54615660565b1415610ffc576002600882015460ff166007811115610f7557610f75615660565b14610fc25760405162461bcd60e51b815260206004820181905260248201527f4f72646572206d75737420626520696e2063616e63656c696e6720737461746560448201526064016106e5565b6000600e82015460ff166003811115610fdd57610fdd615660565b14610ff157601a810154600d820155610ffc565b600d810154601a8201555b6110068989613cd0565b6110248960058a600781111561101e5761101e615660565b14613d53565b306004808301546040516336dac04f60e21b81529182018c905260248201526001600160a01b03919091169063db6b013c90604401600060405180830381600087803b15801561107357600080fd5b505af1158015611087573d6000803e3d6000fd5b50505050505050505050505050565b6000818152600080516020615a998339815191526020526040902060018101548291906001600160a01b031633146111105760405162461bcd60e51b815260206004820152601b60248201527f417661696c61626c65206f6e6c7920666f7220636f6e73756d6572000000000060448201526064016106e5565b6000838152600080516020615a99833981519152602052604090204260118201556012810180546001600160a01b0319163317905561114e846129ec565b156111a55760405162461bcd60e51b815260206004820152602160248201527f436f6d706c65746564206f726465722063616e27742062652063616e63656c656044820152601960fa1b60648201526084016106e5565b6002600882015460ff1660078111156111c0576111c0615660565b141561120e5760405162461bcd60e51b815260206004820152601160248201527f416c72656164792063616e63656c696e6700000000000000000000000000000060448201526064016106e5565b6002810154158015906112de57611226856002613cd0565b306004838101546002850154600d8601546040517fb98c9f3e00000000000000000000000000000000000000000000000000000000815293840192909252602483015260448201526001600160a01b03919091169063b98c9f3e9060640160206040518083038186803b15801561129c57600080fd5b505afa1580156112b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d49190615857565b600d8301556112f8565b6112e9856003613cd0565b6000600d8301819055601a8301555b306004808401546040516336dac04f60e21b815291820188905260248201526001600160a01b03919091169063db6b013c90604401600060405180830381600087803b15801561134757600080fd5b505af115801561135b573d6000803e3d6000fd5b505050505050505050565b6000828152600080516020615a9983398151915260205260408120839150600030600483810154604051634e6e04f760e01b8152918201526001600160a01b039190911690634e6e04f79060240160206040518083038186803b1580156113cc57600080fd5b505afa1580156113e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611404919061583a565b905060003060405163071ddd6760e11b81526001600160a01b0384811660048301529190911690630e3bbace9060240160206040518083038186803b15801561144c57600080fd5b505afa158015611460573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611484919061583a565b90506001600160a01b03811633146114e85760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920617661696c61626c6520666f7220616374696f6e206163636f756e6044820152601d60fa1b60648201526084016106e5565b6114f186613df9565b6115635760405162461bcd60e51b815260206004820152602e60248201527f4f72646572207072696365206d757374206265206368616e676520696e20707260448201527f6f63657373696e6720737461746500000000000000000000000000000000000060648201526084016106e5565b6000868152600080516020615a99833981519152602052604090204260118201556012810180546001600160a01b03191633179055600d810186905560405186815287907fddcfcd158ba340cec1297a0d825aaf047af03d3fabcc01b151a6e1d09a7160f59060200160405180910390a250505050505050565b6000818152600080516020615a9983398151915260205260408120606091906003810180546040805160208084028201810190925282815293945083018282801561164757602002820191906000526020600020905b815481526020019060010190808311611633575b5050505050915050919050565b6000818152600080516020615a998339815191526020526040902060018101548291906001600160a01b031633146116ce5760405162461bcd60e51b815260206004820152601b60248201527f417661696c61626c65206f6e6c7920666f7220636f6e73756d6572000000000060448201526064016106e5565b6000838152600080516020615a9983398151915260205260409020600881015460079060ff168181111561170457611704615660565b146117515760405162461bcd60e51b815260206004820152601760248201527f4f72646572206d7573742062652073757370656e64656400000000000000000060448201526064016106e5565b61177381600f0142600282015560030180546001600160a01b03191633179055565b601781015480611784576000611787565b60065b60088301805460ff191660018360078111156117a5576117a5615660565b0217905550604051859033907fe83be2bd6985a0345b14c74f91632c816560fb0543defd73982467563c4b598990600090a35050505050565b604080516080810182526000808252602082018190529181018290526060810182905290611824836000908152600080516020615a998339815191526020526040902090565b60408051608081018252600f830154815260108301546001600160a01b0390811660208301526011840154928201929092526012909201541660608201529392505050565b6000818152600080516020615a99833981519152602052604081206000600882015460ff16600781111561189f5761189f615660565b14806118c4575060015b600882015460ff1660078111156118c2576118c2615660565b145b9392505050565b33308551604051634202334f60e01b815260048101919091526001600160a01b0383811660248301529190911690634202334f9060440160206040518083038186803b15801561191a57600080fd5b505afa15801561192e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119529190615870565b61198c5760405162461bcd60e51b815260206004820152600b60248201526a139bdd08185b1b1bddd95960aa1b60448201526064016106e5565b8451604051631e5dd86b60e01b81523091631e5dd86b916119b3919060009060040161588d565b60206040518083038186803b1580156119cb57600080fd5b505afa1580156119df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a039190615870565b15611a505760405162461bcd60e51b815260206004820181905260248201527f4f6666657220646973616c6c6f77207374616e64616c6f6e65206f726465727360448201526064016106e5565b84516040516308e161a160e21b81526004810191909152600090309063238586849060240160206040518083038186803b158015611a8d57600080fd5b505afa158015611aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac59190615857565b905080851015611ad3578094505b60405163897ce7cf60e01b8152600090309063897ce7cf90611af99084906004016158b1565b60206040518083038186803b158015611b1157600080fd5b505afa158015611b25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b499190615857565b905080861015611b57578095505b611b5f613ef8565b604051636eb1769f60e11b81526001600160a01b038581166004830152306024830152919091169063dd62ed3e9060440160206040518083038186803b158015611ba857600080fd5b505afa158015611bbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be09190615857565b861115611c3b5760405162461bcd60e51b8152602060048201526024808201527f416c6c6f77656420746f6b656e73206c657373207468616e20686f6c644465706044820152631bdcda5d60e21b60648201526084016106e5565b611c43613ef8565b6040516323b872dd60e01b81526001600160a01b0385811660048301523060248301526044820189905291909116906323b872dd90606401602060405180830381600087803b158015611c9557600080fd5b505af1158015611ca9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccd9190615870565b50600080611cdc898989613f70565b601881018a90558a51604051630624204f60e01b8152600481019190915291935091503090630624204f9060240160206040518083038186803b158015611d2257600080fd5b505afa158015611d36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5a9190615870565b15611d6d57611d6882614633565b611dd5565b30895160405163d7208bb160e01b81526004810185905260248101919091526001600160a01b03919091169063d7208bb190604401600060405180830381600087803b158015611dbc57600080fd5b505af1158015611dd0573d6000803e3d6000fd5b505050505b885160405183815287906001600160a01b038816907fcdad6ab97fde7ccd3b74637bbb09ac75c9a4bf8b5684d210c9e61869bc67ac9b9060200160405180910390a4505050505050505050565b6000818152600080516020615a9983398151915260205260409020601381015460ff1615611e925760405162461bcd60e51b815260206004820152601860248201527f4368616e676520616c72656164792077697468647261776e000000000000000060448201526064016106e5565b60018101546001600160a01b03163314611f145760405162461bcd60e51b815260206004820152602160248201527f417661696c61626c65206f6e6c7920666f72204f7264657220636f6e73756d6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084016106e5565b60006002600883015460ff166007811115611f3157611f31615660565b148015611fb7575030600483810154604051634221048560e11b8152918201526001600160a01b039190911690638442090a9060240160206040518083038186803b158015611f7f57600080fd5b505afa158015611f93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb79190615870565b9050611fc2836129ec565b80611fca5750805b6120275760405162461bcd60e51b815260206004820152602860248201527f57697468647261776e20617661696c61626c65207768656e206f7264657220636044820152671bdb5c1b195d195960c21b60648201526084016106e5565b6000811561217c5760005b600b84015481101561217a57600b840180546000919083908110612058576120586158c4565b600091825260209091200154604051633835b0d360e01b8152600481018290529091506001903090633835b0d39060240160206040518083038186803b1580156120a157600080fd5b505afa1580156120b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d991906158da565b60038111156120ea576120ea615660565b1415612167576040516308e161a160e21b815260048101829052309063238586849060240160206040518083038186803b15801561212757600080fd5b505afa15801561213b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215f9190615857565b92505061217a565b508061217281615911565b915050612032565b505b6013830154600090610100900460ff16156121985760006121a8565b8184601a01546121a8919061592c565b905080846018015410156121fe5760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f756768206465706f736974000000000000000000000000000060448201526064016106e5565b60008185601801546122109190615944565b905061221a613ef8565b60018601546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201526024810184905291169063a9059cbb90604401602060405180830381600087803b15801561228257600080fd5b505af1158015612296573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ba9190615870565b50808560180160008282546122cf9190615944565b909155505060138501805460ff19166001179055604051869033907ff2104e05a949a0a0c1f4b384977e9a631ddeccc6a9f14f878ca3d0510c763601906123199085815260200190565b60405180910390a3505050505050565b612332836129ec565b1561237f5760405162461bcd60e51b815260206004820152601960248201527f506172656e74206f7264657220697320636f6d706c657465640000000000000060448201526064016106e5565b6000838152600080516020615a99833981519152602052604081209050600030600483810154604051634e6e04f760e01b8152918201526001600160a01b039190911690634e6e04f79060240160206040518083038186803b1580156123e457600080fd5b505afa1580156123f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061241c919061583a565b905060003060405163071ddd6760e11b81526001600160a01b0384811660048301529190911690630e3bbace9060240160206040518083038186803b15801561246457600080fd5b505afa158015612478573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061249c919061583a565b905060006124a987611869565b90508080156124c05750336001600160a01b038316145b806124e05750801580156124e0575060018401546001600160a01b031633145b61252c5760405162461bcd60e51b815260206004820152600d60248201527f4163636573732064656e6965640000000000000000000000000000000000000060448201526064016106e5565b308651604051634202334f60e01b815260048101919091523360248201526001600160a01b039190911690634202334f9060440160206040518083038186803b15801561257857600080fd5b505afa15801561258c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125b09190615870565b6125ea5760405162461bcd60e51b815260206004820152600b60248201526a139bdd08185b1b1bddd95960aa1b60448201526064016106e5565b8551604051636165696f60e01b815260048101919091526000903090636165696f9060240160206040518083038186803b15801561262757600080fd5b505afa15801561263b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061265f919061595b565b9050600185601401600083600281111561267b5761267b615660565b600281111561268c5761268c615660565b815260200190815260200160002060008282546126a9919061592c565b909155505086516126bc90869083614698565b505060008460400151600014156127445785516040516308e161a160e21b81526004810191909152309063238586849060240160206040518083038186803b15801561270757600080fd5b505afa15801561271b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273f9190615857565b61274a565b84604001515b90506000808061275b898585613f70565b6001808a015481830180546001600160a01b0319166001600160a01b039092169190911790558c825560038a01805491820181556000908152602090200182905590925090506127c3600f880142600282015560030180546001600160a01b03191633179055565b83876018015410156128175760405162461bcd60e51b815260206004820152601f60248201527f4e6f7420656e6f75676820706172656e74206f72646572206465706f7369740060448201526064016106e5565b8387601801600082825461282b9190615944565b9250508190555083816018016000828254612846919061592c565b909155505087511561288357600082815260168801602052604081206001908190556017890180549192909161287d90849061592c565b90915550505b8851602089015160405133907fcdad6ab97fde7ccd3b74637bbb09ac75c9a4bf8b5684d210c9e61869bc67ac9b906128be9087815260200190565b60405180910390a46040518a9083907f862f137e7eeb5c8accaf91684d1f4344b5cdd331f887278389821125e4a1dab990600090a38851604051630624204f60e01b815260048101919091523090630624204f9060240160206040518083038186803b15801561292d57600080fd5b505afa158015612941573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129659190615870565b156129785761297382614633565b6129e0565b30895160405163d7208bb160e01b81526004810185905260248101919091526001600160a01b03919091169063d7208bb190604401600060405180830381600087803b1580156129c757600080fd5b505af11580156129db573d6000803e3d6000fd5b505050505b50505050505050505050565b6000818152600080516020615a99833981519152602052604081206004600882015460ff166007811115612a2257612a22615660565b1480612a4657506005600882015460ff166007811115612a4457612a44615660565b145b806118c4575060036118a9565b60007ff68437791109705d2e300a0b0cfc858fedffc7438da1d9bf937e2f34afa0df7682158015906118c457505490911115919050565b6000612a94615075565b6040805180820190915260608152600060208201526000612acd856000908152600080516020615a998339815191526020526040902090565b90508060010160009054906101000a90046001600160a01b03168160040182600c01816040518060c001604052908160008201548152602001600182018054612b159061597c565b80601f0160208091040260200160405190810160405280929190818152602001828054612b419061597c565b8015612b8e5780601f10612b6357610100808354040283529160200191612b8e565b820191906000526020600020905b815481529060010190602001808311612b7157829003601f168201915b50505050508152602001600282018054612ba79061597c565b80601f0160208091040260200160405190810160405280929190818152602001828054612bd39061597c565b8015612c205780601f10612bf557610100808354040283529160200191612c20565b820191906000526020600020905b815481529060010190602001808311612c0357829003601f168201915b50505050508152602001600382018054612c399061597c565b80601f0160208091040260200160405190810160405280929190818152602001828054612c659061597c565b8015612cb25780601f10612c8757610100808354040283529160200191612cb2565b820191906000526020600020905b815481529060010190602001808311612c9557829003601f168201915b5050509183525050600482015460209091019060ff166007811115612cd957612cd9615660565b6007811115612cea57612cea615660565b8152602001600582016040518060600160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015612d5757602002820191906000526020600020905b815481526020019060010190808311612d43575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015612daf57602002820191906000526020600020905b815481526020019060010190808311612d9b575b50505050508152505081525050915080604051806040016040529081600082018054612dda9061597c565b80601f0160208091040260200160405190810160405280929190818152602001828054612e069061597c565b8015612e535780601f10612e2857610100808354040283529160200191612e53565b820191906000526020600020905b815481529060010190602001808311612e3657829003601f168201915b505050505081526020016001820154815250509050935093509350509193909250565b6000828152600080516020615a9983398151915260205260408120839150600030600483810154604051634e6e04f760e01b8152918201526001600160a01b039190911690634e6e04f79060240160206040518083038186803b158015612edc57600080fd5b505afa158015612ef0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f14919061583a565b905060003060405163071ddd6760e11b81526001600160a01b0384811660048301529190911690630e3bbace9060240160206040518083038186803b158015612f5c57600080fd5b505afa158015612f70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f94919061583a565b90506001600160a01b0381163314612ff85760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920617661696c61626c6520666f7220616374696f6e206163636f756e6044820152601d60fa1b60648201526084016106e5565b6000868152600080516020615a998339815191526020526040902061301c87613df9565b61308e5760405162461bcd60e51b815260206004820152603060248201527f5370656e74206465706f736974206d757374206265206368616e676520696e2060448201527f70726f63657373696e672073746174650000000000000000000000000000000060648201526084016106e5565b80601801548611156131085760405162461bcd60e51b815260206004820152603860248201527f4465706f736974207370656e74206d757374206265206c657373207468616e2060448201527f6f7220657175616c20746f20686f6c64206465706f736974000000000000000060648201526084016106e5565b601a8101869055600181015460405187815288916001600160a01b0316907f25d1f8deb5c0aaa3f1c70a4e07b3ad34335ee864f47de8c0dca68a7c91dd0542906020016107ea565b6000818152600080516020615a99833981519152602052604081209050600030600483810154604051634e6e04f760e01b8152918201526001600160a01b039190911690634e6e04f79060240160206040518083038186803b1580156131b557600080fd5b505afa1580156131c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131ed919061583a565b90506000306040517f0cc079f30000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301529190911690630cc079f39060240160206040518083038186803b15801561324e57600080fd5b505afa158015613262573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613286919061583a565b60405163897ce7cf60e01b8152909150600090309063897ce7cf906132b0906001906004016158b1565b60206040518083038186803b1580156132c857600080fd5b505afa1580156132dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133009190615857565b601a850154909150613311866129ec565b61336e5760405162461bcd60e51b815260206004820152602860248201527f57697468647261776e20617661696c61626c65207768656e206f7264657220636044820152671bdb5c1b195d195960c21b60648201526084016106e5565b336001600160a01b038416146133ec5760405162461bcd60e51b815260206004820152603160248201527f417661696c61626c65206f6e6c7920666f722070726f766964657220746f6b6560448201527f6e2072656369766572206163636f756e7400000000000000000000000000000060648201526084016106e5565b6013850154610100900460ff16156134465760405162461bcd60e51b815260206004820152601860248201527f50726f66697420616c72656164792077697468647261776e000000000000000060448201526064016106e5565b61344e613ef8565b6040517f095ea7b3000000000000000000000000000000000000000000000000000000008152306004820152602481018390526001600160a01b03919091169063095ea7b390604401602060405180830381600087803b1580156134b157600080fd5b505af11580156134c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134e99190615870565b50306040517f2ee409080000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018490529190911690632ee4090890604401600060405180830381600087803b15801561355057600080fd5b505af1158015613564573d6000803e3d6000fd5b5050505061356f3090565b6001600160a01b031663d719a90d60018584866040518563ffffffff1660e01b81526004016135a194939291906159b7565b600060405180830381600087803b1580156135bb57600080fd5b505af11580156135cf573d6000803e3d6000fd5b50505050808560180160008282546135e79190615944565b909155505060138501805461ff001916610100179055604051869033907fe2350354b45acad228120b59d977f2e487571e8d75fb3b74252a1034464449b8906123199085815260200190565b8161363d81612a53565b6136795760405162461bcd60e51b815260206004820152600d60248201526c2ab735b737bbb71037b93232b960991b60448201526064016106e5565b6000838152600080516020615a9983398151915260205260409020339061369f856129ec565b1580156136c557506002600882015460ff1660078111156136c2576136c2615660565b14155b61371b5760405162461bcd60e51b815260206004820152602160248201527f436f6d706c65746564206f726465722063616e277420626520726566696c6c656044820152601960fa1b60648201526084016106e5565b60018101546001600160a01b0383811691161461377a5760405162461bcd60e51b815260206004820152600e60248201527f4f776e6572206d69736d6174636800000000000000000000000000000000000060448201526064016106e5565b613782613ef8565b604051636eb1769f60e11b81526001600160a01b038481166004830152306024830152919091169063dd62ed3e9060440160206040518083038186803b1580156137cb57600080fd5b505afa1580156137df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138039190615857565b8411156138785760405162461bcd60e51b815260206004820152602660248201527f416c6c6f77656420746f6b656e73206c657373207468616e20726566696c6c2060448201527f616d6f756e74000000000000000000000000000000000000000000000000000060648201526084016106e5565b613880613ef8565b6040516323b872dd60e01b81526001600160a01b0384811660048301523060248301526044820187905291909116906323b872dd90606401602060405180830381600087803b1580156138d257600080fd5b505af11580156138e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061390a9190615870565b508381601801600082825461391f919061592c565b909155505060405184815285906001600160a01b038416907f5dd58c11f2973d8fca72f1cffb326b5af815e81232ff1e581a7d534344fad71f9060200160405180910390a35050505050565b6000828152600080516020615a9983398151915260205260408120839150600030600483810154604051634e6e04f760e01b8152918201526001600160a01b039190911690634e6e04f79060240160206040518083038186803b1580156139d157600080fd5b505afa1580156139e5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a09919061583a565b905060003060405163071ddd6760e11b81526001600160a01b0384811660048301529190911690630e3bbace9060240160206040518083038186803b158015613a5157600080fd5b505afa158015613a65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a89919061583a565b90506001600160a01b0381163314613aed5760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920617661696c61626c6520666f7220616374696f6e206163636f756e6044820152601d60fa1b60648201526084016106e5565b6000868152600080516020615a9983398151915260205260409020600881015460019060ff166007811115613b2457613b24615660565b1480613b4857506002600882015460ff166007811115613b4657613b46615660565b145b613bba5760405162461bcd60e51b815260206004820152603060248201527f4f72646572206d75737420626520696e20612070726f63657373696e67206f7260448201527f2063616e63656c696e672073746174650000000000000000000000000000000060648201526084016106e5565b613bdc81600f0142600282015560030180546001600160a01b03191633179055565b8551613bf190600c8301906020890190614ff1565b50600181015460405188916001600160a01b0316907fc3727ad3658a9131981b1b617e2928362ba398c4c5e7f3044ad2cadd44325568906107ea90600c8601906159f0565b6000806002846007811115613c4d57613c4d615660565b148015613c6b57506003836007811115613c6957613c69615660565b145b9050600080856007811115613c8257613c82615660565b1480613c9f57506001856007811115613c9d57613c9d615660565b145b8015613cbc57506001846007811115613cba57613cba615660565b145b90508180613cc75750805b95945050505050565b6000828152600080516020615a998339815191526020526040902060088101805483919060ff19166001836007811115613d0c57613d0c615660565b0217905550816007811115613d2357613d23615660565b60405184907fd9a86b644eb5f5b43cc8a700849852481080361c7a4b00ba646d1b46c5585f9590600090a3505050565b6000828152600080516020615a99833981519152602052604090208054613d7957505050565b80546000908152600080516020615a998339815191526020526040812060008581526016820160205260408120546017830180549394509092839290613dc0908490615944565b9091555084905080613dd457506017820154155b15613df2578254613df29085613deb576000614eec565b6005614eec565b5050505050565b6000818152600080516020615a99833981519152602052604081206001600882015460ff166007811115613e2f57613e2f615660565b1415613e3e5750600192915050565b6002600882015460ff166007811115613e5957613e59615660565b148015613ee1575030600482810154604051634221048560e11b8152918201526001600160a01b039190911690638442090a9060240160206040518083038186803b158015613ea757600080fd5b505afa158015613ebb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613edf9190615870565b155b15613eef5750600192915050565b50600092915050565b6000306001600160a01b03166321df0da76040518163ffffffff1660e01b815260040160206040518083038186803b158015613f3357600080fd5b505afa158015613f47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f6b919061583a565b905090565b8251604051634e6e04f760e01b815260048101919091526000908190339082903090634e6e04f79060240160206040518083038186803b158015613fb357600080fd5b505afa158015613fc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613feb919061583a565b8751604051633835b0d360e01b815260048101919091529091506000903090633835b0d39060240160206040518083038186803b15801561402b57600080fd5b505afa15801561403f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061406391906158da565b905060008082600381111561407a5761407a615660565b8a516040517fe51334fb000000000000000000000000000000000000000000000000000000008152600481019190915291149150309063e51334fb9060240160206040518083038186803b1580156140d157600080fd5b505afa1580156140e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141099190615870565b6141555760405162461bcd60e51b815260206004820152601460248201527f4f66666572206d7573742062652061637469766500000000000000000000000060448201526064016106e5565b306040517fded116690000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152919091169063ded116699060240160206040518083038186803b1580156141b257600080fd5b505afa1580156141c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141ea9190615870565b6142425760405162461bcd60e51b8152602060048201526024808201527f4e6f7420656e6f7567682070726f7669646572207365637572697479206465706044820152631bdcda5d60e21b60648201526084016106e5565b8015806142d7575088516040517f3d8e40e200000000000000000000000000000000000000000000000000000000815260048101919091523090633d8e40e29060240160206040518083038186803b15801561429d57600080fd5b505afa1580156142b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142d59190615870565b155b6143485760405162461bcd60e51b8152602060048201526024808201527f544545206f666665722062656e63686d61726b206d757374206265207665726960448201527f666965640000000000000000000000000000000000000000000000000000000060648201526084016106e5565b6000614352614fb2565b6000818152600080516020615a9983398151915260205260408120919250906001810180546001600160a01b0319166001600160a01b0389161790558b51600482019081556020808e015180519394508e936143b49260058701920190614ff1565b50604082015180516143d0916002840191602090910190614ff1565b50606082015180516143ec916003840191602090910190614ff1565b50608082015160048201805460ff1916600183600781111561441057614410615660565b021790555060a0820151805160058301908155602080830151805161443b92600687019201906150dd565b50604082015180516144579160028401916020909101906150dd565b505042600f8501819055601085018054336001600160a01b03199182168117909255601187019290925560128601805490921617905550614496915050565b600e8101805485919060ff191660018360038111156144b7576144b7615660565b0217905550600d81018a9055886144cf5760006144d2565b60075b60088201805460ff191660018360078111156144f0576144f0615660565b021790555060a08b01516020015151156146235760005b8b60a0015160200151518110156146215760008c60a00151602001518281518110614534576145346158c4565b60200260200101519050600183601501600061454d3090565b6001600160a01b0316633835b0d3856040518263ffffffff1660e01b815260040161457a91815260200190565b60206040518083038186803b15801561459257600080fd5b505afa1580156145a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145ca91906158da565b60038111156145db576145db615660565b60038111156145ec576145ec615660565b81526020019081526020016000206000828254614609919061592c565b9091555061461a9150829050615911565b9050614507565b505b909a909950975050505050505050565b61463e816004613cd0565b6000818152600080516020615a99833981519152602052604090204260118201556012810180546001600160a01b0319163317905560408051602081019182905260009081905261469391600c840191614ff1565b505050565b600030600485810154604051636165696f60e01b8152918201526001600160a01b039190911690636165696f9060240160206040518083038186803b1580156146e057600080fd5b505afa1580156146f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614718919061595b565b9050600281600281111561472e5761472e615660565b14156147a25760405162461bcd60e51b815260206004820152602b60248201527f5375626f726465727320666f7220276f7574707574272067726f75702069732060448201527f6e6f7420616c6c6f77656400000000000000000000000000000000000000000060648201526084016106e5565b60028260028111156147b6576147b6615660565b1480156147c65750600b84015415155b1561489d576000805b600b86015481101561482557600b8601805460009190839081106147f5576147f56158c4565b9060005260206000200154905085811415614814576001925050614825565b5061481e81615911565b90506147cf565b508061489b576040805162461bcd60e51b81526020600482015260248101919091527f4f6666657220646f6573206e6f74207361746973667920706172656e74206f7260448201527f6465722073656c65637465644f66666572732073706563696669636174696f6e60648201526084016106e5565b505b60008260028111156148b1576148b1615660565b1415614a7c576000805b600a860154811015614a0657600a8601805460009190839081106148e1576148e16158c4565b906000526020600020015490506148f53090565b60405163cc04f00360e01b815260048101889052602481018390526001600160a01b03919091169063cc04f0039060440160206040518083038186803b15801561493e57600080fd5b505afa158015614952573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906149769190615870565b6149e85760405162461bcd60e51b815260206004820152603c60248201527f4f66666572207265737472696374696f6e7320636f6e666c696374732077697460448201527f6820706172656e74206f726465722073706563696669636174696f6e0000000060648201526084016106e5565b858114156149f557600192505b506149ff81615911565b90506148bb565b5080614a7a5760405162461bcd60e51b815260206004820152603d60248201527f4f6666657220646f6573206e6f74207361746973667920706172656e74206f7260448201527f64657220696e7075744f66666572732073706563696669636174696f6e00000060648201526084016106e5565b505b604051631e5dd86b60e01b81523090631e5dd86b90614aa290869060029060040161588d565b60206040518083038186803b158015614aba57600080fd5b505afa158015614ace573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614af29190615870565b15614b865760026000908152601585016020526040902054614b865760405162461bcd60e51b815260206004820152604160248201527f506172656e74206f726465722073706563696669636174696f6e20646f65732060448201527f6e6f742073617469736679207375626f66666572207265737472696374696f6e6064820152607360f81b608482015260a4016106e5565b604051631e5dd86b60e01b81523090631e5dd86b90614bac90869060039060040161588d565b60206040518083038186803b158015614bc457600080fd5b505afa158015614bd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614bfc9190615870565b15614c905760036000908152601585016020526040902054614c905760405162461bcd60e51b815260206004820152604160248201527f506172656e74206f726465722073706563696669636174696f6e20646f65732060448201527f6e6f742073617469736679207375626f66666572207265737472696374696f6e6064820152607360f81b608482015260a4016106e5565b604051631e5dd86b60e01b81523090631e5dd86b90614cb690869060019060040161588d565b60206040518083038186803b158015614cce57600080fd5b505afa158015614ce2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614d069190615870565b15614d9a5760016000908152601585016020526040902054614d9a5760405162461bcd60e51b815260206004820152604160248201527f506172656e74206f726465722073706563696669636174696f6e20646f65732060448201527f6e6f742073617469736679207375626f66666572207265737472696374696f6e6064820152607360f81b608482015260a4016106e5565b604051631e5dd86b60e01b81523090631e5dd86b90614dc090869060009060040161588d565b60206040518083038186803b158015614dd857600080fd5b505afa158015614dec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614e109190615870565b15614ee6573060048086015460405163cc04f00360e01b815291820186905260248201526001600160a01b03919091169063cc04f0039060440160206040518083038186803b158015614e6257600080fd5b505afa158015614e76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614e9a9190615870565b614ee65760405162461bcd60e51b815260206004820152601f60248201527f4f6666657220646973616c6c6f7720706172656e7420544545206f666665720060448201526064016106e5565b50505050565b6000828152600080516020615a99833981519152602052604090204260118201556012810180546001600160a01b0319163317905560006005836007811115614f3757614f37615660565b14905060006006600884015460ff166007811115614f5757614f57615660565b148015614f7557506000846007811115614f7357614f73615660565b145b90508180614f805750805b15613df25760088301805485919060ff19166001836007811115614fa657614fa6615660565b02179055505050505050565b7ff68437791109705d2e300a0b0cfc858fedffc7438da1d9bf937e2f34afa0df7680546000919081908390614fe690615911565b918290555092915050565b828054614ffd9061597c565b90600052602060002090601f01602090048101928261501f5760008555615065565b82601f1061503857805160ff1916838001178555615065565b82800160010185558215615065579182015b8281111561506557825182559160200191906001019061504a565b50615071929150615117565b5090565b6040518060c0016040528060008152602001606081526020016060815260200160608152602001600060078111156150af576150af615660565b81526020016150d860405180606001604052806000815260200160608152602001606081525090565b905290565b828054828255906000526020600020908101928215615065579160200282018281111561506557825182559160200191906001019061504a565b5b808211156150715760008155600101615118565b60006020828403121561513e57600080fd5b5035919050565b801515811461515357600080fd5b50565b6000806040838503121561516957600080fd5b82359150602083013561517b81615145565b809150509250929050565b80356008811061519557600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff811182821017156151d3576151d361519a565b60405290565b60405160c0810167ffffffffffffffff811182821017156151d3576151d361519a565b604051601f8201601f1916810167ffffffffffffffff811182821017156152255761522561519a565b604052919050565b600082601f83011261523e57600080fd5b813567ffffffffffffffff8111156152585761525861519a565b61526b601f8201601f19166020016151fc565b81815284602083860101111561528057600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000606084860312156152b257600080fd5b833592506152c260208501615186565b9150604084013567ffffffffffffffff8111156152de57600080fd5b6152ea8682870161522d565b9150509250925092565b6000806040838503121561530757600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b8181101561534e57835183529284019291840191600101615332565b50909695505050505050565b600082601f83011261536b57600080fd5b8135602067ffffffffffffffff8211156153875761538761519a565b8160051b6153968282016151fc565b92835284810182019282810190878511156153b057600080fd5b83870192505b848310156153cf578235825291830191908301906153b6565b979650505050505050565b6000606082840312156153ec57600080fd5b6153f46151b0565b905081358152602082013567ffffffffffffffff8082111561541557600080fd5b6154218583860161535a565b6020840152604084013591508082111561543a57600080fd5b506154478482850161535a565b60408301525092915050565b600060c0828403121561546557600080fd5b61546d6151d9565b905081358152602082013567ffffffffffffffff8082111561548e57600080fd5b61549a8583860161522d565b602084015260408401359150808211156154b357600080fd5b6154bf8583860161522d565b604084015260608401359150808211156154d857600080fd5b6154e48583860161522d565b60608401526154f560808501615186565b608084015260a084013591508082111561550e57600080fd5b5061551b848285016153da565b60a08301525092915050565b6000806000806080858703121561553d57600080fd5b843567ffffffffffffffff81111561555457600080fd5b61556087828801615453565b94505060208501359250604085013561557881615145565b9396929550929360600135925050565b600080600083850360a081121561559e57600080fd5b84359350602085013567ffffffffffffffff8111156155bc57600080fd5b6155c887828801615453565b9350506060603f19820112156155dd57600080fd5b506155e66151b0565b60408501356155f481615145565b8152606085013560208201526080909401356040850152509093909250565b6000815180845260005b818110156156395760208185018101518683018201520161561d565b8181111561564b576000602083870101525b50601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b6008811061515357615153615660565b600081518084526020808501945080840160005b838110156156b65781518752958201959082019060010161569a565b509495945050505050565b60008151604084526156d66040850182615613565b602093840151949093019390935250919050565b6001600160a01b038416815260606020820152825160608201526000602084015160c06080840152615720610120840182615613565b90506040850151605f19808584030160a086015261573e8383615613565b925060608701519150808584030160c086015261575b8383615613565b92506080870151915061576d82615676565b8160e086015260a08701519150808584030161010086015250805182526020810151606060208401526157a36060840182615686565b90506040820151915082810360408401526157be8183615686565b9250505082810360408401526157d481856156c1565b9695505050505050565b600080604083850312156157f157600080fd5b82359150602083013567ffffffffffffffff81111561580f57600080fd5b61581b8582860161522d565b9150509250929050565b6001600160a01b038116811461515357600080fd5b60006020828403121561584c57600080fd5b81516118c481615825565b60006020828403121561586957600080fd5b5051919050565b60006020828403121561588257600080fd5b81516118c481615145565b82815260408101600483106158a4576158a4615660565b8260208301529392505050565b602081016158be83615676565b91905290565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156158ec57600080fd5b8151600481106118c457600080fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415615925576159256158fb565b5060010190565b6000821982111561593f5761593f6158fb565b500190565b600082821015615956576159566158fb565b500390565b60006020828403121561596d57600080fd5b8151600381106118c457600080fd5b600181811c9082168061599057607f821691505b602082108114156159b157634e487b7160e01b600052602260045260246000fd5b50919050565b60808101600386106159cb576159cb615660565b9481526001600160a01b03939093166020840152604083019190915260609091015290565b600060208083526000845481600182811c915080831680615a1257607f831692505b858310811415615a3057634e487b7160e01b85526022600452602485fd5b878601838152602001818015615a4d5760018114615a5e57615a89565b60ff19861682528782019650615a89565b60008b81526020902060005b86811015615a8357815484820152908501908901615a6a565b83019750505b5094999850505050505050505056fef68437791109705d2e300a0b0cfc858fedffc7438da1d9bf937e2f34afa0df77a2646970667358221220ac167d64b387133a1c13433cf78decf2b32f4091ef94480bda87c033d8233bbe64736f6c63430008090033",
|
|
981
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101c45760003560e01c8063920fba4f116100f9578063ba92763a11610097578063d54f807611610071578063d54f80761461051b578063d82a2bea1461052e578063df305d5914610541578063e0ab5ae01461055457600080fd5b8063ba92763a146104b6578063c9bd9ff0146104e6578063d09ef241146104f957600080fd5b8063a0a23849116100d3578063a0a2384914610436578063a90f3a2d14610469578063ab74e6421461047c578063b5b3b0511461048f57600080fd5b8063920fba4f146103e0578063975c4727146103f35780639959a56b1461042357600080fd5b80636eb691f4116101665780637a62b924116101405780637a62b9241461032d5780637d41fdd914610365578063835055c31461037857806388f4a6ba146103cd57600080fd5b80636eb691f41461029a578063752895dd146102ca578063779e423f146102ea57600080fd5b80632e5187fb116101a25780632e5187fb1461024e5780632f191ee814610261578063514fcac7146102745780635e9e78d01461028757600080fd5b80630f251358146101c957806319fed3981461020c5780631a02dc9214610221575b600080fd5b6101f96101d736600461512c565b6000908152600080516020615a9983398151915260205260409020600d015490565b6040519081526020015b60405180910390f35b61021f61021a366004615156565b610567565b005b6101f961022f36600461512c565b6000908152600080516020615a99833981519152602052604090205490565b61021f61025c36600461512c565b6107fb565b61021f61026f36600461529d565b610b32565b61021f61028236600461512c565b611096565b61021f6102953660046152f4565b611366565b6101f96102a836600461512c565b6000908152600080516020615a99833981519152602052604090206018015490565b6102dd6102d836600461512c565b6115dd565b6040516102039190615316565b61031d6102f836600461512c565b6000908152600080516020615a99833981519152602052604090206013015460ff1690565b6040519015158152602001610203565b61031d61033b36600461512c565b6000908152600080516020615a998339815191526020526040902060130154610100900460ff1690565b61021f61037336600461512c565b611654565b61038b61038636600461512c565b6117de565b6040516102039190815181526020808301516001600160a01b039081169183019190915260408084015190830152606092830151169181019190915260800190565b61031d6103db36600461512c565b611869565b61021f6103ee366004615527565b6118cb565b6101f961040136600461512c565b6000908152600080516020615a9983398151915260205260409020601a015490565b61021f61043136600461512c565b611e22565b61031d61044436600461512c565b6000908152600080516020615a99833981519152602052604090206019015460ff1690565b61021f610477366004615588565b612329565b61031d61048a36600461512c565b6129ec565b7ff68437791109705d2e300a0b0cfc858fedffc7438da1d9bf937e2f34afa0df76546101f9565b6101f96104c436600461512c565b6000908152600080516020615a99833981519152602052604090206002015490565b61031d6104f436600461512c565b612a53565b61050c61050736600461512c565b612a8a565b604051610203939291906156ea565b61021f6105293660046152f4565b612e76565b61021f61053c36600461512c565b613150565b61021f61054f3660046152f4565b613633565b61021f6105623660046157de565b61396b565b6000828152600080516020615a9983398151915260205260408120839150600030600483810154604051634e6e04f760e01b8152918201526001600160a01b039190911690634e6e04f79060240160206040518083038186803b1580156105cd57600080fd5b505afa1580156105e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610605919061583a565b905060003060405163071ddd6760e11b81526001600160a01b0384811660048301529190911690630e3bbace9060240160206040518083038186803b15801561064d57600080fd5b505afa158015610661573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610685919061583a565b90506001600160a01b03811633146106ee5760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920617661696c61626c6520666f7220616374696f6e206163636f756e6044820152601d60fa1b60648201526084015b60405180910390fd5b6000868152600080516020615a9983398151915260205260409020600881015460019060ff16600781111561072557610725615660565b146107985760405162461bcd60e51b815260206004820152602360248201527f4f72646572206d75737420626520696e20612070726f63657373696e6720737460448201527f617465000000000000000000000000000000000000000000000000000000000060648201526084016106e5565b60198101805460ff1916871515908117909155600182015460405191825288916001600160a01b03909116907fb10fd7c76991a3f5a6ddad3affbfd91cba71af0ecf74de0aea2f04655f869133906020015b60405180910390a350505050505050565b6000818152600080516020615a9983398151915260205260408120829150600030600483810154604051634e6e04f760e01b8152918201526001600160a01b039190911690634e6e04f79060240160206040518083038186803b15801561086157600080fd5b505afa158015610875573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610899919061583a565b905060003060405163071ddd6760e11b81526001600160a01b0384811660048301529190911690630e3bbace9060240160206040518083038186803b1580156108e157600080fd5b505afa1580156108f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610919919061583a565b90506001600160a01b038116331461097d5760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920617661696c61626c6520666f7220616374696f6e206163636f756e6044820152601d60fa1b60648201526084016106e5565b610986856129ec565b156109f95760405162461bcd60e51b815260206004820152602c60248201527f436f6d706c65746564206f726465722063616e27742062652072657475726e6560448201527f6420746f2070726f63657373000000000000000000000000000000000000000060648201526084016106e5565b610a0285611869565b610a4e5760405162461bcd60e51b815260206004820152601960248201527f4f72646572206861736e2774206265656e20737461727465640000000000000060448201526064016106e5565b6000858152600080516020615a99833981519152602052604090206008810154610a7c9060ff166001613c36565b610aed5760405162461bcd60e51b8152602060048201526024808201527f4e6f7420616c6c6f77656420746f207365742050726f63657373696e6720737460448201527f617475730000000000000000000000000000000000000000000000000000000060648201526084016106e5565b610b0f81600f0142600282015560030180546001600160a01b03191633179055565b610b1a866001613cd0565b6002810154610b2a574260028201555b505050505050565b6000838152600080516020615a9983398151915260205260408120849150600030600483810154604051634e6e04f760e01b8152918201526001600160a01b039190911690634e6e04f79060240160206040518083038186803b158015610b9857600080fd5b505afa158015610bac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd0919061583a565b905060003060405163071ddd6760e11b81526001600160a01b0384811660048301529190911690630e3bbace9060240160206040518083038186803b158015610c1857600080fd5b505afa158015610c2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c50919061583a565b90506001600160a01b0381163314610cb45760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920617661696c61626c6520666f7220616374696f6e206163636f756e6044820152601d60fa1b60648201526084016106e5565b86610cbe81612a53565b610cfa5760405162461bcd60e51b815260206004820152600d60248201526c2ab735b737bbb71037b93232b960991b60448201526064016106e5565b610d03886129ec565b15610d505760405162461bcd60e51b815260206004820152601160248201527f416c726561647920636f6d706c6574656400000000000000000000000000000060448201526064016106e5565b6005876007811115610d6457610d64615660565b1480610d8157506004876007811115610d7f57610d7f615660565b145b80610d9d57506003876007811115610d9b57610d9b615660565b145b610e0f5760405162461bcd60e51b815260206004820152603560248201527f43616e20636f6d706c657465206f6e6c7920776974682073746174757320457260448201527f726f722c2043616e63656c6564206f7220446f6e65000000000000000000000060648201526084016106e5565b6000888152600080516020615a9983398151915260205260409020600881015460019060ff166007811115610e4657610e46615660565b1480610e6a57506002600882015460ff166007811115610e6857610e68615660565b145b610edc5760405162461bcd60e51b815260206004820152602d60248201527f43616e277420636f6d706c657465206265666f72652070726f63657373696e6760448201527f206f722063616e63656c696e670000000000000000000000000000000000000060648201526084016106e5565b610efe81600f0142600282015560030180546001600160a01b03191633179055565b8651610f1390600c83019060208a0190614ff1565b506005886007811115610f2857610f28615660565b1415610f405760138101805461ff0019166101001790555b6003886007811115610f5457610f54615660565b1415610ffc576002600882015460ff166007811115610f7557610f75615660565b14610fc25760405162461bcd60e51b815260206004820181905260248201527f4f72646572206d75737420626520696e2063616e63656c696e6720737461746560448201526064016106e5565b6000600e82015460ff166003811115610fdd57610fdd615660565b14610ff157601a810154600d820155610ffc565b600d810154601a8201555b6110068989613cd0565b6110248960058a600781111561101e5761101e615660565b14613d53565b306004808301546040516336dac04f60e21b81529182018c905260248201526001600160a01b03919091169063db6b013c90604401600060405180830381600087803b15801561107357600080fd5b505af1158015611087573d6000803e3d6000fd5b50505050505050505050505050565b6000818152600080516020615a998339815191526020526040902060018101548291906001600160a01b031633146111105760405162461bcd60e51b815260206004820152601b60248201527f417661696c61626c65206f6e6c7920666f7220636f6e73756d6572000000000060448201526064016106e5565b6000838152600080516020615a99833981519152602052604090204260118201556012810180546001600160a01b0319163317905561114e846129ec565b156111a55760405162461bcd60e51b815260206004820152602160248201527f436f6d706c65746564206f726465722063616e27742062652063616e63656c656044820152601960fa1b60648201526084016106e5565b6002600882015460ff1660078111156111c0576111c0615660565b141561120e5760405162461bcd60e51b815260206004820152601160248201527f416c72656164792063616e63656c696e6700000000000000000000000000000060448201526064016106e5565b6002810154158015906112de57611226856002613cd0565b306004838101546002850154600d8601546040517fb98c9f3e00000000000000000000000000000000000000000000000000000000815293840192909252602483015260448201526001600160a01b03919091169063b98c9f3e9060640160206040518083038186803b15801561129c57600080fd5b505afa1580156112b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d49190615857565b600d8301556112f8565b6112e9856003613cd0565b6000600d8301819055601a8301555b306004808401546040516336dac04f60e21b815291820188905260248201526001600160a01b03919091169063db6b013c90604401600060405180830381600087803b15801561134757600080fd5b505af115801561135b573d6000803e3d6000fd5b505050505050505050565b6000828152600080516020615a9983398151915260205260408120839150600030600483810154604051634e6e04f760e01b8152918201526001600160a01b039190911690634e6e04f79060240160206040518083038186803b1580156113cc57600080fd5b505afa1580156113e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611404919061583a565b905060003060405163071ddd6760e11b81526001600160a01b0384811660048301529190911690630e3bbace9060240160206040518083038186803b15801561144c57600080fd5b505afa158015611460573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611484919061583a565b90506001600160a01b03811633146114e85760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920617661696c61626c6520666f7220616374696f6e206163636f756e6044820152601d60fa1b60648201526084016106e5565b6114f186613df9565b6115635760405162461bcd60e51b815260206004820152602e60248201527f4f72646572207072696365206d757374206265206368616e676520696e20707260448201527f6f63657373696e6720737461746500000000000000000000000000000000000060648201526084016106e5565b6000868152600080516020615a99833981519152602052604090204260118201556012810180546001600160a01b03191633179055600d810186905560405186815287907fddcfcd158ba340cec1297a0d825aaf047af03d3fabcc01b151a6e1d09a7160f59060200160405180910390a250505050505050565b6000818152600080516020615a9983398151915260205260408120606091906003810180546040805160208084028201810190925282815293945083018282801561164757602002820191906000526020600020905b815481526020019060010190808311611633575b5050505050915050919050565b6000818152600080516020615a998339815191526020526040902060018101548291906001600160a01b031633146116ce5760405162461bcd60e51b815260206004820152601b60248201527f417661696c61626c65206f6e6c7920666f7220636f6e73756d6572000000000060448201526064016106e5565b6000838152600080516020615a9983398151915260205260409020600881015460079060ff168181111561170457611704615660565b146117515760405162461bcd60e51b815260206004820152601760248201527f4f72646572206d7573742062652073757370656e64656400000000000000000060448201526064016106e5565b61177381600f0142600282015560030180546001600160a01b03191633179055565b601781015480611784576000611787565b60065b60088301805460ff191660018360078111156117a5576117a5615660565b0217905550604051859033907fe83be2bd6985a0345b14c74f91632c816560fb0543defd73982467563c4b598990600090a35050505050565b604080516080810182526000808252602082018190529181018290526060810182905290611824836000908152600080516020615a998339815191526020526040902090565b60408051608081018252600f830154815260108301546001600160a01b0390811660208301526011840154928201929092526012909201541660608201529392505050565b6000818152600080516020615a99833981519152602052604081206000600882015460ff16600781111561189f5761189f615660565b14806118c4575060015b600882015460ff1660078111156118c2576118c2615660565b145b9392505050565b33308551604051634202334f60e01b815260048101919091526001600160a01b0383811660248301529190911690634202334f9060440160206040518083038186803b15801561191a57600080fd5b505afa15801561192e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119529190615870565b61198c5760405162461bcd60e51b815260206004820152600b60248201526a139bdd08185b1b1bddd95960aa1b60448201526064016106e5565b8451604051631e5dd86b60e01b81523091631e5dd86b916119b3919060009060040161588d565b60206040518083038186803b1580156119cb57600080fd5b505afa1580156119df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a039190615870565b15611a505760405162461bcd60e51b815260206004820181905260248201527f4f6666657220646973616c6c6f77207374616e64616c6f6e65206f726465727360448201526064016106e5565b84516040516308e161a160e21b81526004810191909152600090309063238586849060240160206040518083038186803b158015611a8d57600080fd5b505afa158015611aa1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac59190615857565b905080851015611ad3578094505b60405163897ce7cf60e01b8152600090309063897ce7cf90611af99084906004016158b1565b60206040518083038186803b158015611b1157600080fd5b505afa158015611b25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b499190615857565b905080861015611b57578095505b611b5f613ef8565b604051636eb1769f60e11b81526001600160a01b038581166004830152306024830152919091169063dd62ed3e9060440160206040518083038186803b158015611ba857600080fd5b505afa158015611bbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be09190615857565b861115611c3b5760405162461bcd60e51b8152602060048201526024808201527f416c6c6f77656420746f6b656e73206c657373207468616e20686f6c644465706044820152631bdcda5d60e21b60648201526084016106e5565b611c43613ef8565b6040516323b872dd60e01b81526001600160a01b0385811660048301523060248301526044820189905291909116906323b872dd90606401602060405180830381600087803b158015611c9557600080fd5b505af1158015611ca9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccd9190615870565b50600080611cdc898989613f70565b601881018a90558a51604051630624204f60e01b8152600481019190915291935091503090630624204f9060240160206040518083038186803b158015611d2257600080fd5b505afa158015611d36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5a9190615870565b15611d6d57611d6882614633565b611dd5565b30895160405163d7208bb160e01b81526004810185905260248101919091526001600160a01b03919091169063d7208bb190604401600060405180830381600087803b158015611dbc57600080fd5b505af1158015611dd0573d6000803e3d6000fd5b505050505b885160405183815287906001600160a01b038816907fcdad6ab97fde7ccd3b74637bbb09ac75c9a4bf8b5684d210c9e61869bc67ac9b9060200160405180910390a4505050505050505050565b6000818152600080516020615a9983398151915260205260409020601381015460ff1615611e925760405162461bcd60e51b815260206004820152601860248201527f4368616e676520616c72656164792077697468647261776e000000000000000060448201526064016106e5565b60018101546001600160a01b03163314611f145760405162461bcd60e51b815260206004820152602160248201527f417661696c61626c65206f6e6c7920666f72204f7264657220636f6e73756d6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084016106e5565b60006002600883015460ff166007811115611f3157611f31615660565b148015611fb7575030600483810154604051634221048560e11b8152918201526001600160a01b039190911690638442090a9060240160206040518083038186803b158015611f7f57600080fd5b505afa158015611f93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb79190615870565b9050611fc2836129ec565b80611fca5750805b6120275760405162461bcd60e51b815260206004820152602860248201527f57697468647261776e20617661696c61626c65207768656e206f7264657220636044820152671bdb5c1b195d195960c21b60648201526084016106e5565b6000811561217c5760005b600b84015481101561217a57600b840180546000919083908110612058576120586158c4565b600091825260209091200154604051633835b0d360e01b8152600481018290529091506001903090633835b0d39060240160206040518083038186803b1580156120a157600080fd5b505afa1580156120b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d991906158da565b60038111156120ea576120ea615660565b1415612167576040516308e161a160e21b815260048101829052309063238586849060240160206040518083038186803b15801561212757600080fd5b505afa15801561213b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061215f9190615857565b92505061217a565b508061217281615911565b915050612032565b505b6013830154600090610100900460ff16156121985760006121a8565b8184601a01546121a8919061592c565b905080846018015410156121fe5760405162461bcd60e51b815260206004820152601260248201527f4e6f7420656e6f756768206465706f736974000000000000000000000000000060448201526064016106e5565b60008185601801546122109190615944565b905061221a613ef8565b60018601546040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201526024810184905291169063a9059cbb90604401602060405180830381600087803b15801561228257600080fd5b505af1158015612296573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ba9190615870565b50808560180160008282546122cf9190615944565b909155505060138501805460ff19166001179055604051869033907ff2104e05a949a0a0c1f4b384977e9a631ddeccc6a9f14f878ca3d0510c763601906123199085815260200190565b60405180910390a3505050505050565b612332836129ec565b1561237f5760405162461bcd60e51b815260206004820152601960248201527f506172656e74206f7264657220697320636f6d706c657465640000000000000060448201526064016106e5565b6000838152600080516020615a99833981519152602052604081209050600030600483810154604051634e6e04f760e01b8152918201526001600160a01b039190911690634e6e04f79060240160206040518083038186803b1580156123e457600080fd5b505afa1580156123f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061241c919061583a565b905060003060405163071ddd6760e11b81526001600160a01b0384811660048301529190911690630e3bbace9060240160206040518083038186803b15801561246457600080fd5b505afa158015612478573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061249c919061583a565b905060006124a987611869565b90508080156124c05750336001600160a01b038316145b806124e05750801580156124e0575060018401546001600160a01b031633145b61252c5760405162461bcd60e51b815260206004820152600d60248201527f4163636573732064656e6965640000000000000000000000000000000000000060448201526064016106e5565b308651604051634202334f60e01b815260048101919091523360248201526001600160a01b039190911690634202334f9060440160206040518083038186803b15801561257857600080fd5b505afa15801561258c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125b09190615870565b6125ea5760405162461bcd60e51b815260206004820152600b60248201526a139bdd08185b1b1bddd95960aa1b60448201526064016106e5565b8551604051636165696f60e01b815260048101919091526000903090636165696f9060240160206040518083038186803b15801561262757600080fd5b505afa15801561263b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061265f919061595b565b9050600185601401600083600281111561267b5761267b615660565b600281111561268c5761268c615660565b815260200190815260200160002060008282546126a9919061592c565b909155505086516126bc90869083614698565b505060008460400151600014156127445785516040516308e161a160e21b81526004810191909152309063238586849060240160206040518083038186803b15801561270757600080fd5b505afa15801561271b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273f9190615857565b61274a565b84604001515b90506000808061275b898585613f70565b6001808a015481830180546001600160a01b0319166001600160a01b039092169190911790558c825560038a01805491820181556000908152602090200182905590925090506127c3600f880142600282015560030180546001600160a01b03191633179055565b83876018015410156128175760405162461bcd60e51b815260206004820152601f60248201527f4e6f7420656e6f75676820706172656e74206f72646572206465706f7369740060448201526064016106e5565b8387601801600082825461282b9190615944565b9250508190555083816018016000828254612846919061592c565b909155505087511561288357600082815260168801602052604081206001908190556017890180549192909161287d90849061592c565b90915550505b8851602089015160405133907fcdad6ab97fde7ccd3b74637bbb09ac75c9a4bf8b5684d210c9e61869bc67ac9b906128be9087815260200190565b60405180910390a46040518a9083907f862f137e7eeb5c8accaf91684d1f4344b5cdd331f887278389821125e4a1dab990600090a38851604051630624204f60e01b815260048101919091523090630624204f9060240160206040518083038186803b15801561292d57600080fd5b505afa158015612941573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129659190615870565b156129785761297382614633565b6129e0565b30895160405163d7208bb160e01b81526004810185905260248101919091526001600160a01b03919091169063d7208bb190604401600060405180830381600087803b1580156129c757600080fd5b505af11580156129db573d6000803e3d6000fd5b505050505b50505050505050505050565b6000818152600080516020615a99833981519152602052604081206004600882015460ff166007811115612a2257612a22615660565b1480612a4657506005600882015460ff166007811115612a4457612a44615660565b145b806118c4575060036118a9565b60007ff68437791109705d2e300a0b0cfc858fedffc7438da1d9bf937e2f34afa0df7682158015906118c457505490911115919050565b6000612a94615075565b6040805180820190915260608152600060208201526000612acd856000908152600080516020615a998339815191526020526040902090565b90508060010160009054906101000a90046001600160a01b03168160040182600c01816040518060c001604052908160008201548152602001600182018054612b159061597c565b80601f0160208091040260200160405190810160405280929190818152602001828054612b419061597c565b8015612b8e5780601f10612b6357610100808354040283529160200191612b8e565b820191906000526020600020905b815481529060010190602001808311612b7157829003601f168201915b50505050508152602001600282018054612ba79061597c565b80601f0160208091040260200160405190810160405280929190818152602001828054612bd39061597c565b8015612c205780601f10612bf557610100808354040283529160200191612c20565b820191906000526020600020905b815481529060010190602001808311612c0357829003601f168201915b50505050508152602001600382018054612c399061597c565b80601f0160208091040260200160405190810160405280929190818152602001828054612c659061597c565b8015612cb25780601f10612c8757610100808354040283529160200191612cb2565b820191906000526020600020905b815481529060010190602001808311612c9557829003601f168201915b5050509183525050600482015460209091019060ff166007811115612cd957612cd9615660565b6007811115612cea57612cea615660565b8152602001600582016040518060600160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015612d5757602002820191906000526020600020905b815481526020019060010190808311612d43575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015612daf57602002820191906000526020600020905b815481526020019060010190808311612d9b575b50505050508152505081525050915080604051806040016040529081600082018054612dda9061597c565b80601f0160208091040260200160405190810160405280929190818152602001828054612e069061597c565b8015612e535780601f10612e2857610100808354040283529160200191612e53565b820191906000526020600020905b815481529060010190602001808311612e3657829003601f168201915b505050505081526020016001820154815250509050935093509350509193909250565b6000828152600080516020615a9983398151915260205260408120839150600030600483810154604051634e6e04f760e01b8152918201526001600160a01b039190911690634e6e04f79060240160206040518083038186803b158015612edc57600080fd5b505afa158015612ef0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f14919061583a565b905060003060405163071ddd6760e11b81526001600160a01b0384811660048301529190911690630e3bbace9060240160206040518083038186803b158015612f5c57600080fd5b505afa158015612f70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f94919061583a565b90506001600160a01b0381163314612ff85760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920617661696c61626c6520666f7220616374696f6e206163636f756e6044820152601d60fa1b60648201526084016106e5565b6000868152600080516020615a998339815191526020526040902061301c87613df9565b61308e5760405162461bcd60e51b815260206004820152603060248201527f5370656e74206465706f736974206d757374206265206368616e676520696e2060448201527f70726f63657373696e672073746174650000000000000000000000000000000060648201526084016106e5565b80601801548611156131085760405162461bcd60e51b815260206004820152603860248201527f4465706f736974207370656e74206d757374206265206c657373207468616e2060448201527f6f7220657175616c20746f20686f6c64206465706f736974000000000000000060648201526084016106e5565b601a8101869055600181015460405187815288916001600160a01b0316907f25d1f8deb5c0aaa3f1c70a4e07b3ad34335ee864f47de8c0dca68a7c91dd0542906020016107ea565b6000818152600080516020615a99833981519152602052604081209050600030600483810154604051634e6e04f760e01b8152918201526001600160a01b039190911690634e6e04f79060240160206040518083038186803b1580156131b557600080fd5b505afa1580156131c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131ed919061583a565b90506000306040517f0cc079f30000000000000000000000000000000000000000000000000000000081526001600160a01b0384811660048301529190911690630cc079f39060240160206040518083038186803b15801561324e57600080fd5b505afa158015613262573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613286919061583a565b60405163897ce7cf60e01b8152909150600090309063897ce7cf906132b0906001906004016158b1565b60206040518083038186803b1580156132c857600080fd5b505afa1580156132dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133009190615857565b601a850154909150613311866129ec565b61336e5760405162461bcd60e51b815260206004820152602860248201527f57697468647261776e20617661696c61626c65207768656e206f7264657220636044820152671bdb5c1b195d195960c21b60648201526084016106e5565b336001600160a01b038416146133ec5760405162461bcd60e51b815260206004820152603160248201527f417661696c61626c65206f6e6c7920666f722070726f766964657220746f6b6560448201527f6e2072656369766572206163636f756e7400000000000000000000000000000060648201526084016106e5565b6013850154610100900460ff16156134465760405162461bcd60e51b815260206004820152601860248201527f50726f66697420616c72656164792077697468647261776e000000000000000060448201526064016106e5565b61344e613ef8565b6040517f095ea7b3000000000000000000000000000000000000000000000000000000008152306004820152602481018390526001600160a01b03919091169063095ea7b390604401602060405180830381600087803b1580156134b157600080fd5b505af11580156134c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134e99190615870565b50306040517f2ee409080000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152602482018490529190911690632ee4090890604401600060405180830381600087803b15801561355057600080fd5b505af1158015613564573d6000803e3d6000fd5b5050505061356f3090565b6001600160a01b031663d719a90d60018584866040518563ffffffff1660e01b81526004016135a194939291906159b7565b600060405180830381600087803b1580156135bb57600080fd5b505af11580156135cf573d6000803e3d6000fd5b50505050808560180160008282546135e79190615944565b909155505060138501805461ff001916610100179055604051869033907fe2350354b45acad228120b59d977f2e487571e8d75fb3b74252a1034464449b8906123199085815260200190565b8161363d81612a53565b6136795760405162461bcd60e51b815260206004820152600d60248201526c2ab735b737bbb71037b93232b960991b60448201526064016106e5565b6000838152600080516020615a9983398151915260205260409020339061369f856129ec565b1580156136c557506002600882015460ff1660078111156136c2576136c2615660565b14155b61371b5760405162461bcd60e51b815260206004820152602160248201527f436f6d706c65746564206f726465722063616e277420626520726566696c6c656044820152601960fa1b60648201526084016106e5565b60018101546001600160a01b0383811691161461377a5760405162461bcd60e51b815260206004820152600e60248201527f4f776e6572206d69736d6174636800000000000000000000000000000000000060448201526064016106e5565b613782613ef8565b604051636eb1769f60e11b81526001600160a01b038481166004830152306024830152919091169063dd62ed3e9060440160206040518083038186803b1580156137cb57600080fd5b505afa1580156137df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138039190615857565b8411156138785760405162461bcd60e51b815260206004820152602660248201527f416c6c6f77656420746f6b656e73206c657373207468616e20726566696c6c2060448201527f616d6f756e74000000000000000000000000000000000000000000000000000060648201526084016106e5565b613880613ef8565b6040516323b872dd60e01b81526001600160a01b0384811660048301523060248301526044820187905291909116906323b872dd90606401602060405180830381600087803b1580156138d257600080fd5b505af11580156138e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061390a9190615870565b508381601801600082825461391f919061592c565b909155505060405184815285906001600160a01b038416907f5dd58c11f2973d8fca72f1cffb326b5af815e81232ff1e581a7d534344fad71f9060200160405180910390a35050505050565b6000828152600080516020615a9983398151915260205260408120839150600030600483810154604051634e6e04f760e01b8152918201526001600160a01b039190911690634e6e04f79060240160206040518083038186803b1580156139d157600080fd5b505afa1580156139e5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a09919061583a565b905060003060405163071ddd6760e11b81526001600160a01b0384811660048301529190911690630e3bbace9060240160206040518083038186803b158015613a5157600080fd5b505afa158015613a65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a89919061583a565b90506001600160a01b0381163314613aed5760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920617661696c61626c6520666f7220616374696f6e206163636f756e6044820152601d60fa1b60648201526084016106e5565b6000868152600080516020615a9983398151915260205260409020600881015460019060ff166007811115613b2457613b24615660565b1480613b4857506002600882015460ff166007811115613b4657613b46615660565b145b613bba5760405162461bcd60e51b815260206004820152603060248201527f4f72646572206d75737420626520696e20612070726f63657373696e67206f7260448201527f2063616e63656c696e672073746174650000000000000000000000000000000060648201526084016106e5565b613bdc81600f0142600282015560030180546001600160a01b03191633179055565b8551613bf190600c8301906020890190614ff1565b50600181015460405188916001600160a01b0316907fc3727ad3658a9131981b1b617e2928362ba398c4c5e7f3044ad2cadd44325568906107ea90600c8601906159f0565b6000806002846007811115613c4d57613c4d615660565b148015613c6b57506003836007811115613c6957613c69615660565b145b9050600080856007811115613c8257613c82615660565b1480613c9f57506001856007811115613c9d57613c9d615660565b145b8015613cbc57506001846007811115613cba57613cba615660565b145b90508180613cc75750805b95945050505050565b6000828152600080516020615a998339815191526020526040902060088101805483919060ff19166001836007811115613d0c57613d0c615660565b0217905550816007811115613d2357613d23615660565b60405184907fd9a86b644eb5f5b43cc8a700849852481080361c7a4b00ba646d1b46c5585f9590600090a3505050565b6000828152600080516020615a99833981519152602052604090208054613d7957505050565b80546000908152600080516020615a998339815191526020526040812060008581526016820160205260408120546017830180549394509092839290613dc0908490615944565b9091555084905080613dd457506017820154155b15613df2578254613df29085613deb576000614eec565b6005614eec565b5050505050565b6000818152600080516020615a99833981519152602052604081206001600882015460ff166007811115613e2f57613e2f615660565b1415613e3e5750600192915050565b6002600882015460ff166007811115613e5957613e59615660565b148015613ee1575030600482810154604051634221048560e11b8152918201526001600160a01b039190911690638442090a9060240160206040518083038186803b158015613ea757600080fd5b505afa158015613ebb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613edf9190615870565b155b15613eef5750600192915050565b50600092915050565b6000306001600160a01b03166321df0da76040518163ffffffff1660e01b815260040160206040518083038186803b158015613f3357600080fd5b505afa158015613f47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f6b919061583a565b905090565b8251604051634e6e04f760e01b815260048101919091526000908190339082903090634e6e04f79060240160206040518083038186803b158015613fb357600080fd5b505afa158015613fc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613feb919061583a565b8751604051633835b0d360e01b815260048101919091529091506000903090633835b0d39060240160206040518083038186803b15801561402b57600080fd5b505afa15801561403f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061406391906158da565b905060008082600381111561407a5761407a615660565b8a516040517fe51334fb000000000000000000000000000000000000000000000000000000008152600481019190915291149150309063e51334fb9060240160206040518083038186803b1580156140d157600080fd5b505afa1580156140e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141099190615870565b6141555760405162461bcd60e51b815260206004820152601460248201527f4f66666572206d7573742062652061637469766500000000000000000000000060448201526064016106e5565b306040517fded116690000000000000000000000000000000000000000000000000000000081526001600160a01b038581166004830152919091169063ded116699060240160206040518083038186803b1580156141b257600080fd5b505afa1580156141c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141ea9190615870565b6142425760405162461bcd60e51b8152602060048201526024808201527f4e6f7420656e6f7567682070726f7669646572207365637572697479206465706044820152631bdcda5d60e21b60648201526084016106e5565b8015806142d7575088516040517f3d8e40e200000000000000000000000000000000000000000000000000000000815260048101919091523090633d8e40e29060240160206040518083038186803b15801561429d57600080fd5b505afa1580156142b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142d59190615870565b155b6143485760405162461bcd60e51b8152602060048201526024808201527f544545206f666665722062656e63686d61726b206d757374206265207665726960448201527f666965640000000000000000000000000000000000000000000000000000000060648201526084016106e5565b6000614352614fb2565b6000818152600080516020615a9983398151915260205260408120919250906001810180546001600160a01b0319166001600160a01b0389161790558b51600482019081556020808e015180519394508e936143b49260058701920190614ff1565b50604082015180516143d0916002840191602090910190614ff1565b50606082015180516143ec916003840191602090910190614ff1565b50608082015160048201805460ff1916600183600781111561441057614410615660565b021790555060a0820151805160058301908155602080830151805161443b92600687019201906150dd565b50604082015180516144579160028401916020909101906150dd565b505042600f8501819055601085018054336001600160a01b03199182168117909255601187019290925560128601805490921617905550614496915050565b600e8101805485919060ff191660018360038111156144b7576144b7615660565b0217905550600d81018a9055886144cf5760006144d2565b60075b60088201805460ff191660018360078111156144f0576144f0615660565b021790555060a08b01516020015151156146235760005b8b60a0015160200151518110156146215760008c60a00151602001518281518110614534576145346158c4565b60200260200101519050600183601501600061454d3090565b6001600160a01b0316633835b0d3856040518263ffffffff1660e01b815260040161457a91815260200190565b60206040518083038186803b15801561459257600080fd5b505afa1580156145a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145ca91906158da565b60038111156145db576145db615660565b60038111156145ec576145ec615660565b81526020019081526020016000206000828254614609919061592c565b9091555061461a9150829050615911565b9050614507565b505b909a909950975050505050505050565b61463e816004613cd0565b6000818152600080516020615a99833981519152602052604090204260118201556012810180546001600160a01b0319163317905560408051602081019182905260009081905261469391600c840191614ff1565b505050565b600030600485810154604051636165696f60e01b8152918201526001600160a01b039190911690636165696f9060240160206040518083038186803b1580156146e057600080fd5b505afa1580156146f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614718919061595b565b9050600281600281111561472e5761472e615660565b14156147a25760405162461bcd60e51b815260206004820152602b60248201527f5375626f726465727320666f7220276f7574707574272067726f75702069732060448201527f6e6f7420616c6c6f77656400000000000000000000000000000000000000000060648201526084016106e5565b60028260028111156147b6576147b6615660565b1480156147c65750600b84015415155b1561489d576000805b600b86015481101561482557600b8601805460009190839081106147f5576147f56158c4565b9060005260206000200154905085811415614814576001925050614825565b5061481e81615911565b90506147cf565b508061489b576040805162461bcd60e51b81526020600482015260248101919091527f4f6666657220646f6573206e6f74207361746973667920706172656e74206f7260448201527f6465722073656c65637465644f66666572732073706563696669636174696f6e60648201526084016106e5565b505b60008260028111156148b1576148b1615660565b1415614a7c576000805b600a860154811015614a0657600a8601805460009190839081106148e1576148e16158c4565b906000526020600020015490506148f53090565b60405163cc04f00360e01b815260048101889052602481018390526001600160a01b03919091169063cc04f0039060440160206040518083038186803b15801561493e57600080fd5b505afa158015614952573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906149769190615870565b6149e85760405162461bcd60e51b815260206004820152603c60248201527f4f66666572207265737472696374696f6e7320636f6e666c696374732077697460448201527f6820706172656e74206f726465722073706563696669636174696f6e0000000060648201526084016106e5565b858114156149f557600192505b506149ff81615911565b90506148bb565b5080614a7a5760405162461bcd60e51b815260206004820152603d60248201527f4f6666657220646f6573206e6f74207361746973667920706172656e74206f7260448201527f64657220696e7075744f66666572732073706563696669636174696f6e00000060648201526084016106e5565b505b604051631e5dd86b60e01b81523090631e5dd86b90614aa290869060029060040161588d565b60206040518083038186803b158015614aba57600080fd5b505afa158015614ace573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614af29190615870565b15614b865760026000908152601585016020526040902054614b865760405162461bcd60e51b815260206004820152604160248201527f506172656e74206f726465722073706563696669636174696f6e20646f65732060448201527f6e6f742073617469736679207375626f66666572207265737472696374696f6e6064820152607360f81b608482015260a4016106e5565b604051631e5dd86b60e01b81523090631e5dd86b90614bac90869060039060040161588d565b60206040518083038186803b158015614bc457600080fd5b505afa158015614bd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614bfc9190615870565b15614c905760036000908152601585016020526040902054614c905760405162461bcd60e51b815260206004820152604160248201527f506172656e74206f726465722073706563696669636174696f6e20646f65732060448201527f6e6f742073617469736679207375626f66666572207265737472696374696f6e6064820152607360f81b608482015260a4016106e5565b604051631e5dd86b60e01b81523090631e5dd86b90614cb690869060019060040161588d565b60206040518083038186803b158015614cce57600080fd5b505afa158015614ce2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614d069190615870565b15614d9a5760016000908152601585016020526040902054614d9a5760405162461bcd60e51b815260206004820152604160248201527f506172656e74206f726465722073706563696669636174696f6e20646f65732060448201527f6e6f742073617469736679207375626f66666572207265737472696374696f6e6064820152607360f81b608482015260a4016106e5565b604051631e5dd86b60e01b81523090631e5dd86b90614dc090869060009060040161588d565b60206040518083038186803b158015614dd857600080fd5b505afa158015614dec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614e109190615870565b15614ee6573060048086015460405163cc04f00360e01b815291820186905260248201526001600160a01b03919091169063cc04f0039060440160206040518083038186803b158015614e6257600080fd5b505afa158015614e76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614e9a9190615870565b614ee65760405162461bcd60e51b815260206004820152601f60248201527f4f6666657220646973616c6c6f7720706172656e7420544545206f666665720060448201526064016106e5565b50505050565b6000828152600080516020615a99833981519152602052604090204260118201556012810180546001600160a01b0319163317905560006005836007811115614f3757614f37615660565b14905060006006600884015460ff166007811115614f5757614f57615660565b148015614f7557506000846007811115614f7357614f73615660565b145b90508180614f805750805b15613df25760088301805485919060ff19166001836007811115614fa657614fa6615660565b02179055505050505050565b7ff68437791109705d2e300a0b0cfc858fedffc7438da1d9bf937e2f34afa0df7680546000919081908390614fe690615911565b918290555092915050565b828054614ffd9061597c565b90600052602060002090601f01602090048101928261501f5760008555615065565b82601f1061503857805160ff1916838001178555615065565b82800160010185558215615065579182015b8281111561506557825182559160200191906001019061504a565b50615071929150615117565b5090565b6040518060c0016040528060008152602001606081526020016060815260200160608152602001600060078111156150af576150af615660565b81526020016150d860405180606001604052806000815260200160608152602001606081525090565b905290565b828054828255906000526020600020908101928215615065579160200282018281111561506557825182559160200191906001019061504a565b5b808211156150715760008155600101615118565b60006020828403121561513e57600080fd5b5035919050565b801515811461515357600080fd5b50565b6000806040838503121561516957600080fd5b82359150602083013561517b81615145565b809150509250929050565b80356008811061519557600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff811182821017156151d3576151d361519a565b60405290565b60405160c0810167ffffffffffffffff811182821017156151d3576151d361519a565b604051601f8201601f1916810167ffffffffffffffff811182821017156152255761522561519a565b604052919050565b600082601f83011261523e57600080fd5b813567ffffffffffffffff8111156152585761525861519a565b61526b601f8201601f19166020016151fc565b81815284602083860101111561528057600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000606084860312156152b257600080fd5b833592506152c260208501615186565b9150604084013567ffffffffffffffff8111156152de57600080fd5b6152ea8682870161522d565b9150509250925092565b6000806040838503121561530757600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b8181101561534e57835183529284019291840191600101615332565b50909695505050505050565b600082601f83011261536b57600080fd5b8135602067ffffffffffffffff8211156153875761538761519a565b8160051b6153968282016151fc565b92835284810182019282810190878511156153b057600080fd5b83870192505b848310156153cf578235825291830191908301906153b6565b979650505050505050565b6000606082840312156153ec57600080fd5b6153f46151b0565b905081358152602082013567ffffffffffffffff8082111561541557600080fd5b6154218583860161535a565b6020840152604084013591508082111561543a57600080fd5b506154478482850161535a565b60408301525092915050565b600060c0828403121561546557600080fd5b61546d6151d9565b905081358152602082013567ffffffffffffffff8082111561548e57600080fd5b61549a8583860161522d565b602084015260408401359150808211156154b357600080fd5b6154bf8583860161522d565b604084015260608401359150808211156154d857600080fd5b6154e48583860161522d565b60608401526154f560808501615186565b608084015260a084013591508082111561550e57600080fd5b5061551b848285016153da565b60a08301525092915050565b6000806000806080858703121561553d57600080fd5b843567ffffffffffffffff81111561555457600080fd5b61556087828801615453565b94505060208501359250604085013561557881615145565b9396929550929360600135925050565b600080600083850360a081121561559e57600080fd5b84359350602085013567ffffffffffffffff8111156155bc57600080fd5b6155c887828801615453565b9350506060603f19820112156155dd57600080fd5b506155e66151b0565b60408501356155f481615145565b8152606085013560208201526080909401356040850152509093909250565b6000815180845260005b818110156156395760208185018101518683018201520161561d565b8181111561564b576000602083870101525b50601f01601f19169290920160200192915050565b634e487b7160e01b600052602160045260246000fd5b6008811061515357615153615660565b600081518084526020808501945080840160005b838110156156b65781518752958201959082019060010161569a565b509495945050505050565b60008151604084526156d66040850182615613565b602093840151949093019390935250919050565b6001600160a01b038416815260606020820152825160608201526000602084015160c06080840152615720610120840182615613565b90506040850151605f19808584030160a086015261573e8383615613565b925060608701519150808584030160c086015261575b8383615613565b92506080870151915061576d82615676565b8160e086015260a08701519150808584030161010086015250805182526020810151606060208401526157a36060840182615686565b90506040820151915082810360408401526157be8183615686565b9250505082810360408401526157d481856156c1565b9695505050505050565b600080604083850312156157f157600080fd5b82359150602083013567ffffffffffffffff81111561580f57600080fd5b61581b8582860161522d565b9150509250929050565b6001600160a01b038116811461515357600080fd5b60006020828403121561584c57600080fd5b81516118c481615825565b60006020828403121561586957600080fd5b5051919050565b60006020828403121561588257600080fd5b81516118c481615145565b82815260408101600483106158a4576158a4615660565b8260208301529392505050565b602081016158be83615676565b91905290565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156158ec57600080fd5b8151600481106118c457600080fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415615925576159256158fb565b5060010190565b6000821982111561593f5761593f6158fb565b500190565b600082821015615956576159566158fb565b500390565b60006020828403121561596d57600080fd5b8151600381106118c457600080fd5b600181811c9082168061599057607f821691505b602082108114156159b157634e487b7160e01b600052602260045260246000fd5b50919050565b60808101600386106159cb576159cb615660565b9481526001600160a01b03939093166020840152604083019190915260609091015290565b600060208083526000845481600182811c915080831680615a1257607f831692505b858310811415615a3057634e487b7160e01b85526022600452602485fd5b878601838152602001818015615a4d5760018114615a5e57615a89565b60ff19861682528782019650615a89565b60008b81526020902060005b86811015615a8357815484820152908501908901615a6a565b83019750505b5094999850505050505050505056fef68437791109705d2e300a0b0cfc858fedffc7438da1d9bf937e2f34afa0df77a2646970667358221220ac167d64b387133a1c13433cf78decf2b32f4091ef94480bda87c033d8233bbe64736f6c63430008090033",
|
|
982
|
+
"linkReferences": {},
|
|
983
|
+
"deployedLinkReferences": {}
|
|
984
|
+
}
|