@ensuro/core 1.2.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/README.md +93 -0
- package/build/contracts/AaveAssetManager.sol/AaveAssetManager.json +772 -0
- package/build/contracts/BaseAssetManager.sol/BaseAssetManager.json +494 -0
- package/build/contracts/DataTypes.sol/DataTypes.json +10 -0
- package/build/contracts/EToken.sol/EToken.json +1148 -0
- package/build/contracts/FlightDelayRiskModule.sol/FlightDelayRiskModule.json +1093 -0
- package/build/contracts/LPManualWhitelist.sol/LPManualWhitelist.json +412 -0
- package/build/contracts/Policy.sol/Policy.json +10 -0
- package/build/contracts/PolicyNFT.sol/PolicyNFT.json +570 -0
- package/build/contracts/PolicyPool.sol/PolicyPool.json +1257 -0
- package/build/contracts/PolicyPoolComponent.sol/PolicyPoolComponent.json +281 -0
- package/build/contracts/PolicyPoolConfig.sol/PolicyPoolConfig.json +660 -0
- package/build/contracts/RiskModule.sol/RiskModule.json +748 -0
- package/build/contracts/TrustfulRiskModule.sol/TrustfulRiskModule.json +1032 -0
- package/build/contracts/WadRayMath.sol/WadRayMath.json +10 -0
- package/build/contracts/dependencies/ChainlinkClientUpgradeable.sol/ChainlinkClientUpgradeable.json +50 -0
- package/build/contracts/upgraded/IPolicyNFTv1.sol/IPolicyNFTv1.json +322 -0
- package/build/contracts/upgraded/PolicyNFTv1.sol/PolicyNFTv1.json +571 -0
- package/build/contracts/upgraded/PolicyNFTv1.sol/PolicyNFTv1_Upgrade.json +602 -0
- package/build/interfaces/IAssetManager.sol/IAssetManager.json +31 -0
- package/build/interfaces/IEToken.sol/IEToken.json +491 -0
- package/build/interfaces/IInsolvencyHook.sol/IInsolvencyHook.json +42 -0
- package/build/interfaces/ILPWhitelist.sol/ILPWhitelist.json +74 -0
- package/build/interfaces/IPolicyNFT.sol/IPolicyNFT.json +321 -0
- package/build/interfaces/IPolicyPool.sol/IPolicyPool.json +445 -0
- package/build/interfaces/IPolicyPoolComponent.sol/IPolicyPoolComponent.json +24 -0
- package/build/interfaces/IPolicyPoolConfig.sol/IPolicyPoolConfig.json +328 -0
- package/build/interfaces/IRiskModule.sol/IRiskModule.json +141 -0
- package/contracts/AaveAssetManager.sol +326 -0
- package/contracts/BaseAssetManager.sol +283 -0
- package/contracts/DataTypes.sol +287 -0
- package/contracts/EToken.sol +773 -0
- package/contracts/FlightDelayRiskModule.sol +208 -0
- package/contracts/LPManualWhitelist.sol +57 -0
- package/contracts/Policy.sol +104 -0
- package/contracts/PolicyNFT.sol +96 -0
- package/contracts/PolicyPool.sol +716 -0
- package/contracts/PolicyPoolComponent.sol +164 -0
- package/contracts/PolicyPoolConfig.sol +231 -0
- package/contracts/RiskModule.sol +323 -0
- package/contracts/TrustfulRiskModule.sol +81 -0
- package/contracts/WadRayMath.sol +135 -0
- package/contracts/dependencies/ChainlinkClientUpgradeable.sol +371 -0
- package/contracts/upgraded/IPolicyNFTv1.sol +15 -0
- package/contracts/upgraded/PolicyNFTv1.sol +126 -0
- package/interfaces/IAssetManager.sol +23 -0
- package/interfaces/IEToken.sol +44 -0
- package/interfaces/IInsolvencyHook.sol +27 -0
- package/interfaces/ILPWhitelist.sol +23 -0
- package/interfaces/IPolicyNFT.sol +15 -0
- package/interfaces/IPolicyPool.sol +44 -0
- package/interfaces/IPolicyPoolComponent.sol +13 -0
- package/interfaces/IPolicyPoolConfig.sol +81 -0
- package/interfaces/IRiskModule.sol +29 -0
- package/package.json +30 -0
|
@@ -0,0 +1,1257 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_format": "hh-sol-artifact-1",
|
|
3
|
+
"contractName": "PolicyPool",
|
|
4
|
+
"sourceName": "contracts/PolicyPool.sol",
|
|
5
|
+
"abi": [
|
|
6
|
+
{
|
|
7
|
+
"inputs": [
|
|
8
|
+
{
|
|
9
|
+
"internalType": "contract IPolicyPoolConfig",
|
|
10
|
+
"name": "config_",
|
|
11
|
+
"type": "address"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"internalType": "contract IPolicyNFT",
|
|
15
|
+
"name": "policyNFT_",
|
|
16
|
+
"type": "address"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"internalType": "contract IERC20Metadata",
|
|
20
|
+
"name": "currency_",
|
|
21
|
+
"type": "address"
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
"stateMutability": "nonpayable",
|
|
25
|
+
"type": "constructor"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"anonymous": false,
|
|
29
|
+
"inputs": [
|
|
30
|
+
{
|
|
31
|
+
"indexed": false,
|
|
32
|
+
"internalType": "address",
|
|
33
|
+
"name": "previousAdmin",
|
|
34
|
+
"type": "address"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"indexed": false,
|
|
38
|
+
"internalType": "address",
|
|
39
|
+
"name": "newAdmin",
|
|
40
|
+
"type": "address"
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"name": "AdminChanged",
|
|
44
|
+
"type": "event"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"anonymous": false,
|
|
48
|
+
"inputs": [
|
|
49
|
+
{
|
|
50
|
+
"indexed": true,
|
|
51
|
+
"internalType": "address",
|
|
52
|
+
"name": "beacon",
|
|
53
|
+
"type": "address"
|
|
54
|
+
}
|
|
55
|
+
],
|
|
56
|
+
"name": "BeaconUpgraded",
|
|
57
|
+
"type": "event"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"anonymous": false,
|
|
61
|
+
"inputs": [
|
|
62
|
+
{
|
|
63
|
+
"indexed": true,
|
|
64
|
+
"internalType": "contract IEToken",
|
|
65
|
+
"name": "eToken",
|
|
66
|
+
"type": "address"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"indexed": false,
|
|
70
|
+
"internalType": "enum DataTypes.ETokenStatus",
|
|
71
|
+
"name": "newStatus",
|
|
72
|
+
"type": "uint8"
|
|
73
|
+
}
|
|
74
|
+
],
|
|
75
|
+
"name": "ETokenStatusChanged",
|
|
76
|
+
"type": "event"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"anonymous": false,
|
|
80
|
+
"inputs": [
|
|
81
|
+
{
|
|
82
|
+
"indexed": true,
|
|
83
|
+
"internalType": "contract IRiskModule",
|
|
84
|
+
"name": "riskModule",
|
|
85
|
+
"type": "address"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"components": [
|
|
89
|
+
{
|
|
90
|
+
"internalType": "uint256",
|
|
91
|
+
"name": "id",
|
|
92
|
+
"type": "uint256"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"internalType": "uint256",
|
|
96
|
+
"name": "payout",
|
|
97
|
+
"type": "uint256"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"internalType": "uint256",
|
|
101
|
+
"name": "premium",
|
|
102
|
+
"type": "uint256"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"internalType": "uint256",
|
|
106
|
+
"name": "scr",
|
|
107
|
+
"type": "uint256"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"internalType": "uint256",
|
|
111
|
+
"name": "lossProb",
|
|
112
|
+
"type": "uint256"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"internalType": "uint256",
|
|
116
|
+
"name": "purePremium",
|
|
117
|
+
"type": "uint256"
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"internalType": "uint256",
|
|
121
|
+
"name": "premiumForEnsuro",
|
|
122
|
+
"type": "uint256"
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"internalType": "uint256",
|
|
126
|
+
"name": "premiumForRm",
|
|
127
|
+
"type": "uint256"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"internalType": "uint256",
|
|
131
|
+
"name": "premiumForLps",
|
|
132
|
+
"type": "uint256"
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"internalType": "contract IRiskModule",
|
|
136
|
+
"name": "riskModule",
|
|
137
|
+
"type": "address"
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"internalType": "uint40",
|
|
141
|
+
"name": "start",
|
|
142
|
+
"type": "uint40"
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"internalType": "uint40",
|
|
146
|
+
"name": "expiration",
|
|
147
|
+
"type": "uint40"
|
|
148
|
+
}
|
|
149
|
+
],
|
|
150
|
+
"indexed": false,
|
|
151
|
+
"internalType": "struct Policy.PolicyData",
|
|
152
|
+
"name": "policy",
|
|
153
|
+
"type": "tuple"
|
|
154
|
+
}
|
|
155
|
+
],
|
|
156
|
+
"name": "NewPolicy",
|
|
157
|
+
"type": "event"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"anonymous": false,
|
|
161
|
+
"inputs": [
|
|
162
|
+
{
|
|
163
|
+
"indexed": false,
|
|
164
|
+
"internalType": "address",
|
|
165
|
+
"name": "account",
|
|
166
|
+
"type": "address"
|
|
167
|
+
}
|
|
168
|
+
],
|
|
169
|
+
"name": "Paused",
|
|
170
|
+
"type": "event"
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"anonymous": false,
|
|
174
|
+
"inputs": [
|
|
175
|
+
{
|
|
176
|
+
"indexed": true,
|
|
177
|
+
"internalType": "contract IRiskModule",
|
|
178
|
+
"name": "riskModule",
|
|
179
|
+
"type": "address"
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"indexed": true,
|
|
183
|
+
"internalType": "uint256",
|
|
184
|
+
"name": "policyId",
|
|
185
|
+
"type": "uint256"
|
|
186
|
+
}
|
|
187
|
+
],
|
|
188
|
+
"name": "PolicyRebalanced",
|
|
189
|
+
"type": "event"
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"anonymous": false,
|
|
193
|
+
"inputs": [
|
|
194
|
+
{
|
|
195
|
+
"indexed": true,
|
|
196
|
+
"internalType": "contract IRiskModule",
|
|
197
|
+
"name": "riskModule",
|
|
198
|
+
"type": "address"
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
"indexed": true,
|
|
202
|
+
"internalType": "uint256",
|
|
203
|
+
"name": "policyId",
|
|
204
|
+
"type": "uint256"
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
"indexed": false,
|
|
208
|
+
"internalType": "uint256",
|
|
209
|
+
"name": "payout",
|
|
210
|
+
"type": "uint256"
|
|
211
|
+
}
|
|
212
|
+
],
|
|
213
|
+
"name": "PolicyResolved",
|
|
214
|
+
"type": "event"
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"anonymous": false,
|
|
218
|
+
"inputs": [
|
|
219
|
+
{
|
|
220
|
+
"indexed": false,
|
|
221
|
+
"internalType": "address",
|
|
222
|
+
"name": "account",
|
|
223
|
+
"type": "address"
|
|
224
|
+
}
|
|
225
|
+
],
|
|
226
|
+
"name": "Unpaused",
|
|
227
|
+
"type": "event"
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"anonymous": false,
|
|
231
|
+
"inputs": [
|
|
232
|
+
{
|
|
233
|
+
"indexed": true,
|
|
234
|
+
"internalType": "address",
|
|
235
|
+
"name": "implementation",
|
|
236
|
+
"type": "address"
|
|
237
|
+
}
|
|
238
|
+
],
|
|
239
|
+
"name": "Upgraded",
|
|
240
|
+
"type": "event"
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
"anonymous": false,
|
|
244
|
+
"inputs": [
|
|
245
|
+
{
|
|
246
|
+
"indexed": false,
|
|
247
|
+
"internalType": "bool",
|
|
248
|
+
"name": "moneyIn",
|
|
249
|
+
"type": "bool"
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
"indexed": false,
|
|
253
|
+
"internalType": "uint256",
|
|
254
|
+
"name": "value",
|
|
255
|
+
"type": "uint256"
|
|
256
|
+
}
|
|
257
|
+
],
|
|
258
|
+
"name": "WonPremiumsInOut",
|
|
259
|
+
"type": "event"
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
"inputs": [],
|
|
263
|
+
"name": "GUARDIAN_ROLE",
|
|
264
|
+
"outputs": [
|
|
265
|
+
{
|
|
266
|
+
"internalType": "bytes32",
|
|
267
|
+
"name": "",
|
|
268
|
+
"type": "bytes32"
|
|
269
|
+
}
|
|
270
|
+
],
|
|
271
|
+
"stateMutability": "view",
|
|
272
|
+
"type": "function"
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
"inputs": [],
|
|
276
|
+
"name": "LEVEL1_ROLE",
|
|
277
|
+
"outputs": [
|
|
278
|
+
{
|
|
279
|
+
"internalType": "bytes32",
|
|
280
|
+
"name": "",
|
|
281
|
+
"type": "bytes32"
|
|
282
|
+
}
|
|
283
|
+
],
|
|
284
|
+
"stateMutability": "view",
|
|
285
|
+
"type": "function"
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
"inputs": [],
|
|
289
|
+
"name": "LEVEL2_ROLE",
|
|
290
|
+
"outputs": [
|
|
291
|
+
{
|
|
292
|
+
"internalType": "bytes32",
|
|
293
|
+
"name": "",
|
|
294
|
+
"type": "bytes32"
|
|
295
|
+
}
|
|
296
|
+
],
|
|
297
|
+
"stateMutability": "view",
|
|
298
|
+
"type": "function"
|
|
299
|
+
},
|
|
300
|
+
{
|
|
301
|
+
"inputs": [],
|
|
302
|
+
"name": "LEVEL3_ROLE",
|
|
303
|
+
"outputs": [
|
|
304
|
+
{
|
|
305
|
+
"internalType": "bytes32",
|
|
306
|
+
"name": "",
|
|
307
|
+
"type": "bytes32"
|
|
308
|
+
}
|
|
309
|
+
],
|
|
310
|
+
"stateMutability": "view",
|
|
311
|
+
"type": "function"
|
|
312
|
+
},
|
|
313
|
+
{
|
|
314
|
+
"inputs": [],
|
|
315
|
+
"name": "MAX_ETOKENS",
|
|
316
|
+
"outputs": [
|
|
317
|
+
{
|
|
318
|
+
"internalType": "uint256",
|
|
319
|
+
"name": "",
|
|
320
|
+
"type": "uint256"
|
|
321
|
+
}
|
|
322
|
+
],
|
|
323
|
+
"stateMutability": "view",
|
|
324
|
+
"type": "function"
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
"inputs": [],
|
|
328
|
+
"name": "NEGLIGIBLE_AMOUNT",
|
|
329
|
+
"outputs": [
|
|
330
|
+
{
|
|
331
|
+
"internalType": "uint256",
|
|
332
|
+
"name": "",
|
|
333
|
+
"type": "uint256"
|
|
334
|
+
}
|
|
335
|
+
],
|
|
336
|
+
"stateMutability": "view",
|
|
337
|
+
"type": "function"
|
|
338
|
+
},
|
|
339
|
+
{
|
|
340
|
+
"inputs": [],
|
|
341
|
+
"name": "REBALANCE_ROLE",
|
|
342
|
+
"outputs": [
|
|
343
|
+
{
|
|
344
|
+
"internalType": "bytes32",
|
|
345
|
+
"name": "",
|
|
346
|
+
"type": "bytes32"
|
|
347
|
+
}
|
|
348
|
+
],
|
|
349
|
+
"stateMutability": "view",
|
|
350
|
+
"type": "function"
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
"inputs": [],
|
|
354
|
+
"name": "WITHDRAW_WON_PREMIUMS_ROLE",
|
|
355
|
+
"outputs": [
|
|
356
|
+
{
|
|
357
|
+
"internalType": "bytes32",
|
|
358
|
+
"name": "",
|
|
359
|
+
"type": "bytes32"
|
|
360
|
+
}
|
|
361
|
+
],
|
|
362
|
+
"stateMutability": "view",
|
|
363
|
+
"type": "function"
|
|
364
|
+
},
|
|
365
|
+
{
|
|
366
|
+
"inputs": [],
|
|
367
|
+
"name": "activePurePremiums",
|
|
368
|
+
"outputs": [
|
|
369
|
+
{
|
|
370
|
+
"internalType": "uint256",
|
|
371
|
+
"name": "",
|
|
372
|
+
"type": "uint256"
|
|
373
|
+
}
|
|
374
|
+
],
|
|
375
|
+
"stateMutability": "view",
|
|
376
|
+
"type": "function"
|
|
377
|
+
},
|
|
378
|
+
{
|
|
379
|
+
"inputs": [
|
|
380
|
+
{
|
|
381
|
+
"internalType": "contract IEToken",
|
|
382
|
+
"name": "eToken",
|
|
383
|
+
"type": "address"
|
|
384
|
+
}
|
|
385
|
+
],
|
|
386
|
+
"name": "addEToken",
|
|
387
|
+
"outputs": [],
|
|
388
|
+
"stateMutability": "nonpayable",
|
|
389
|
+
"type": "function"
|
|
390
|
+
},
|
|
391
|
+
{
|
|
392
|
+
"inputs": [
|
|
393
|
+
{
|
|
394
|
+
"internalType": "uint256",
|
|
395
|
+
"name": "amount",
|
|
396
|
+
"type": "uint256"
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
"internalType": "bool",
|
|
400
|
+
"name": "positive",
|
|
401
|
+
"type": "bool"
|
|
402
|
+
}
|
|
403
|
+
],
|
|
404
|
+
"name": "assetEarnings",
|
|
405
|
+
"outputs": [],
|
|
406
|
+
"stateMutability": "nonpayable",
|
|
407
|
+
"type": "function"
|
|
408
|
+
},
|
|
409
|
+
{
|
|
410
|
+
"inputs": [],
|
|
411
|
+
"name": "borrowedActivePP",
|
|
412
|
+
"outputs": [
|
|
413
|
+
{
|
|
414
|
+
"internalType": "uint256",
|
|
415
|
+
"name": "",
|
|
416
|
+
"type": "uint256"
|
|
417
|
+
}
|
|
418
|
+
],
|
|
419
|
+
"stateMutability": "view",
|
|
420
|
+
"type": "function"
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
"inputs": [
|
|
424
|
+
{
|
|
425
|
+
"internalType": "contract IEToken",
|
|
426
|
+
"name": "eToken",
|
|
427
|
+
"type": "address"
|
|
428
|
+
},
|
|
429
|
+
{
|
|
430
|
+
"internalType": "enum DataTypes.ETokenStatus",
|
|
431
|
+
"name": "newStatus",
|
|
432
|
+
"type": "uint8"
|
|
433
|
+
}
|
|
434
|
+
],
|
|
435
|
+
"name": "changeETokenStatus",
|
|
436
|
+
"outputs": [],
|
|
437
|
+
"stateMutability": "nonpayable",
|
|
438
|
+
"type": "function"
|
|
439
|
+
},
|
|
440
|
+
{
|
|
441
|
+
"inputs": [],
|
|
442
|
+
"name": "config",
|
|
443
|
+
"outputs": [
|
|
444
|
+
{
|
|
445
|
+
"internalType": "contract IPolicyPoolConfig",
|
|
446
|
+
"name": "",
|
|
447
|
+
"type": "address"
|
|
448
|
+
}
|
|
449
|
+
],
|
|
450
|
+
"stateMutability": "view",
|
|
451
|
+
"type": "function"
|
|
452
|
+
},
|
|
453
|
+
{
|
|
454
|
+
"inputs": [],
|
|
455
|
+
"name": "currency",
|
|
456
|
+
"outputs": [
|
|
457
|
+
{
|
|
458
|
+
"internalType": "contract IERC20Metadata",
|
|
459
|
+
"name": "",
|
|
460
|
+
"type": "address"
|
|
461
|
+
}
|
|
462
|
+
],
|
|
463
|
+
"stateMutability": "view",
|
|
464
|
+
"type": "function"
|
|
465
|
+
},
|
|
466
|
+
{
|
|
467
|
+
"inputs": [
|
|
468
|
+
{
|
|
469
|
+
"internalType": "contract IEToken",
|
|
470
|
+
"name": "eToken",
|
|
471
|
+
"type": "address"
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
"internalType": "uint256",
|
|
475
|
+
"name": "amount",
|
|
476
|
+
"type": "uint256"
|
|
477
|
+
}
|
|
478
|
+
],
|
|
479
|
+
"name": "deposit",
|
|
480
|
+
"outputs": [],
|
|
481
|
+
"stateMutability": "nonpayable",
|
|
482
|
+
"type": "function"
|
|
483
|
+
},
|
|
484
|
+
{
|
|
485
|
+
"inputs": [
|
|
486
|
+
{
|
|
487
|
+
"components": [
|
|
488
|
+
{
|
|
489
|
+
"internalType": "uint256",
|
|
490
|
+
"name": "id",
|
|
491
|
+
"type": "uint256"
|
|
492
|
+
},
|
|
493
|
+
{
|
|
494
|
+
"internalType": "uint256",
|
|
495
|
+
"name": "payout",
|
|
496
|
+
"type": "uint256"
|
|
497
|
+
},
|
|
498
|
+
{
|
|
499
|
+
"internalType": "uint256",
|
|
500
|
+
"name": "premium",
|
|
501
|
+
"type": "uint256"
|
|
502
|
+
},
|
|
503
|
+
{
|
|
504
|
+
"internalType": "uint256",
|
|
505
|
+
"name": "scr",
|
|
506
|
+
"type": "uint256"
|
|
507
|
+
},
|
|
508
|
+
{
|
|
509
|
+
"internalType": "uint256",
|
|
510
|
+
"name": "lossProb",
|
|
511
|
+
"type": "uint256"
|
|
512
|
+
},
|
|
513
|
+
{
|
|
514
|
+
"internalType": "uint256",
|
|
515
|
+
"name": "purePremium",
|
|
516
|
+
"type": "uint256"
|
|
517
|
+
},
|
|
518
|
+
{
|
|
519
|
+
"internalType": "uint256",
|
|
520
|
+
"name": "premiumForEnsuro",
|
|
521
|
+
"type": "uint256"
|
|
522
|
+
},
|
|
523
|
+
{
|
|
524
|
+
"internalType": "uint256",
|
|
525
|
+
"name": "premiumForRm",
|
|
526
|
+
"type": "uint256"
|
|
527
|
+
},
|
|
528
|
+
{
|
|
529
|
+
"internalType": "uint256",
|
|
530
|
+
"name": "premiumForLps",
|
|
531
|
+
"type": "uint256"
|
|
532
|
+
},
|
|
533
|
+
{
|
|
534
|
+
"internalType": "contract IRiskModule",
|
|
535
|
+
"name": "riskModule",
|
|
536
|
+
"type": "address"
|
|
537
|
+
},
|
|
538
|
+
{
|
|
539
|
+
"internalType": "uint40",
|
|
540
|
+
"name": "start",
|
|
541
|
+
"type": "uint40"
|
|
542
|
+
},
|
|
543
|
+
{
|
|
544
|
+
"internalType": "uint40",
|
|
545
|
+
"name": "expiration",
|
|
546
|
+
"type": "uint40"
|
|
547
|
+
}
|
|
548
|
+
],
|
|
549
|
+
"internalType": "struct Policy.PolicyData",
|
|
550
|
+
"name": "policy",
|
|
551
|
+
"type": "tuple"
|
|
552
|
+
}
|
|
553
|
+
],
|
|
554
|
+
"name": "expirePolicy",
|
|
555
|
+
"outputs": [],
|
|
556
|
+
"stateMutability": "nonpayable",
|
|
557
|
+
"type": "function"
|
|
558
|
+
},
|
|
559
|
+
{
|
|
560
|
+
"inputs": [
|
|
561
|
+
{
|
|
562
|
+
"internalType": "uint256",
|
|
563
|
+
"name": "index",
|
|
564
|
+
"type": "uint256"
|
|
565
|
+
}
|
|
566
|
+
],
|
|
567
|
+
"name": "getETokenAt",
|
|
568
|
+
"outputs": [
|
|
569
|
+
{
|
|
570
|
+
"internalType": "contract IEToken",
|
|
571
|
+
"name": "",
|
|
572
|
+
"type": "address"
|
|
573
|
+
}
|
|
574
|
+
],
|
|
575
|
+
"stateMutability": "view",
|
|
576
|
+
"type": "function"
|
|
577
|
+
},
|
|
578
|
+
{
|
|
579
|
+
"inputs": [],
|
|
580
|
+
"name": "getETokenCount",
|
|
581
|
+
"outputs": [
|
|
582
|
+
{
|
|
583
|
+
"internalType": "uint256",
|
|
584
|
+
"name": "",
|
|
585
|
+
"type": "uint256"
|
|
586
|
+
}
|
|
587
|
+
],
|
|
588
|
+
"stateMutability": "view",
|
|
589
|
+
"type": "function"
|
|
590
|
+
},
|
|
591
|
+
{
|
|
592
|
+
"inputs": [
|
|
593
|
+
{
|
|
594
|
+
"internalType": "contract IEToken",
|
|
595
|
+
"name": "eToken",
|
|
596
|
+
"type": "address"
|
|
597
|
+
}
|
|
598
|
+
],
|
|
599
|
+
"name": "getETokenStatus",
|
|
600
|
+
"outputs": [
|
|
601
|
+
{
|
|
602
|
+
"internalType": "enum DataTypes.ETokenStatus",
|
|
603
|
+
"name": "",
|
|
604
|
+
"type": "uint8"
|
|
605
|
+
}
|
|
606
|
+
],
|
|
607
|
+
"stateMutability": "view",
|
|
608
|
+
"type": "function"
|
|
609
|
+
},
|
|
610
|
+
{
|
|
611
|
+
"inputs": [],
|
|
612
|
+
"name": "getInvestable",
|
|
613
|
+
"outputs": [
|
|
614
|
+
{
|
|
615
|
+
"internalType": "uint256",
|
|
616
|
+
"name": "",
|
|
617
|
+
"type": "uint256"
|
|
618
|
+
}
|
|
619
|
+
],
|
|
620
|
+
"stateMutability": "view",
|
|
621
|
+
"type": "function"
|
|
622
|
+
},
|
|
623
|
+
{
|
|
624
|
+
"inputs": [
|
|
625
|
+
{
|
|
626
|
+
"internalType": "uint256",
|
|
627
|
+
"name": "policyId",
|
|
628
|
+
"type": "uint256"
|
|
629
|
+
},
|
|
630
|
+
{
|
|
631
|
+
"internalType": "contract IEToken",
|
|
632
|
+
"name": "etoken",
|
|
633
|
+
"type": "address"
|
|
634
|
+
}
|
|
635
|
+
],
|
|
636
|
+
"name": "getPolicyFund",
|
|
637
|
+
"outputs": [
|
|
638
|
+
{
|
|
639
|
+
"internalType": "uint256",
|
|
640
|
+
"name": "",
|
|
641
|
+
"type": "uint256"
|
|
642
|
+
}
|
|
643
|
+
],
|
|
644
|
+
"stateMutability": "view",
|
|
645
|
+
"type": "function"
|
|
646
|
+
},
|
|
647
|
+
{
|
|
648
|
+
"inputs": [
|
|
649
|
+
{
|
|
650
|
+
"internalType": "uint256",
|
|
651
|
+
"name": "policyId",
|
|
652
|
+
"type": "uint256"
|
|
653
|
+
},
|
|
654
|
+
{
|
|
655
|
+
"internalType": "uint256",
|
|
656
|
+
"name": "index",
|
|
657
|
+
"type": "uint256"
|
|
658
|
+
}
|
|
659
|
+
],
|
|
660
|
+
"name": "getPolicyFundAt",
|
|
661
|
+
"outputs": [
|
|
662
|
+
{
|
|
663
|
+
"internalType": "contract IEToken",
|
|
664
|
+
"name": "",
|
|
665
|
+
"type": "address"
|
|
666
|
+
},
|
|
667
|
+
{
|
|
668
|
+
"internalType": "uint256",
|
|
669
|
+
"name": "",
|
|
670
|
+
"type": "uint256"
|
|
671
|
+
}
|
|
672
|
+
],
|
|
673
|
+
"stateMutability": "view",
|
|
674
|
+
"type": "function"
|
|
675
|
+
},
|
|
676
|
+
{
|
|
677
|
+
"inputs": [
|
|
678
|
+
{
|
|
679
|
+
"internalType": "uint256",
|
|
680
|
+
"name": "policyId",
|
|
681
|
+
"type": "uint256"
|
|
682
|
+
}
|
|
683
|
+
],
|
|
684
|
+
"name": "getPolicyFundCount",
|
|
685
|
+
"outputs": [
|
|
686
|
+
{
|
|
687
|
+
"internalType": "uint256",
|
|
688
|
+
"name": "",
|
|
689
|
+
"type": "uint256"
|
|
690
|
+
}
|
|
691
|
+
],
|
|
692
|
+
"stateMutability": "view",
|
|
693
|
+
"type": "function"
|
|
694
|
+
},
|
|
695
|
+
{
|
|
696
|
+
"inputs": [],
|
|
697
|
+
"name": "initialize",
|
|
698
|
+
"outputs": [],
|
|
699
|
+
"stateMutability": "nonpayable",
|
|
700
|
+
"type": "function"
|
|
701
|
+
},
|
|
702
|
+
{
|
|
703
|
+
"inputs": [
|
|
704
|
+
{
|
|
705
|
+
"components": [
|
|
706
|
+
{
|
|
707
|
+
"internalType": "uint256",
|
|
708
|
+
"name": "id",
|
|
709
|
+
"type": "uint256"
|
|
710
|
+
},
|
|
711
|
+
{
|
|
712
|
+
"internalType": "uint256",
|
|
713
|
+
"name": "payout",
|
|
714
|
+
"type": "uint256"
|
|
715
|
+
},
|
|
716
|
+
{
|
|
717
|
+
"internalType": "uint256",
|
|
718
|
+
"name": "premium",
|
|
719
|
+
"type": "uint256"
|
|
720
|
+
},
|
|
721
|
+
{
|
|
722
|
+
"internalType": "uint256",
|
|
723
|
+
"name": "scr",
|
|
724
|
+
"type": "uint256"
|
|
725
|
+
},
|
|
726
|
+
{
|
|
727
|
+
"internalType": "uint256",
|
|
728
|
+
"name": "lossProb",
|
|
729
|
+
"type": "uint256"
|
|
730
|
+
},
|
|
731
|
+
{
|
|
732
|
+
"internalType": "uint256",
|
|
733
|
+
"name": "purePremium",
|
|
734
|
+
"type": "uint256"
|
|
735
|
+
},
|
|
736
|
+
{
|
|
737
|
+
"internalType": "uint256",
|
|
738
|
+
"name": "premiumForEnsuro",
|
|
739
|
+
"type": "uint256"
|
|
740
|
+
},
|
|
741
|
+
{
|
|
742
|
+
"internalType": "uint256",
|
|
743
|
+
"name": "premiumForRm",
|
|
744
|
+
"type": "uint256"
|
|
745
|
+
},
|
|
746
|
+
{
|
|
747
|
+
"internalType": "uint256",
|
|
748
|
+
"name": "premiumForLps",
|
|
749
|
+
"type": "uint256"
|
|
750
|
+
},
|
|
751
|
+
{
|
|
752
|
+
"internalType": "contract IRiskModule",
|
|
753
|
+
"name": "riskModule",
|
|
754
|
+
"type": "address"
|
|
755
|
+
},
|
|
756
|
+
{
|
|
757
|
+
"internalType": "uint40",
|
|
758
|
+
"name": "start",
|
|
759
|
+
"type": "uint40"
|
|
760
|
+
},
|
|
761
|
+
{
|
|
762
|
+
"internalType": "uint40",
|
|
763
|
+
"name": "expiration",
|
|
764
|
+
"type": "uint40"
|
|
765
|
+
}
|
|
766
|
+
],
|
|
767
|
+
"internalType": "struct Policy.PolicyData",
|
|
768
|
+
"name": "policy",
|
|
769
|
+
"type": "tuple"
|
|
770
|
+
},
|
|
771
|
+
{
|
|
772
|
+
"internalType": "address",
|
|
773
|
+
"name": "customer",
|
|
774
|
+
"type": "address"
|
|
775
|
+
},
|
|
776
|
+
{
|
|
777
|
+
"internalType": "uint96",
|
|
778
|
+
"name": "internalId",
|
|
779
|
+
"type": "uint96"
|
|
780
|
+
}
|
|
781
|
+
],
|
|
782
|
+
"name": "newPolicy",
|
|
783
|
+
"outputs": [
|
|
784
|
+
{
|
|
785
|
+
"internalType": "uint256",
|
|
786
|
+
"name": "",
|
|
787
|
+
"type": "uint256"
|
|
788
|
+
}
|
|
789
|
+
],
|
|
790
|
+
"stateMutability": "nonpayable",
|
|
791
|
+
"type": "function"
|
|
792
|
+
},
|
|
793
|
+
{
|
|
794
|
+
"inputs": [],
|
|
795
|
+
"name": "pause",
|
|
796
|
+
"outputs": [],
|
|
797
|
+
"stateMutability": "nonpayable",
|
|
798
|
+
"type": "function"
|
|
799
|
+
},
|
|
800
|
+
{
|
|
801
|
+
"inputs": [],
|
|
802
|
+
"name": "paused",
|
|
803
|
+
"outputs": [
|
|
804
|
+
{
|
|
805
|
+
"internalType": "bool",
|
|
806
|
+
"name": "",
|
|
807
|
+
"type": "bool"
|
|
808
|
+
}
|
|
809
|
+
],
|
|
810
|
+
"stateMutability": "view",
|
|
811
|
+
"type": "function"
|
|
812
|
+
},
|
|
813
|
+
{
|
|
814
|
+
"inputs": [],
|
|
815
|
+
"name": "policyNFT",
|
|
816
|
+
"outputs": [
|
|
817
|
+
{
|
|
818
|
+
"internalType": "address",
|
|
819
|
+
"name": "",
|
|
820
|
+
"type": "address"
|
|
821
|
+
}
|
|
822
|
+
],
|
|
823
|
+
"stateMutability": "view",
|
|
824
|
+
"type": "function"
|
|
825
|
+
},
|
|
826
|
+
{
|
|
827
|
+
"inputs": [],
|
|
828
|
+
"name": "proxiableUUID",
|
|
829
|
+
"outputs": [
|
|
830
|
+
{
|
|
831
|
+
"internalType": "bytes32",
|
|
832
|
+
"name": "",
|
|
833
|
+
"type": "bytes32"
|
|
834
|
+
}
|
|
835
|
+
],
|
|
836
|
+
"stateMutability": "view",
|
|
837
|
+
"type": "function"
|
|
838
|
+
},
|
|
839
|
+
{
|
|
840
|
+
"inputs": [],
|
|
841
|
+
"name": "purePremiums",
|
|
842
|
+
"outputs": [
|
|
843
|
+
{
|
|
844
|
+
"internalType": "uint256",
|
|
845
|
+
"name": "",
|
|
846
|
+
"type": "uint256"
|
|
847
|
+
}
|
|
848
|
+
],
|
|
849
|
+
"stateMutability": "view",
|
|
850
|
+
"type": "function"
|
|
851
|
+
},
|
|
852
|
+
{
|
|
853
|
+
"inputs": [
|
|
854
|
+
{
|
|
855
|
+
"components": [
|
|
856
|
+
{
|
|
857
|
+
"internalType": "uint256",
|
|
858
|
+
"name": "id",
|
|
859
|
+
"type": "uint256"
|
|
860
|
+
},
|
|
861
|
+
{
|
|
862
|
+
"internalType": "uint256",
|
|
863
|
+
"name": "payout",
|
|
864
|
+
"type": "uint256"
|
|
865
|
+
},
|
|
866
|
+
{
|
|
867
|
+
"internalType": "uint256",
|
|
868
|
+
"name": "premium",
|
|
869
|
+
"type": "uint256"
|
|
870
|
+
},
|
|
871
|
+
{
|
|
872
|
+
"internalType": "uint256",
|
|
873
|
+
"name": "scr",
|
|
874
|
+
"type": "uint256"
|
|
875
|
+
},
|
|
876
|
+
{
|
|
877
|
+
"internalType": "uint256",
|
|
878
|
+
"name": "lossProb",
|
|
879
|
+
"type": "uint256"
|
|
880
|
+
},
|
|
881
|
+
{
|
|
882
|
+
"internalType": "uint256",
|
|
883
|
+
"name": "purePremium",
|
|
884
|
+
"type": "uint256"
|
|
885
|
+
},
|
|
886
|
+
{
|
|
887
|
+
"internalType": "uint256",
|
|
888
|
+
"name": "premiumForEnsuro",
|
|
889
|
+
"type": "uint256"
|
|
890
|
+
},
|
|
891
|
+
{
|
|
892
|
+
"internalType": "uint256",
|
|
893
|
+
"name": "premiumForRm",
|
|
894
|
+
"type": "uint256"
|
|
895
|
+
},
|
|
896
|
+
{
|
|
897
|
+
"internalType": "uint256",
|
|
898
|
+
"name": "premiumForLps",
|
|
899
|
+
"type": "uint256"
|
|
900
|
+
},
|
|
901
|
+
{
|
|
902
|
+
"internalType": "contract IRiskModule",
|
|
903
|
+
"name": "riskModule",
|
|
904
|
+
"type": "address"
|
|
905
|
+
},
|
|
906
|
+
{
|
|
907
|
+
"internalType": "uint40",
|
|
908
|
+
"name": "start",
|
|
909
|
+
"type": "uint40"
|
|
910
|
+
},
|
|
911
|
+
{
|
|
912
|
+
"internalType": "uint40",
|
|
913
|
+
"name": "expiration",
|
|
914
|
+
"type": "uint40"
|
|
915
|
+
}
|
|
916
|
+
],
|
|
917
|
+
"internalType": "struct Policy.PolicyData",
|
|
918
|
+
"name": "policy",
|
|
919
|
+
"type": "tuple"
|
|
920
|
+
}
|
|
921
|
+
],
|
|
922
|
+
"name": "rebalancePolicy",
|
|
923
|
+
"outputs": [],
|
|
924
|
+
"stateMutability": "nonpayable",
|
|
925
|
+
"type": "function"
|
|
926
|
+
},
|
|
927
|
+
{
|
|
928
|
+
"inputs": [
|
|
929
|
+
{
|
|
930
|
+
"internalType": "uint256",
|
|
931
|
+
"name": "amount",
|
|
932
|
+
"type": "uint256"
|
|
933
|
+
}
|
|
934
|
+
],
|
|
935
|
+
"name": "receiveGrant",
|
|
936
|
+
"outputs": [],
|
|
937
|
+
"stateMutability": "nonpayable",
|
|
938
|
+
"type": "function"
|
|
939
|
+
},
|
|
940
|
+
{
|
|
941
|
+
"inputs": [
|
|
942
|
+
{
|
|
943
|
+
"internalType": "contract IEToken",
|
|
944
|
+
"name": "eToken",
|
|
945
|
+
"type": "address"
|
|
946
|
+
}
|
|
947
|
+
],
|
|
948
|
+
"name": "removeEToken",
|
|
949
|
+
"outputs": [],
|
|
950
|
+
"stateMutability": "nonpayable",
|
|
951
|
+
"type": "function"
|
|
952
|
+
},
|
|
953
|
+
{
|
|
954
|
+
"inputs": [
|
|
955
|
+
{
|
|
956
|
+
"internalType": "contract IEToken",
|
|
957
|
+
"name": "eToken",
|
|
958
|
+
"type": "address"
|
|
959
|
+
}
|
|
960
|
+
],
|
|
961
|
+
"name": "repayETokenLoan",
|
|
962
|
+
"outputs": [
|
|
963
|
+
{
|
|
964
|
+
"internalType": "uint256",
|
|
965
|
+
"name": "",
|
|
966
|
+
"type": "uint256"
|
|
967
|
+
}
|
|
968
|
+
],
|
|
969
|
+
"stateMutability": "nonpayable",
|
|
970
|
+
"type": "function"
|
|
971
|
+
},
|
|
972
|
+
{
|
|
973
|
+
"inputs": [
|
|
974
|
+
{
|
|
975
|
+
"components": [
|
|
976
|
+
{
|
|
977
|
+
"internalType": "uint256",
|
|
978
|
+
"name": "id",
|
|
979
|
+
"type": "uint256"
|
|
980
|
+
},
|
|
981
|
+
{
|
|
982
|
+
"internalType": "uint256",
|
|
983
|
+
"name": "payout",
|
|
984
|
+
"type": "uint256"
|
|
985
|
+
},
|
|
986
|
+
{
|
|
987
|
+
"internalType": "uint256",
|
|
988
|
+
"name": "premium",
|
|
989
|
+
"type": "uint256"
|
|
990
|
+
},
|
|
991
|
+
{
|
|
992
|
+
"internalType": "uint256",
|
|
993
|
+
"name": "scr",
|
|
994
|
+
"type": "uint256"
|
|
995
|
+
},
|
|
996
|
+
{
|
|
997
|
+
"internalType": "uint256",
|
|
998
|
+
"name": "lossProb",
|
|
999
|
+
"type": "uint256"
|
|
1000
|
+
},
|
|
1001
|
+
{
|
|
1002
|
+
"internalType": "uint256",
|
|
1003
|
+
"name": "purePremium",
|
|
1004
|
+
"type": "uint256"
|
|
1005
|
+
},
|
|
1006
|
+
{
|
|
1007
|
+
"internalType": "uint256",
|
|
1008
|
+
"name": "premiumForEnsuro",
|
|
1009
|
+
"type": "uint256"
|
|
1010
|
+
},
|
|
1011
|
+
{
|
|
1012
|
+
"internalType": "uint256",
|
|
1013
|
+
"name": "premiumForRm",
|
|
1014
|
+
"type": "uint256"
|
|
1015
|
+
},
|
|
1016
|
+
{
|
|
1017
|
+
"internalType": "uint256",
|
|
1018
|
+
"name": "premiumForLps",
|
|
1019
|
+
"type": "uint256"
|
|
1020
|
+
},
|
|
1021
|
+
{
|
|
1022
|
+
"internalType": "contract IRiskModule",
|
|
1023
|
+
"name": "riskModule",
|
|
1024
|
+
"type": "address"
|
|
1025
|
+
},
|
|
1026
|
+
{
|
|
1027
|
+
"internalType": "uint40",
|
|
1028
|
+
"name": "start",
|
|
1029
|
+
"type": "uint40"
|
|
1030
|
+
},
|
|
1031
|
+
{
|
|
1032
|
+
"internalType": "uint40",
|
|
1033
|
+
"name": "expiration",
|
|
1034
|
+
"type": "uint40"
|
|
1035
|
+
}
|
|
1036
|
+
],
|
|
1037
|
+
"internalType": "struct Policy.PolicyData",
|
|
1038
|
+
"name": "policy",
|
|
1039
|
+
"type": "tuple"
|
|
1040
|
+
},
|
|
1041
|
+
{
|
|
1042
|
+
"internalType": "uint256",
|
|
1043
|
+
"name": "payout",
|
|
1044
|
+
"type": "uint256"
|
|
1045
|
+
}
|
|
1046
|
+
],
|
|
1047
|
+
"name": "resolvePolicy",
|
|
1048
|
+
"outputs": [],
|
|
1049
|
+
"stateMutability": "nonpayable",
|
|
1050
|
+
"type": "function"
|
|
1051
|
+
},
|
|
1052
|
+
{
|
|
1053
|
+
"inputs": [
|
|
1054
|
+
{
|
|
1055
|
+
"components": [
|
|
1056
|
+
{
|
|
1057
|
+
"internalType": "uint256",
|
|
1058
|
+
"name": "id",
|
|
1059
|
+
"type": "uint256"
|
|
1060
|
+
},
|
|
1061
|
+
{
|
|
1062
|
+
"internalType": "uint256",
|
|
1063
|
+
"name": "payout",
|
|
1064
|
+
"type": "uint256"
|
|
1065
|
+
},
|
|
1066
|
+
{
|
|
1067
|
+
"internalType": "uint256",
|
|
1068
|
+
"name": "premium",
|
|
1069
|
+
"type": "uint256"
|
|
1070
|
+
},
|
|
1071
|
+
{
|
|
1072
|
+
"internalType": "uint256",
|
|
1073
|
+
"name": "scr",
|
|
1074
|
+
"type": "uint256"
|
|
1075
|
+
},
|
|
1076
|
+
{
|
|
1077
|
+
"internalType": "uint256",
|
|
1078
|
+
"name": "lossProb",
|
|
1079
|
+
"type": "uint256"
|
|
1080
|
+
},
|
|
1081
|
+
{
|
|
1082
|
+
"internalType": "uint256",
|
|
1083
|
+
"name": "purePremium",
|
|
1084
|
+
"type": "uint256"
|
|
1085
|
+
},
|
|
1086
|
+
{
|
|
1087
|
+
"internalType": "uint256",
|
|
1088
|
+
"name": "premiumForEnsuro",
|
|
1089
|
+
"type": "uint256"
|
|
1090
|
+
},
|
|
1091
|
+
{
|
|
1092
|
+
"internalType": "uint256",
|
|
1093
|
+
"name": "premiumForRm",
|
|
1094
|
+
"type": "uint256"
|
|
1095
|
+
},
|
|
1096
|
+
{
|
|
1097
|
+
"internalType": "uint256",
|
|
1098
|
+
"name": "premiumForLps",
|
|
1099
|
+
"type": "uint256"
|
|
1100
|
+
},
|
|
1101
|
+
{
|
|
1102
|
+
"internalType": "contract IRiskModule",
|
|
1103
|
+
"name": "riskModule",
|
|
1104
|
+
"type": "address"
|
|
1105
|
+
},
|
|
1106
|
+
{
|
|
1107
|
+
"internalType": "uint40",
|
|
1108
|
+
"name": "start",
|
|
1109
|
+
"type": "uint40"
|
|
1110
|
+
},
|
|
1111
|
+
{
|
|
1112
|
+
"internalType": "uint40",
|
|
1113
|
+
"name": "expiration",
|
|
1114
|
+
"type": "uint40"
|
|
1115
|
+
}
|
|
1116
|
+
],
|
|
1117
|
+
"internalType": "struct Policy.PolicyData",
|
|
1118
|
+
"name": "policy",
|
|
1119
|
+
"type": "tuple"
|
|
1120
|
+
},
|
|
1121
|
+
{
|
|
1122
|
+
"internalType": "bool",
|
|
1123
|
+
"name": "customerWon",
|
|
1124
|
+
"type": "bool"
|
|
1125
|
+
}
|
|
1126
|
+
],
|
|
1127
|
+
"name": "resolvePolicyFullPayout",
|
|
1128
|
+
"outputs": [],
|
|
1129
|
+
"stateMutability": "nonpayable",
|
|
1130
|
+
"type": "function"
|
|
1131
|
+
},
|
|
1132
|
+
{
|
|
1133
|
+
"inputs": [
|
|
1134
|
+
{
|
|
1135
|
+
"internalType": "contract IAssetManager",
|
|
1136
|
+
"name": "newAssetManager",
|
|
1137
|
+
"type": "address"
|
|
1138
|
+
}
|
|
1139
|
+
],
|
|
1140
|
+
"name": "setAssetManager",
|
|
1141
|
+
"outputs": [],
|
|
1142
|
+
"stateMutability": "nonpayable",
|
|
1143
|
+
"type": "function"
|
|
1144
|
+
},
|
|
1145
|
+
{
|
|
1146
|
+
"inputs": [],
|
|
1147
|
+
"name": "totalETokenSupply",
|
|
1148
|
+
"outputs": [
|
|
1149
|
+
{
|
|
1150
|
+
"internalType": "uint256",
|
|
1151
|
+
"name": "",
|
|
1152
|
+
"type": "uint256"
|
|
1153
|
+
}
|
|
1154
|
+
],
|
|
1155
|
+
"stateMutability": "view",
|
|
1156
|
+
"type": "function"
|
|
1157
|
+
},
|
|
1158
|
+
{
|
|
1159
|
+
"inputs": [],
|
|
1160
|
+
"name": "unpause",
|
|
1161
|
+
"outputs": [],
|
|
1162
|
+
"stateMutability": "nonpayable",
|
|
1163
|
+
"type": "function"
|
|
1164
|
+
},
|
|
1165
|
+
{
|
|
1166
|
+
"inputs": [
|
|
1167
|
+
{
|
|
1168
|
+
"internalType": "address",
|
|
1169
|
+
"name": "newImplementation",
|
|
1170
|
+
"type": "address"
|
|
1171
|
+
}
|
|
1172
|
+
],
|
|
1173
|
+
"name": "upgradeTo",
|
|
1174
|
+
"outputs": [],
|
|
1175
|
+
"stateMutability": "nonpayable",
|
|
1176
|
+
"type": "function"
|
|
1177
|
+
},
|
|
1178
|
+
{
|
|
1179
|
+
"inputs": [
|
|
1180
|
+
{
|
|
1181
|
+
"internalType": "address",
|
|
1182
|
+
"name": "newImplementation",
|
|
1183
|
+
"type": "address"
|
|
1184
|
+
},
|
|
1185
|
+
{
|
|
1186
|
+
"internalType": "bytes",
|
|
1187
|
+
"name": "data",
|
|
1188
|
+
"type": "bytes"
|
|
1189
|
+
}
|
|
1190
|
+
],
|
|
1191
|
+
"name": "upgradeToAndCall",
|
|
1192
|
+
"outputs": [],
|
|
1193
|
+
"stateMutability": "payable",
|
|
1194
|
+
"type": "function"
|
|
1195
|
+
},
|
|
1196
|
+
{
|
|
1197
|
+
"inputs": [
|
|
1198
|
+
{
|
|
1199
|
+
"internalType": "contract IEToken",
|
|
1200
|
+
"name": "eToken",
|
|
1201
|
+
"type": "address"
|
|
1202
|
+
},
|
|
1203
|
+
{
|
|
1204
|
+
"internalType": "uint256",
|
|
1205
|
+
"name": "amount",
|
|
1206
|
+
"type": "uint256"
|
|
1207
|
+
}
|
|
1208
|
+
],
|
|
1209
|
+
"name": "withdraw",
|
|
1210
|
+
"outputs": [
|
|
1211
|
+
{
|
|
1212
|
+
"internalType": "uint256",
|
|
1213
|
+
"name": "",
|
|
1214
|
+
"type": "uint256"
|
|
1215
|
+
}
|
|
1216
|
+
],
|
|
1217
|
+
"stateMutability": "nonpayable",
|
|
1218
|
+
"type": "function"
|
|
1219
|
+
},
|
|
1220
|
+
{
|
|
1221
|
+
"inputs": [
|
|
1222
|
+
{
|
|
1223
|
+
"internalType": "uint256",
|
|
1224
|
+
"name": "amount",
|
|
1225
|
+
"type": "uint256"
|
|
1226
|
+
}
|
|
1227
|
+
],
|
|
1228
|
+
"name": "withdrawWonPremiums",
|
|
1229
|
+
"outputs": [
|
|
1230
|
+
{
|
|
1231
|
+
"internalType": "uint256",
|
|
1232
|
+
"name": "",
|
|
1233
|
+
"type": "uint256"
|
|
1234
|
+
}
|
|
1235
|
+
],
|
|
1236
|
+
"stateMutability": "nonpayable",
|
|
1237
|
+
"type": "function"
|
|
1238
|
+
},
|
|
1239
|
+
{
|
|
1240
|
+
"inputs": [],
|
|
1241
|
+
"name": "wonPurePremiums",
|
|
1242
|
+
"outputs": [
|
|
1243
|
+
{
|
|
1244
|
+
"internalType": "uint256",
|
|
1245
|
+
"name": "",
|
|
1246
|
+
"type": "uint256"
|
|
1247
|
+
}
|
|
1248
|
+
],
|
|
1249
|
+
"stateMutability": "view",
|
|
1250
|
+
"type": "function"
|
|
1251
|
+
}
|
|
1252
|
+
],
|
|
1253
|
+
"bytecode": "0x6101206040523060601b6080523480156200001957600080fd5b5060405162006284380380620062848339810160408190526200003c9162000105565b6001600160601b0319606084811b821660c05283811b82166101005282901b1660e0526040805163313ce56760e01b815290516003916001600160a01b0384169163313ce56791600480820192602092909190829003018186803b158015620000a457600080fd5b505afa158015620000b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000df919062000159565b620000eb91906200028f565b620000f890600a620001ce565b60a05250620002e4915050565b6000806000606084860312156200011b57600080fd5b83516200012881620002cb565b60208501519093506200013b81620002cb565b60408501519092506200014e81620002cb565b809150509250925092565b6000602082840312156200016c57600080fd5b815160ff811681146200017e57600080fd5b9392505050565b600181815b80851115620001c6578160001904821115620001aa57620001aa620002b5565b80851615620001b857918102915b93841c93908002906200018a565b509250929050565b60006200017e60ff841683600082620001ea5750600162000289565b81620001f95750600062000289565b81600181146200021257600281146200021d576200023d565b600191505062000289565b60ff841115620002315762000231620002b5565b50506001821b62000289565b5060208310610133831016604e8410600b841016171562000262575081810a62000289565b6200026e838362000185565b8060001904821115620002855762000285620002b5565b0290505b92915050565b600060ff821660ff841680821015620002ac57620002ac620002b5565b90039392505050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114620002e157600080fd5b50565b60805160601c60a05160c05160601c60e05160601c6101005160601c615e2262000462600039600081816106db01528181610a7e01528181613898015261401e0152600081816107e401528181610b0001528181610bcc01528181610d1301528181611375015281816114eb0152818161160a01528181611bd201528181613d5f0152614a350152600081816105760152818161098e01528181610b2e015281816110f20152818161115f015281816111f301528181611292015281816113a40152818161187701528181611c6c01528181611d1e01528181611df601528181611fa9015281816123620152818161250c01528181612a4c01528181612b4301528181612d61015281816133be0152818161370d0152818161378b015281816139f001528181613aa301528181613b9f0152613c520152600081816103aa01528181612e5301528181612e870152614430015260008181610fd201528181611012015281816116c40152818161170401526117930152615e226000f3fe6080604052600436106102725760003560e01c806365e29c7e1161014f578063af02808a116100c1578063dea167d51161007a578063dea167d5146107c0578063e5a6b10f146107d5578063e823584a14610808578063f3fef3a31461081d578063f67b2bad1461083d578063fcbb17fe1461085f57600080fd5b8063af02808a146106cc578063b0ec4bcf146106ff578063b63d382e1461071f578063b77ddfea1461073f578063ca143d1814610754578063ce937e7b1461078157600080fd5b8063846253d111610113578063846253d1146105f85780638a9defff146106185780638ca23bc91461063857806398e88ca81461066c5780639e556b2b1461068c578063ab600169146106ac57600080fd5b806365e29c7e1461055257806379502c55146105675780638129fc1c146105ae57806381ced71f146105c35780638456cb59146105e357600080fd5b806343060237116101e8578063536c9a43116101ac578063536c9a431461047d5780635680e145146104925780635b494dd5146104c65780635c975abb146104fa57806363c0f4b11461051d57806365b710081461053257600080fd5b806343060237146103e157806347e7ef24146104015780634a47a3e0146104215780634f1ef2861461045557806352d1902d1461046857600080fd5b806324ea54f41161023a57806324ea54f41461032157806326ccbd22146103435780632a2be82d146103585780633659cfe614610378578063396512fd146103985780633f4ba83a146103cc57600080fd5b8063066dda0e1461027757806319704a3a146102995780631a548a27146102cc5780631c5c4aea146102e1578063220c262b14610301575b600080fd5b34801561028357600080fd5b506102976102923660046157aa565b61087f565b005b3480156102a557600080fd5b506102b96102b4366004615823565b6108da565b6040519081526020015b60405180910390f35b3480156102d857600080fd5b5060ce546102b9565b3480156102ed57600080fd5b506102b96102fc366004615881565b610d88565b34801561030d57600080fd5b506102b961031c3660046158bf565b610da5565b34801561032d57600080fd5b506102b9600080516020615dcd83398151915281565b34801561034f57600080fd5b506102b9610de7565b34801561036457600080fd5b506102b961037336600461560c565b610e0b565b34801561038457600080fd5b5061029761039336600461560c565b610fc7565b3480156103a457600080fd5b506102b97f000000000000000000000000000000000000000000000000000000000000000081565b3480156103d857600080fd5b506102976110a7565b3480156103ed57600080fd5b506102976103fc36600461560c565b611154565b34801561040d57600080fd5b5061029761041c366004615761565b611567565b34801561042d57600080fd5b506102b97fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c081565b610297610463366004615646565b6116b9565b34801561047457600080fd5b506102b9611786565b34801561048957600080fd5b5060d0546102b9565b34801561049e57600080fd5b506102b97f2c09deb013d6a86a9063c95b5e2b10937d1128a3937347eb7e00408ed9fb1a9c81565b3480156104d257600080fd5b506102b97f5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c2781565b34801561050657600080fd5b5060335460ff1660405190151581526020016102c3565b34801561052957600080fd5b506102b9600a81565b34801561053e57600080fd5b5061029761054d36600461560c565b611839565b34801561055e57600080fd5b506102b9611a56565b34801561057357600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020016102c3565b3480156105ba57600080fd5b50610297611b3c565b3480156105cf57600080fd5b506102976105de366004615881565b611bc5565b3480156105ef57600080fd5b50610297611c40565b34801561060457600080fd5b506102b9610613366004615881565b611cd6565b34801561062457600080fd5b5061029761063336600461578d565b611ecc565b34801561064457600080fd5b506102b97fa23b11d346b90fc279e0a917152caf41f3c1247b12211b7cbc0e0e3f8b79405781565b34801561067857600080fd5b5061029761068736600461578d565b611f6b565b34801561069857600080fd5b506102976106a73660046157d9565b612323565b3480156106b857600080fd5b506102976106c736600461589a565b612360565b3480156106d857600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610596565b34801561070b57600080fd5b5061059661071a366004615881565b6124a2565b34801561072b57600080fd5b5061029761073a36600461560c565b6124e0565b34801561074b57600080fd5b506102b961278f565b34801561076057600080fd5b5061077461076f36600461560c565b61284c565b6040516102c3919061593d565b34801561078d57600080fd5b506107a161079c3660046158e4565b612859565b604080516001600160a01b0390931683526020830191909152016102c3565b3480156107cc57600080fd5b506102b961287f565b3480156107e157600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610596565b34801561081457600080fd5b5060cf546102b9565b34801561082957600080fd5b506102b9610838366004615761565b61288b565b34801561084957600080fd5b506102b9600080516020615d8683398151915281565b34801561086b57600080fd5b5061029761087a366004615724565b612a01565b60335460ff16156108ab5760405162461bcd60e51b81526004016108a290615a30565b60405180910390fd5b6108d66108bd36849003840184615806565b826108c95760006108cf565b83602001355b6000612c6f565b5050565b60006108e860335460ff1690565b156109055760405162461bcd60e51b81526004016108a290615a30565b6101208401516001600160a01b038116331461096f5760405162461bcd60e51b815260206004820152602360248201527f4f6e6c792074686520524d2063616e20637265617465206e657720706f6c696360448201526269657360e81b60648201526084016108a2565b604051635dfdc5d760e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063bbfb8bae9060240160006040518083038186803b1580156109d057600080fd5b505afa1580156109e4573d6000803e3d6000fd5b50505050826bffffffffffffffffffffffff166060826001600160a01b0316901b610a0f9190615bf7565b8552610a1a85613018565b8551600090815260cc602052604081209190915560a086015160ce805491929091610a46908490615bf7565b90915550610a55905085613048565b8451604051632851206560e21b81526001600160a01b03868116600483015260248201929092527f00000000000000000000000000000000000000000000000000000000000000009091169063a144819490604401600060405180830381600087803b158015610ac457600080fd5b505af1158015610ad8573d6000803e3d6000fd5b50505050610b2884308761010001518860a00151610af69190615bf7565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929190613206565b610bf4847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166361d027b36040518163ffffffff1660e01b815260040160206040518083038186803b158015610b8557600080fd5b505afa158015610b99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbd9190615629565b60c08801516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929190613206565b60008560e00151118015610c8a5750806001600160a01b031663521eb2736040518163ffffffff1660e01b815260040160206040518083038186803b158015610c3c57600080fd5b505afa158015610c50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c749190615629565b6001600160a01b0316846001600160a01b031614155b15610d3b57610d3b84826001600160a01b031663521eb2736040518163ffffffff1660e01b815260040160206040518083038186803b158015610ccc57600080fd5b505afa158015610ce0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d049190615629565b60e08801516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929190613206565b806001600160a01b03167ff8da20dc84e4c9850943fcd1a0587142b2bac3fef70840ccee41f5edd22bc47786604051610d749190615af3565b60405180910390a2505082515b9392505050565b600081815260cd60205260408120610d9f90613277565b92915050565b600082815260cd6020526040812081908190610dc19085613282565b915091508115610dd4579150610d9f9050565b600092505050610d9f565b505092915050565b600060cf5460d05460ce54610dfc9190615bf7565b610e069190615c50565b905090565b6000610e1960335460ff1690565b15610e365760405162461bcd60e51b81526004016108a290615a30565b600080610e4460c98561329e565b91509150818015610e8157506001816003811115610e6457610e64615cea565b1480610e8157506002816003811115610e7f57610e7f615cea565b145b610ec45760405162461bcd60e51b815260206004820152601460248201527365546f6b656e206973206e6f742061637469766560601b60448201526064016108a2565b6000846001600160a01b03166352a2783b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610eff57600080fd5b505afa158015610f13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f37919061570b565b90506000610f44826132d1565b90506001600160a01b038616631c0f4f81610f5f8385615c50565b6040518263ffffffff1660e01b8152600401610f7d91815260200190565b600060405180830381600087803b158015610f9757600080fd5b505af1158015610fab573d6000803e3d6000fd5b505050508082610fbb9190615c50565b9450505050505b919050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156110105760405162461bcd60e51b81526004016108a290615998565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611059600080516020615d66833981519152546001600160a01b031690565b6001600160a01b03161461107f5760405162461bcd60e51b81526004016108a2906159e4565b61108881613373565b604080516000808252602082019092526110a49183919061341d565b50565b60405163c5b8f5cf60e01b8152600080516020615dcd83398151915260048201819052600080516020615d868339815191526024830181905233604484015290916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5b8f5cf9060640160006040518083038186803b15801561113457600080fd5b505afa158015611148573d6000803e3d6000fd5b505050506108d6613597565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146111e65760405162461bcd60e51b815260206004820152603160248201527f4f6e6c792074686520506f6c696379506f6f6c436f6e6669672063616e20636860448201527030b733b29030b9b9b2ba26b0b730b3b2b960791b60648201526084016108a2565b60006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394217ad16040518163ffffffff1660e01b815260040160206040518083038186803b15801561124a57600080fd5b505afa15801561125e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112829190615629565b6001600160a01b0316146114b5577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394217ad16040518163ffffffff1660e01b815260040160206040518083038186803b1580156112e957600080fd5b505afa1580156112fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113219190615629565b6001600160a01b031663cec16f3f6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561135b57600080fd5b505af115801561136f573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663095ea7b37f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394217ad16040518163ffffffff1660e01b815260040160206040518083038186803b1580156113fb57600080fd5b505afa15801561140f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114339190615629565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260006024820152604401602060405180830381600087803b15801561147b57600080fd5b505af115801561148f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b391906156ee565b505b6001600160a01b038116156110a45760405163095ea7b360e01b81526001600160a01b03828116600483015260001960248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b390604401602060405180830381600087803b15801561152f57600080fd5b505af1158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d691906156ee565b60335460ff161561158a5760405162461bcd60e51b81526004016108a290615a30565b60008061159860c98561329e565b915091508180156115ba575060018160038111156115b8576115b8615cea565b145b6115fd5760405162461bcd60e51b815260206004820152601460248201527365546f6b656e206973206e6f742061637469766560601b60448201526064016108a2565b6116326001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333086613206565b6040516311f9fbc960e21b8152336004820152602481018490526001600160a01b038516906347e7ef2490604401602060405180830381600087803b15801561167a57600080fd5b505af115801561168e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b2919061570b565b5050505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156117025760405162461bcd60e51b81526004016108a290615998565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661174b600080516020615d66833981519152546001600160a01b031690565b6001600160a01b0316146117715760405162461bcd60e51b81526004016108a2906159e4565b61177a82613373565b6108d68282600161341d565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146118265760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016108a2565b50600080516020615d6683398151915290565b6040516312d9a6ad60e01b81527f5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c2760048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906312d9a6ad9060440160006040518083038186803b1580156118c157600080fd5b505afa1580156118d5573d6000803e3d6000fd5b50600292506118e2915050565b6118ed60c98461362a565b60038111156118fe576118fe615cea565b146119435760405162461bcd60e51b815260206004820152601560248201527411551bdad95b881b9bdd0819195c1c9958d85d1959605a1b60448201526064016108a2565b816001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561197c57600080fd5b505afa158015611990573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119b4919061570b565b15611a105760405162461bcd60e51b815260206004820152602660248201527f45546f6b656e20686173206c69717569646974792c2063616e27742062652072604482015265195b5bdd995960d21b60648201526084016108a2565b816001600160a01b03167f84b036748e342a63da09ea533edd13275c8f2eb94ba67374cd3c7f4d6461d52c6000604051611a4a919061593d565b60405180910390a25050565b600080805b611a6560c9613277565b811015611b0d576000611a7960c983613647565b509050806001600160a01b03166352a2783b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611ab557600080fd5b505afa158015611ac9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aed919061570b565b611af79084615bf7565b9250508080611b0590615cb9565b915050611a5b565b506000611b18610de7565b905081811115611b3357611b2c8282615c50565b9250505090565b60009250505090565b600054610100900460ff16611b575760005460ff1615611b5b565b303b155b611b775760405162461bcd60e51b81526004016108a290615a5a565b600054610100900460ff16158015611b99576000805461ffff19166101011790555b611ba1613656565b611ba961367f565b611bb16136ae565b80156110a4576000805461ff001916905550565b611bfa6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084613206565b611c038161391d565b6040805160018152602081018390527fd60d524f1cae273480bb0a4ddfb992b6ac0b61c8e12ffbe2e4e31463f9e90199910160405180910390a150565b6040516312d9a6ad60e01b8152600080516020615dcd83398151915260048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906312d9a6ad9060440160006040518083038186803b158015611cb657600080fd5b505afa158015611cca573d6000803e3d6000fd5b505050506110a4613982565b6040516312d9a6ad60e01b81527fa23b11d346b90fc279e0a917152caf41f3c1247b12211b7cbc0e0e3f8b794057600482018190523360248301526000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906312d9a6ad9060440160006040518083038186803b158015611d6057600080fd5b505afa158015611d74573d6000803e3d6000fd5b5050505060d054831115611d885760d05492505b60008311611dd85760405162461bcd60e51b815260206004820152601760248201527f4e6f207072656d69756d7320746f20776974686472617700000000000000000060448201526064016108a2565b8260d06000828254611dea9190615c50565b92505081905550611e8b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166361d027b36040518163ffffffff1660e01b815260040160206040518083038186803b158015611e4d57600080fd5b505afa158015611e61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e859190615629565b846139da565b6040805160008152602081018590527fd60d524f1cae273480bb0a4ddfb992b6ac0b61c8e12ffbe2e4e31463f9e90199910160405180910390a15090919050565b60335460ff1615611eef5760405162461bcd60e51b81526004016108a290615a30565b42611f0261018083016101608401615906565b64ffffffffff161115611f505760405162461bcd60e51b8152602060048201526016602482015275141bdb1a58de481b9bdd08195e1c1a5c9959081e595d60521b60448201526064016108a2565b6110a4611f6236839003830183615806565b60006001612c6f565b6040516312d9a6ad60e01b81527f2c09deb013d6a86a9063c95b5e2b10937d1128a3937347eb7e00408ed9fb1a9c60048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906312d9a6ad9060440160006040518083038186803b158015611ff357600080fd5b505afa158015612007573d6000803e3d6000fd5b5050505061201760335460ff1690565b156120345760405162461bcd60e51b81526004016108a290615a30565b61204b61204636849003840184615806565b613d86565b8135600090815260cd6020526040812090805b61206860c9613277565b8110156122b25760008061207d60c984613647565b9092509050600080806120908886613282565b91509150811561211a576001600160a01b038516634438bcbb6120c06120bb368e90038e018e615806565b613dec565b836040518363ffffffff1660e01b81526004016120e7929190918252602082015260400190565b600060405180830381600087803b15801561210157600080fd5b505af1158015612115573d6000803e3d6000fd5b505050505b600184600381111561212e5761212e615cea565b1480156121ec57506001600160a01b03851663334871546121576101408d016101208e0161560c565b6121696101808e016101608f01615906565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015264ffffffffff16602482015260440160206040518083038186803b1580156121b457600080fd5b505afa1580156121c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ec91906156ee565b1561226557846001600160a01b031663e5ae143f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561222a57600080fd5b505afa15801561223e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612262919061570b565b92505b8261228157811561227c5761227a8886613e46565b505b61229a565b61228c888685613e52565b506122978388615bf7565b96505b505050505080806122aa90615cb9565b91505061205e565b506122d460608501356122cd6120bb36889003880188615806565b8385613e67565b83356122e86101408601610120870161560c565b6001600160a01b03167f5b6693e57e2edc10453988a22e50a605795daee9a5dde66f5267b0dee0a6b60660405160405180910390a350505050565b60335460ff16156123465760405162461bcd60e51b81526004016108a290615a30565b6108d661235836849003840184615806565b826000612c6f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394217ad16040518163ffffffff1660e01b815260040160206040518083038186803b1580156123b957600080fd5b505afa1580156123cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f19190615629565b6001600160a01b0316336001600160a01b0316146124625760405162461bcd60e51b815260206004820152602860248201527f4f6e6c792061737365744d616e616765722063616e2063616c6c207468697320604482015267333ab731ba34b7b760c11b60648201526084016108a2565b60335460ff16156124855760405162461bcd60e51b81526004016108a290615a30565b8015612494576108d68261391d565b61249d826132d1565b505050565b600080806124b160c985613647565b909250905060008160038111156124ca576124ca615cea565b146124d6575092915050565b5060009392505050565b6040516312d9a6ad60e01b8152600080516020615d8683398151915260048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906312d9a6ad9060440160006040518083038186803b15801561255657600080fd5b505afa15801561256a573d6000803e3d6000fd5b50505050600a61257a60c9613277565b106125d15760405162461bcd60e51b815260206004820152602160248201527f4d6178696d756d206e756d626572206f662045546f6b656e73207265616368656044820152601960fa1b60648201526084016108a2565b6125dc60c983613fba565b156126295760405162461bcd60e51b815260206004820152601a60248201527f65546f6b656e20616c726561647920696e2074686520706f6f6c00000000000060448201526064016108a2565b6001600160a01b0382166126765760405162461bcd60e51b815260206004820152601460248201527365546f6b656e2063616e2774206265207a65726f60601b60448201526064016108a2565b306001600160a01b0316826001600160a01b0316634d15eb036040518163ffffffff1660e01b815260040160206040518083038186803b1580156126b957600080fd5b505afa1580156126cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126f19190615629565b6001600160a01b0316146127475760405162461bcd60e51b815260206004820152601e60248201527f45546f6b656e206e6f74206c696e6b656420746f207468697320706f6f6c000060448201526064016108a2565b61275460c9836001613fc6565b50816001600160a01b03167f84b036748e342a63da09ea533edd13275c8f2eb94ba67374cd3c7f4d6461d52c6001604051611a4a919061593d565b600080805b61279e60c9613277565b8110156128465760006127b260c983613647565b509050806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156127ee57600080fd5b505afa158015612802573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612826919061570b565b6128309084615bf7565b925050808061283e90615cb9565b915050612794565b50919050565b6000610d9f60c98361362a565b600082815260cd6020526040812081906128739084613fe4565b915091505b9250929050565b6000610e0660c9613277565b600061289960335460ff1690565b156128b65760405162461bcd60e51b81526004016108a290615a30565b6000806128c460c98661329e565b91509150818015612901575060018160038111156128e4576128e4615cea565b1480612901575060028160038111156128ff576128ff615cea565b145b61295f5760405162461bcd60e51b815260206004820152602960248201527f65546f6b656e206e6f7420666f756e64206f7220776974686472617773206e6f6044820152681d08185b1b1bddd95960ba1b60648201526084016108a2565b60405163f3fef3a360e01b8152336004820181905260248201869052906000906001600160a01b0388169063f3fef3a390604401602060405180830381600087803b1580156129ad57600080fd5b505af11580156129c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129e5919061570b565b905080156129f7576129f782826139da565b9695505050505050565b60405163c5b8f5cf60e01b8152600080516020615dcd83398151915260048201819052600080516020615d868339815191526024830181905233604484015290916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5b8f5cf9060640160006040518083038186803b158015612a8e57600080fd5b505afa158015612aa2573d6000803e3d6000fd5b50505050612aba8460c9613fba90919063ffffffff16565b612afe5760405162461bcd60e51b8152602060048201526015602482015274149a5cdac8135bd91d5b19481b9bdd08199bdd5b99605a1b60448201526064016108a2565b6003836003811115612b1257612b12615cea565b141580612bc55750604051632474521560e21b8152600080516020615dcd83398151915260048201523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d148549060440160206040518083038186803b158015612b8d57600080fd5b505afa158015612ba1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bc591906156ee565b612c1b5760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920475541524449414e2063616e2073757370656e642065546f6b656e6044820152607360f81b60648201526084016108a2565b612c2760c98585613fc6565b50836001600160a01b03167f84b036748e342a63da09ea533edd13275c8f2eb94ba67374cd3c7f4d6461d52c84604051612c61919061593d565b60405180910390a250505050565b612c7883613d86565b6101208301518180612c9257506001600160a01b03811633145b612cde5760405162461bcd60e51b815260206004820181905260248201527f4f6e6c792074686520524d2063616e207265736f6c766520706f6c696369657360448201526064016108a2565b821580612cf657504284610160015164ffffffffff16115b612d425760405162461bcd60e51b815260206004820152601860248201527f43616e277420706179206578706972656420706f6c696379000000000000000060448201526064016108a2565b6040516310f199ef60e31b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063878ccf789060240160006040518083038186803b158015612da357600080fd5b505afa158015612db7573d6000803e3d6000fd5b505050508360200151831115612e085760405162461bcd60e51b81526020600482015260166024820152751c185e5bdd5d080f881c1bdb1a58de4b9c185e5bdd5d60521b60448201526064016108a2565b600080841190508460a0015160ce6000828254612e259190615c50565b909155506000905080612e39878488613ff3565b915091508215612f12576000612e4f888461414d565b90507f0000000000000000000000000000000000000000000000000000000000000000811115612e8557612e8281614359565b90505b7f0000000000000000000000000000000000000000000000000000000000000000811115612f0c5760405162461bcd60e51b815260206004820152602e60248201527f446f6e2774206b6e6f7720776865726520746f2074616b65207468652072657360448201526d74206f6620746865206d6f6e657960901b60648201526084016108a2565b50612f1f565b612f1c8782614478565b90505b612f288161391d565b6060870151604051634e5de6c960e11b815260048101919091526001600160a01b03851690639cbbcd9290602401600060405180830381600087803b158015612f7057600080fd5b505af1158015612f84573d6000803e3d6000fd5b5050505086600001518761012001516001600160a01b03167f54f4a270ea08f88dc23b2520d6b063fecb24d956c4496f447926d736338f545e88604051612fcd91815260200190565b60405180910390a38651600090815260cc602090815260408083208390558951835260cd90915281209081818181818161300782826154fc565b505050505050505050505050505050565b60008160405160200161302b9190615af3565b604051602081830303815290604052805190602001209050919050565b8051600090815260cd60205260408120815b61306460c9613277565b8110156131ed5760008061307960c984613647565b9092509050600181600381111561309257613092615cea565b1461309e5750506131db565b610120860151610160870151604051630cd21c5560e21b81526001600160a01b03928316600482015264ffffffffff90911660248201529083169063334871549060440160206040518083038186803b1580156130fa57600080fd5b505afa15801561310e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061313291906156ee565b61313d5750506131db565b6000826001600160a01b031663e5ae143f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561317857600080fd5b505afa15801561318c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131b0919061570b565b9050806131bf575050506131db565b6131c98187615bf7565b95506131d6858483613e52565b505050505b806131e581615cb9565b91505061305a565b5061249d83606001516131ff85613dec565b8484613e67565b6040516001600160a01b03808516602483015283166044820152606481018290526132719085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261475a565b50505050565b6000610d9f8261482c565b60008080806132918686614837565b9097909650945050505050565b60008080806132ad8686614837565b91509150818160038111156132c4576132c4615cea565b9350935050509250929050565b600060d05482116132fb578160d060008282546132ee9190615c50565b9091555060009392505050565b60d054156133185760d0546133109083615c50565b600060d05591505b60cf5460ce54111561336f5760cf5460ce546133349190615c50565b821161334c578160cf60008282546132ee9190615bf7565b60cf5460ce5461335c9190615c50565b6133669083615c50565b60ce5460cf5591505b5090565b60405163c5b8f5cf60e01b8152600080516020615dcd83398151915260048201819052600080516020615d868339815191526024830181905233604484015290916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5b8f5cf9060640160006040518083038186803b15801561340057600080fd5b505afa158015613414573d6000803e3d6000fd5b50505050505050565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156134505761249d8361487a565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561348957600080fd5b505afa9250505080156134b9575060408051601f3d908101601f191682019092526134b69181019061570b565b60015b61351c5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016108a2565b600080516020615d66833981519152811461358b5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016108a2565b5061249d838383614916565b60335460ff166135e05760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016108a2565b6033805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6000613636838361493b565b6003811115610d8157610d81615cea565b60008080806132ad86866149b5565b600054610100900460ff1661367d5760405162461bcd60e51b81526004016108a290615aa8565b565b600054610100900460ff166136a65760405162461bcd60e51b81526004016108a290615aa8565b61367d6149ea565b600054610100900460ff166136c95760005460ff16156136cd565b303b155b6136e95760405162461bcd60e51b81526004016108a290615a5a565b600054610100900460ff1615801561370b576000805461ffff19166101011790555b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663948cb7196040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561376657600080fd5b505af115801561377a573d6000803e3d6000fd5b5050505060006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394217ad16040518163ffffffff1660e01b815260040160206040518083038186803b1580156137e257600080fd5b505afa1580156137f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061381a9190615629565b6001600160a01b0316146138965760405162461bcd60e51b815260206004820152603a60248201527f41737365744d616e616765722063616e277420626520736574206265666f726560448201527f20506f6c696379506f6f6c20696e697469616c697a6174696f6e00000000000060648201526084016108a2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663948cb7196040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156138f157600080fd5b505af1158015613905573d6000803e3d6000fd5b5050505080156110a4576000805461ff001916905550565b806139255750565b8060cf541061394b578060cf60008282546139409190615c50565b909155506110a49050565b60cf54156139685760cf546139609082615c50565b600060cf5590505b8060d0600082825461397a9190615bf7565b909155505050565b60335460ff16156139a55760405162461bcd60e51b81526004016108a290615a30565b6033805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861360d3390565b806139e3575050565b60006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394217ad16040518163ffffffff1660e01b815260040160206040518083038186803b158015613a4757600080fd5b505afa158015613a5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a7f9190615629565b6001600160a01b031614158015613a9c575080613a9a614a1d565b105b15613b92577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394217ad16040518163ffffffff1660e01b815260040160206040518083038186803b158015613afa57600080fd5b505afa158015613b0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b329190615629565b6001600160a01b0316631014a0c2826040518263ffffffff1660e01b8152600401613b5f91815260200190565b600060405180830381600087803b158015613b7957600080fd5b505af1158015613b8d573d6000803e3d6000fd5b505050505b60006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631455cd286040518163ffffffff1660e01b815260040160206040518083038186803b158015613bf657600080fd5b505afa158015613c0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c2e9190615629565b6001600160a01b031614158015613c4b575080613c49614a1d565b105b15613d52577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631455cd286040518163ffffffff1660e01b815260040160206040518083038186803b158015613ca957600080fd5b505afa158015613cbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ce19190615629565b6001600160a01b031663ee842dda613cf7614a1d565b613d019084615c50565b6040518263ffffffff1660e01b8152600401613d1f91815260200190565b600060405180830381600087803b158015613d3957600080fd5b505af1158015613d4d573d6000803e3d6000fd5b505050505b6108d66001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168383614ab7565b805115801590613dad57508051600090815260cc6020526040902054613dab82613018565b145b6110a45760405162461bcd60e51b815260206004820152601060248201526f141bdb1a58de481b9bdd08199bdd5b9960821b60448201526064016108a2565b6000610d9f613e418360600151846101400151856101600151613e0f9190615c67565b64ffffffffff16613e209190615c31565b610100850151613e3b906a1a1601fc4ea7109e000000614ae7565b90614bb8565b614cb8565b6000610d818383614d36565b6000613e5f848484614d5d565b949350505050565b83821015613ec55760405162461bcd60e51b815260206004820152602560248201527f4e6f7420656e6f75676874206f6365616e20746f20636f7665722074686520706044820152646f6c69637960d81b60648201526084016108a2565b8360005b613ed283613277565b811015613fb25760008080613ee78685613fe4565b915091506001613ef687613277565b613f009190615c50565b841015613f1c57613f1587613e3b8b84614ae7565b9250613f20565b8492505b60405163837c83a360e01b815260048101899052602481018490526001600160a01b0383169063837c83a390604401600060405180830381600087803b158015613f6957600080fd5b505af1158015613f7d573d6000803e3d6000fd5b50613f8f925088915084905085613e52565b50613f9a8386615c50565b94505050508080613faa90615cb9565b915050613ec9565b505050505050565b6000610d818383614d84565b6000613e5f8484846003811115613fdf57613fdf615cea565b614d5d565b600080808061329186866149b5565b600080600080600086156140ed5787516040516331a9108f60e11b81526140ab916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691636352211e916140559160040190815260200190565b60206040518083038186803b15801561406d57600080fd5b505afa158015614081573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140a59190615629565b876139da565b858860a0015111156140ce57858860a001516140c79190615c50565b9150614140565b6140e68860a00151876140e19190615c50565b6132d1565b9250614140565b8760a00151915060ce5460cf5411156141405761411960ce5460cf546141139190615c50565b83614d90565b90508060cf600082825461412d9190615c50565b9091555061413d90508183615c50565b91505b5090969095509350505050565b6000808061415a85613dec565b905060008061416887614d9f565b8851600090815260cd602052604081209294509092505b61418882613277565b81101561434c5760008061419c8484613fe4565b604051634438bcbb60e01b8152600481018a90526024810182905291935091506001600160a01b03831690634438bcbb90604401600060405180830381600087803b1580156141ea57600080fd5b505af11580156141fe573d6000803e3d6000fd5b50505060608c015161421291508290614bb8565b90506001600160a01b03821663aa69d74b61422d8784614ae7565b6040516001600160e01b031960e084901b16815260048101919091528815156024820152604401600060405180830381600087803b15801561426e57600080fd5b505af1158015614282573d6000803e3d6000fd5b5050505060008a111561433757600061429b8b83614ae7565b604051630c1ceca560e21b815260048101829052600160248201529091506001600160a01b03841690633073b29490604401602060405180830381600087803b1580156142e757600080fd5b505af11580156142fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061431f919061570b565b6143299082615c50565b614333908a615bf7565b9850505b5050808061434490615cb9565b91505061417f565b5093979650505050505050565b6000805b61436760c9613277565b8110156144715760008061437c60c984613647565b9092509050600181600381111561439557614395615cea565b146143a157505061445f565b604051630c1ceca560e21b815260048101869052600060248201526001600160a01b03831690633073b29490604401602060405180830381600087803b1580156143ea57600080fd5b505af11580156143fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614422919061570b565b61442c9086615c50565b94507f0000000000000000000000000000000000000000000000000000000000000000851161445c575050614471565b50505b8061446981615cb9565b91505061435d565b5090919050565b60008061448484613dec565b905060008061449286614d9f565b8751600090815260cd602052604081209294509092505b6144b282613277565b81101561474e576000806144c68484613fe4565b604051634438bcbb60e01b8152600481018a90526024810182905291935091506001600160a01b03831690634438bcbb90604401600060405180830381600087803b15801561451457600080fd5b505af1158015614528573d6000803e3d6000fd5b50505060608b015161453c91508290614bb8565b90506001600160a01b03821663aa69d74b6145578784614ae7565b6040516001600160e01b031960e084901b16815260048101919091528815156024820152604401600060405180830381600087803b15801561459857600080fd5b505af11580156145ac573d6000803e3d6000fd5b5050505060008911801561463057506000826001600160a01b03166352a2783b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156145f657600080fd5b505afa15801561460a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061462e919061570b565b115b156147395760a08a01516000906146479083614ae7565b90506146cc8a6146c7856001600160a01b03166352a2783b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561468957600080fd5b505afa15801561469d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146c1919061570b565b84614d90565b614d90565b604051631c0f4f8160e01b8152600481018290529091506001600160a01b03841690631c0f4f8190602401600060405180830381600087803b15801561471157600080fd5b505af1158015614725573d6000803e3d6000fd5b50505050808a6147359190615c50565b9950505b5050808061474690615cb9565b9150506144a9565b50949695505050505050565b60006147af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614deb9092919063ffffffff16565b80519091501561249d57808060200190518101906147cd91906156ee565b61249d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016108a2565b6000610d9f82614dfa565b6001600160a01b038116600090815260028301602052604081205481908061486f576148638585614d84565b60009250925050612878565b600192509050612878565b6001600160a01b0381163b6148e75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016108a2565b600080516020615d6683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61491f83614e04565b60008251118061492c5750805b1561249d576132718383614e44565b6001600160a01b03811660009081526002830160205260408120548015158061496957506149698484614d84565b610d815760405162461bcd60e51b815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579000060448201526064016108a2565b600080806149c38585614f38565b6001600160a01b038116600090815260029690960160205260409095205494959350505050565b600054610100900460ff16614a115760405162461bcd60e51b81526004016108a290615aa8565b6033805460ff19169055565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b158015614a7f57600080fd5b505afa158015614a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e06919061570b565b6040516001600160a01b03831660248201526044810182905261249d90849063a9059cbb60e01b9060640161323a565b6000821580614af4575081155b15614b0157506000610d9f565b81614b156002670de0b6b3a7640000615c0f565b614b2190600019615c50565b614b2b9190615c0f565b831115614b865760405162461bcd60e51b8152602060048201526024808201527f7761644d756c3a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b60648201526084016108a2565b670de0b6b3a7640000614b9a600282615c0f565b614ba48486615c31565b614bae9190615bf7565b610d819190615c0f565b600081614c075760405162461bcd60e51b815260206004820152601860248201527f7761644469763a204469766973696f6e206279207a65726f000000000000000060448201526064016108a2565b6000614c14600284615c0f565b9050670de0b6b3a7640000614c2b82600019615c50565b614c359190615c0f565b841115614c905760405162461bcd60e51b8152602060048201526024808201527f7761644469763a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b60648201526084016108a2565b8281614ca4670de0b6b3a764000087615c31565b614cae9190615bf7565b613e5f9190615c0f565b600080614cc9633b9aca0084615c31565b905082614cda633b9aca0083615c0f565b14610d9f5760405162461bcd60e51b815260206004820152602660248201527f776164546f5261643a204d617468204d756c7469706c69636174696f6e204f766044820152656572666c6f7760d01b60648201526084016108a2565b6001600160a01b03811660009081526002830160205260408120819055610d818383614f44565b6001600160a01b03821660009081526002840160205260408120829055613e5f8484614f59565b6000610d818383614f6e565b60008183106144715781610d81565b6000806000614dad84614f90565b90508084610100015110614dd857600181856101000151614dce9190615c50565b9250925050915091565b600084610100015182614dce9190615c50565b6060613e5f8484600085614ff7565b6000610d9f825490565b614e0d8161487a565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b614eac5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016108a2565b600080846001600160a01b031684604051614ec79190615921565b600060405180830381855af49150503d8060008114614f02576040519150601f19603f3d011682016040523d82523d6000602084013e614f07565b606091505b5091509150614f2f8282604051806060016040528060278152602001615da660279139615128565b95945050505050565b6000610d818383615161565b6000610d81836001600160a01b03841661518b565b6000610d81836001600160a01b03841661527e565b6001600160a01b03811660009081526001830160205260408120541515610d81565b60008082610140015164ffffffffff1642614fab9190615c50565b9050610d81614ff26e0612d847b578e7643c28ac00000000614fec614fcf87613dec565b614fd99086615c31565b614fe68860600151614cb8565b906152cd565b90615388565b61547c565b6060824710156150585760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016108a2565b6001600160a01b0385163b6150af5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016108a2565b600080866001600160a01b031685876040516150cb9190615921565b60006040518083038185875af1925050503d8060008114615108576040519150601f19603f3d011682016040523d82523d6000602084013e61510d565b606091505b509150915061511d828286615128565b979650505050505050565b60608315615137575081610d81565b8251156151475782518084602001fd5b8160405162461bcd60e51b81526004016108a29190615965565b600082600001828154811061517857615178615d16565b9060005260206000200154905092915050565b600081815260018301602052604081205480156152745760006151af600183615c50565b85549091506000906151c390600190615c50565b90508181146152285760008660000182815481106151e3576151e3615d16565b906000526020600020015490508087600001848154811061520657615206615d16565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061523957615239615d00565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610d9f565b6000915050610d9f565b60008181526001830160205260408120546152c557508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610d9f565b506000610d9f565b60008215806152da575081155b156152e757506000610d9f565b816152ff60026b033b2e3c9fd0803ce8000000615c0f565b61530b90600019615c50565b6153159190615c0f565b8311156153705760405162461bcd60e51b8152602060048201526024808201527f7261794d756c3a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b60648201526084016108a2565b6b033b2e3c9fd0803ce8000000614b9a600282615c0f565b6000816153d75760405162461bcd60e51b815260206004820152601860248201527f7261794469763a204469766973696f6e206279207a65726f000000000000000060448201526064016108a2565b60006153e4600284615c0f565b90506b033b2e3c9fd0803ce80000006153ff82600019615c50565b6154099190615c0f565b8411156154645760405162461bcd60e51b8152602060048201526024808201527f7261794469763a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b60648201526084016108a2565b8281614ca46b033b2e3c9fd0803ce800000087615c31565b60008061548e6002633b9aca00615c0f565b9050600061549c8483615bf7565b9050818110156154ee5760405162461bcd60e51b815260206004820181905260248201527f726179546f5761643a204d617468204164646974696f6e204f766572666c6f7760448201526064016108a2565b613e5f633b9aca0082615c0f565b50805460008255906000526020600020908101906110a491905b8082111561336f5760008155600101615516565b8035610fc281615d42565b6000610180828403121561284657600080fd5b6000610180828403121561555b57600080fd5b615563615b9c565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e08201526101008083013581830152506101206155c981840161552a565b908201526101406155db8382016155f7565b908201526101606155ed8382016155f7565b9082015292915050565b803564ffffffffff81168114610fc257600080fd5b60006020828403121561561e57600080fd5b8135610d8181615d42565b60006020828403121561563b57600080fd5b8151610d8181615d42565b6000806040838503121561565957600080fd5b823561566481615d42565b915060208381013567ffffffffffffffff8082111561568257600080fd5b818601915086601f83011261569657600080fd5b8135818111156156a8576156a8615d2c565b6156ba601f8201601f19168501615bc6565b915080825287848285010111156156d057600080fd5b80848401858401376000848284010152508093505050509250929050565b60006020828403121561570057600080fd5b8151610d8181615d57565b60006020828403121561571d57600080fd5b5051919050565b6000806040838503121561573757600080fd5b823561574281615d42565b915060208301356004811061575657600080fd5b809150509250929050565b6000806040838503121561577457600080fd5b823561577f81615d42565b946020939093013593505050565b600061018082840312156157a057600080fd5b610d818383615535565b6000806101a083850312156157be57600080fd5b6157c88484615535565b915061018083013561575681615d57565b6000806101a083850312156157ed57600080fd5b6157f78484615535565b94610180939093013593505050565b6000610180828403121561581957600080fd5b610d818383615548565b60008060006101c0848603121561583957600080fd5b6158438585615548565b925061018084013561585481615d42565b91506101a08401356bffffffffffffffffffffffff8116811461587657600080fd5b809150509250925092565b60006020828403121561589357600080fd5b5035919050565b600080604083850312156158ad57600080fd5b82359150602083013561575681615d57565b600080604083850312156158d257600080fd5b82359150602083013561575681615d42565b600080604083850312156158f757600080fd5b50508035926020909101359150565b60006020828403121561591857600080fd5b610d81826155f7565b60008251615933818460208701615c8d565b9190910192915050565b602081016004831061595f57634e487b7160e01b600052602160045260246000fd5b91905290565b6020815260008251806020840152615984816040850160208701615c8d565b601f01601f19169190910160400192915050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600061018082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151615b6d828501826001600160a01b03169052565b50506101408381015164ffffffffff81168483015250506101608381015164ffffffffff811684830152610ddf565b604051610180810167ffffffffffffffff81118282101715615bc057615bc0615d2c565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715615bef57615bef615d2c565b604052919050565b60008219821115615c0a57615c0a615cd4565b500190565b600082615c2c57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615615c4b57615c4b615cd4565b500290565b600082821015615c6257615c62615cd4565b500390565b600064ffffffffff83811690831681811015615c8557615c85615cd4565b039392505050565b60005b83811015615ca8578181015183820152602001615c90565b838111156132715750506000910152565b6000600019821415615ccd57615ccd615cd4565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146110a457600080fd5b80151581146110a457600080fdfe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656455435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a2646970667358221220ac39d667c6aa70ddd514c799f56070b84a9943190043dc6a2d08953095ab5edc64736f6c63430008060033",
|
|
1254
|
+
"deployedBytecode": "0x6080604052600436106102725760003560e01c806365e29c7e1161014f578063af02808a116100c1578063dea167d51161007a578063dea167d5146107c0578063e5a6b10f146107d5578063e823584a14610808578063f3fef3a31461081d578063f67b2bad1461083d578063fcbb17fe1461085f57600080fd5b8063af02808a146106cc578063b0ec4bcf146106ff578063b63d382e1461071f578063b77ddfea1461073f578063ca143d1814610754578063ce937e7b1461078157600080fd5b8063846253d111610113578063846253d1146105f85780638a9defff146106185780638ca23bc91461063857806398e88ca81461066c5780639e556b2b1461068c578063ab600169146106ac57600080fd5b806365e29c7e1461055257806379502c55146105675780638129fc1c146105ae57806381ced71f146105c35780638456cb59146105e357600080fd5b806343060237116101e8578063536c9a43116101ac578063536c9a431461047d5780635680e145146104925780635b494dd5146104c65780635c975abb146104fa57806363c0f4b11461051d57806365b710081461053257600080fd5b806343060237146103e157806347e7ef24146104015780634a47a3e0146104215780634f1ef2861461045557806352d1902d1461046857600080fd5b806324ea54f41161023a57806324ea54f41461032157806326ccbd22146103435780632a2be82d146103585780633659cfe614610378578063396512fd146103985780633f4ba83a146103cc57600080fd5b8063066dda0e1461027757806319704a3a146102995780631a548a27146102cc5780631c5c4aea146102e1578063220c262b14610301575b600080fd5b34801561028357600080fd5b506102976102923660046157aa565b61087f565b005b3480156102a557600080fd5b506102b96102b4366004615823565b6108da565b6040519081526020015b60405180910390f35b3480156102d857600080fd5b5060ce546102b9565b3480156102ed57600080fd5b506102b96102fc366004615881565b610d88565b34801561030d57600080fd5b506102b961031c3660046158bf565b610da5565b34801561032d57600080fd5b506102b9600080516020615dcd83398151915281565b34801561034f57600080fd5b506102b9610de7565b34801561036457600080fd5b506102b961037336600461560c565b610e0b565b34801561038457600080fd5b5061029761039336600461560c565b610fc7565b3480156103a457600080fd5b506102b97f000000000000000000000000000000000000000000000000000000000000000081565b3480156103d857600080fd5b506102976110a7565b3480156103ed57600080fd5b506102976103fc36600461560c565b611154565b34801561040d57600080fd5b5061029761041c366004615761565b611567565b34801561042d57600080fd5b506102b97fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c081565b610297610463366004615646565b6116b9565b34801561047457600080fd5b506102b9611786565b34801561048957600080fd5b5060d0546102b9565b34801561049e57600080fd5b506102b97f2c09deb013d6a86a9063c95b5e2b10937d1128a3937347eb7e00408ed9fb1a9c81565b3480156104d257600080fd5b506102b97f5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c2781565b34801561050657600080fd5b5060335460ff1660405190151581526020016102c3565b34801561052957600080fd5b506102b9600a81565b34801561053e57600080fd5b5061029761054d36600461560c565b611839565b34801561055e57600080fd5b506102b9611a56565b34801561057357600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020016102c3565b3480156105ba57600080fd5b50610297611b3c565b3480156105cf57600080fd5b506102976105de366004615881565b611bc5565b3480156105ef57600080fd5b50610297611c40565b34801561060457600080fd5b506102b9610613366004615881565b611cd6565b34801561062457600080fd5b5061029761063336600461578d565b611ecc565b34801561064457600080fd5b506102b97fa23b11d346b90fc279e0a917152caf41f3c1247b12211b7cbc0e0e3f8b79405781565b34801561067857600080fd5b5061029761068736600461578d565b611f6b565b34801561069857600080fd5b506102976106a73660046157d9565b612323565b3480156106b857600080fd5b506102976106c736600461589a565b612360565b3480156106d857600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610596565b34801561070b57600080fd5b5061059661071a366004615881565b6124a2565b34801561072b57600080fd5b5061029761073a36600461560c565b6124e0565b34801561074b57600080fd5b506102b961278f565b34801561076057600080fd5b5061077461076f36600461560c565b61284c565b6040516102c3919061593d565b34801561078d57600080fd5b506107a161079c3660046158e4565b612859565b604080516001600160a01b0390931683526020830191909152016102c3565b3480156107cc57600080fd5b506102b961287f565b3480156107e157600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610596565b34801561081457600080fd5b5060cf546102b9565b34801561082957600080fd5b506102b9610838366004615761565b61288b565b34801561084957600080fd5b506102b9600080516020615d8683398151915281565b34801561086b57600080fd5b5061029761087a366004615724565b612a01565b60335460ff16156108ab5760405162461bcd60e51b81526004016108a290615a30565b60405180910390fd5b6108d66108bd36849003840184615806565b826108c95760006108cf565b83602001355b6000612c6f565b5050565b60006108e860335460ff1690565b156109055760405162461bcd60e51b81526004016108a290615a30565b6101208401516001600160a01b038116331461096f5760405162461bcd60e51b815260206004820152602360248201527f4f6e6c792074686520524d2063616e20637265617465206e657720706f6c696360448201526269657360e81b60648201526084016108a2565b604051635dfdc5d760e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063bbfb8bae9060240160006040518083038186803b1580156109d057600080fd5b505afa1580156109e4573d6000803e3d6000fd5b50505050826bffffffffffffffffffffffff166060826001600160a01b0316901b610a0f9190615bf7565b8552610a1a85613018565b8551600090815260cc602052604081209190915560a086015160ce805491929091610a46908490615bf7565b90915550610a55905085613048565b8451604051632851206560e21b81526001600160a01b03868116600483015260248201929092527f00000000000000000000000000000000000000000000000000000000000000009091169063a144819490604401600060405180830381600087803b158015610ac457600080fd5b505af1158015610ad8573d6000803e3d6000fd5b50505050610b2884308761010001518860a00151610af69190615bf7565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929190613206565b610bf4847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166361d027b36040518163ffffffff1660e01b815260040160206040518083038186803b158015610b8557600080fd5b505afa158015610b99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbd9190615629565b60c08801516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929190613206565b60008560e00151118015610c8a5750806001600160a01b031663521eb2736040518163ffffffff1660e01b815260040160206040518083038186803b158015610c3c57600080fd5b505afa158015610c50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c749190615629565b6001600160a01b0316846001600160a01b031614155b15610d3b57610d3b84826001600160a01b031663521eb2736040518163ffffffff1660e01b815260040160206040518083038186803b158015610ccc57600080fd5b505afa158015610ce0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d049190615629565b60e08801516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016929190613206565b806001600160a01b03167ff8da20dc84e4c9850943fcd1a0587142b2bac3fef70840ccee41f5edd22bc47786604051610d749190615af3565b60405180910390a2505082515b9392505050565b600081815260cd60205260408120610d9f90613277565b92915050565b600082815260cd6020526040812081908190610dc19085613282565b915091508115610dd4579150610d9f9050565b600092505050610d9f565b505092915050565b600060cf5460d05460ce54610dfc9190615bf7565b610e069190615c50565b905090565b6000610e1960335460ff1690565b15610e365760405162461bcd60e51b81526004016108a290615a30565b600080610e4460c98561329e565b91509150818015610e8157506001816003811115610e6457610e64615cea565b1480610e8157506002816003811115610e7f57610e7f615cea565b145b610ec45760405162461bcd60e51b815260206004820152601460248201527365546f6b656e206973206e6f742061637469766560601b60448201526064016108a2565b6000846001600160a01b03166352a2783b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610eff57600080fd5b505afa158015610f13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f37919061570b565b90506000610f44826132d1565b90506001600160a01b038616631c0f4f81610f5f8385615c50565b6040518263ffffffff1660e01b8152600401610f7d91815260200190565b600060405180830381600087803b158015610f9757600080fd5b505af1158015610fab573d6000803e3d6000fd5b505050508082610fbb9190615c50565b9450505050505b919050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156110105760405162461bcd60e51b81526004016108a290615998565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611059600080516020615d66833981519152546001600160a01b031690565b6001600160a01b03161461107f5760405162461bcd60e51b81526004016108a2906159e4565b61108881613373565b604080516000808252602082019092526110a49183919061341d565b50565b60405163c5b8f5cf60e01b8152600080516020615dcd83398151915260048201819052600080516020615d868339815191526024830181905233604484015290916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5b8f5cf9060640160006040518083038186803b15801561113457600080fd5b505afa158015611148573d6000803e3d6000fd5b505050506108d6613597565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146111e65760405162461bcd60e51b815260206004820152603160248201527f4f6e6c792074686520506f6c696379506f6f6c436f6e6669672063616e20636860448201527030b733b29030b9b9b2ba26b0b730b3b2b960791b60648201526084016108a2565b60006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394217ad16040518163ffffffff1660e01b815260040160206040518083038186803b15801561124a57600080fd5b505afa15801561125e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112829190615629565b6001600160a01b0316146114b5577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394217ad16040518163ffffffff1660e01b815260040160206040518083038186803b1580156112e957600080fd5b505afa1580156112fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113219190615629565b6001600160a01b031663cec16f3f6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561135b57600080fd5b505af115801561136f573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663095ea7b37f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394217ad16040518163ffffffff1660e01b815260040160206040518083038186803b1580156113fb57600080fd5b505afa15801561140f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114339190615629565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260006024820152604401602060405180830381600087803b15801561147b57600080fd5b505af115801561148f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b391906156ee565b505b6001600160a01b038116156110a45760405163095ea7b360e01b81526001600160a01b03828116600483015260001960248301527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b390604401602060405180830381600087803b15801561152f57600080fd5b505af1158015611543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d691906156ee565b60335460ff161561158a5760405162461bcd60e51b81526004016108a290615a30565b60008061159860c98561329e565b915091508180156115ba575060018160038111156115b8576115b8615cea565b145b6115fd5760405162461bcd60e51b815260206004820152601460248201527365546f6b656e206973206e6f742061637469766560601b60448201526064016108a2565b6116326001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333086613206565b6040516311f9fbc960e21b8152336004820152602481018490526001600160a01b038516906347e7ef2490604401602060405180830381600087803b15801561167a57600080fd5b505af115801561168e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b2919061570b565b5050505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156117025760405162461bcd60e51b81526004016108a290615998565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661174b600080516020615d66833981519152546001600160a01b031690565b6001600160a01b0316146117715760405162461bcd60e51b81526004016108a2906159e4565b61177a82613373565b6108d68282600161341d565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146118265760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016108a2565b50600080516020615d6683398151915290565b6040516312d9a6ad60e01b81527f5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c2760048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906312d9a6ad9060440160006040518083038186803b1580156118c157600080fd5b505afa1580156118d5573d6000803e3d6000fd5b50600292506118e2915050565b6118ed60c98461362a565b60038111156118fe576118fe615cea565b146119435760405162461bcd60e51b815260206004820152601560248201527411551bdad95b881b9bdd0819195c1c9958d85d1959605a1b60448201526064016108a2565b816001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561197c57600080fd5b505afa158015611990573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119b4919061570b565b15611a105760405162461bcd60e51b815260206004820152602660248201527f45546f6b656e20686173206c69717569646974792c2063616e27742062652072604482015265195b5bdd995960d21b60648201526084016108a2565b816001600160a01b03167f84b036748e342a63da09ea533edd13275c8f2eb94ba67374cd3c7f4d6461d52c6000604051611a4a919061593d565b60405180910390a25050565b600080805b611a6560c9613277565b811015611b0d576000611a7960c983613647565b509050806001600160a01b03166352a2783b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611ab557600080fd5b505afa158015611ac9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aed919061570b565b611af79084615bf7565b9250508080611b0590615cb9565b915050611a5b565b506000611b18610de7565b905081811115611b3357611b2c8282615c50565b9250505090565b60009250505090565b600054610100900460ff16611b575760005460ff1615611b5b565b303b155b611b775760405162461bcd60e51b81526004016108a290615a5a565b600054610100900460ff16158015611b99576000805461ffff19166101011790555b611ba1613656565b611ba961367f565b611bb16136ae565b80156110a4576000805461ff001916905550565b611bfa6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084613206565b611c038161391d565b6040805160018152602081018390527fd60d524f1cae273480bb0a4ddfb992b6ac0b61c8e12ffbe2e4e31463f9e90199910160405180910390a150565b6040516312d9a6ad60e01b8152600080516020615dcd83398151915260048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906312d9a6ad9060440160006040518083038186803b158015611cb657600080fd5b505afa158015611cca573d6000803e3d6000fd5b505050506110a4613982565b6040516312d9a6ad60e01b81527fa23b11d346b90fc279e0a917152caf41f3c1247b12211b7cbc0e0e3f8b794057600482018190523360248301526000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906312d9a6ad9060440160006040518083038186803b158015611d6057600080fd5b505afa158015611d74573d6000803e3d6000fd5b5050505060d054831115611d885760d05492505b60008311611dd85760405162461bcd60e51b815260206004820152601760248201527f4e6f207072656d69756d7320746f20776974686472617700000000000000000060448201526064016108a2565b8260d06000828254611dea9190615c50565b92505081905550611e8b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166361d027b36040518163ffffffff1660e01b815260040160206040518083038186803b158015611e4d57600080fd5b505afa158015611e61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e859190615629565b846139da565b6040805160008152602081018590527fd60d524f1cae273480bb0a4ddfb992b6ac0b61c8e12ffbe2e4e31463f9e90199910160405180910390a15090919050565b60335460ff1615611eef5760405162461bcd60e51b81526004016108a290615a30565b42611f0261018083016101608401615906565b64ffffffffff161115611f505760405162461bcd60e51b8152602060048201526016602482015275141bdb1a58de481b9bdd08195e1c1a5c9959081e595d60521b60448201526064016108a2565b6110a4611f6236839003830183615806565b60006001612c6f565b6040516312d9a6ad60e01b81527f2c09deb013d6a86a9063c95b5e2b10937d1128a3937347eb7e00408ed9fb1a9c60048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906312d9a6ad9060440160006040518083038186803b158015611ff357600080fd5b505afa158015612007573d6000803e3d6000fd5b5050505061201760335460ff1690565b156120345760405162461bcd60e51b81526004016108a290615a30565b61204b61204636849003840184615806565b613d86565b8135600090815260cd6020526040812090805b61206860c9613277565b8110156122b25760008061207d60c984613647565b9092509050600080806120908886613282565b91509150811561211a576001600160a01b038516634438bcbb6120c06120bb368e90038e018e615806565b613dec565b836040518363ffffffff1660e01b81526004016120e7929190918252602082015260400190565b600060405180830381600087803b15801561210157600080fd5b505af1158015612115573d6000803e3d6000fd5b505050505b600184600381111561212e5761212e615cea565b1480156121ec57506001600160a01b03851663334871546121576101408d016101208e0161560c565b6121696101808e016101608f01615906565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015264ffffffffff16602482015260440160206040518083038186803b1580156121b457600080fd5b505afa1580156121c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121ec91906156ee565b1561226557846001600160a01b031663e5ae143f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561222a57600080fd5b505afa15801561223e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612262919061570b565b92505b8261228157811561227c5761227a8886613e46565b505b61229a565b61228c888685613e52565b506122978388615bf7565b96505b505050505080806122aa90615cb9565b91505061205e565b506122d460608501356122cd6120bb36889003880188615806565b8385613e67565b83356122e86101408601610120870161560c565b6001600160a01b03167f5b6693e57e2edc10453988a22e50a605795daee9a5dde66f5267b0dee0a6b60660405160405180910390a350505050565b60335460ff16156123465760405162461bcd60e51b81526004016108a290615a30565b6108d661235836849003840184615806565b826000612c6f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394217ad16040518163ffffffff1660e01b815260040160206040518083038186803b1580156123b957600080fd5b505afa1580156123cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f19190615629565b6001600160a01b0316336001600160a01b0316146124625760405162461bcd60e51b815260206004820152602860248201527f4f6e6c792061737365744d616e616765722063616e2063616c6c207468697320604482015267333ab731ba34b7b760c11b60648201526084016108a2565b60335460ff16156124855760405162461bcd60e51b81526004016108a290615a30565b8015612494576108d68261391d565b61249d826132d1565b505050565b600080806124b160c985613647565b909250905060008160038111156124ca576124ca615cea565b146124d6575092915050565b5060009392505050565b6040516312d9a6ad60e01b8152600080516020615d8683398151915260048201819052336024830152907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906312d9a6ad9060440160006040518083038186803b15801561255657600080fd5b505afa15801561256a573d6000803e3d6000fd5b50505050600a61257a60c9613277565b106125d15760405162461bcd60e51b815260206004820152602160248201527f4d6178696d756d206e756d626572206f662045546f6b656e73207265616368656044820152601960fa1b60648201526084016108a2565b6125dc60c983613fba565b156126295760405162461bcd60e51b815260206004820152601a60248201527f65546f6b656e20616c726561647920696e2074686520706f6f6c00000000000060448201526064016108a2565b6001600160a01b0382166126765760405162461bcd60e51b815260206004820152601460248201527365546f6b656e2063616e2774206265207a65726f60601b60448201526064016108a2565b306001600160a01b0316826001600160a01b0316634d15eb036040518163ffffffff1660e01b815260040160206040518083038186803b1580156126b957600080fd5b505afa1580156126cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126f19190615629565b6001600160a01b0316146127475760405162461bcd60e51b815260206004820152601e60248201527f45546f6b656e206e6f74206c696e6b656420746f207468697320706f6f6c000060448201526064016108a2565b61275460c9836001613fc6565b50816001600160a01b03167f84b036748e342a63da09ea533edd13275c8f2eb94ba67374cd3c7f4d6461d52c6001604051611a4a919061593d565b600080805b61279e60c9613277565b8110156128465760006127b260c983613647565b509050806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156127ee57600080fd5b505afa158015612802573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612826919061570b565b6128309084615bf7565b925050808061283e90615cb9565b915050612794565b50919050565b6000610d9f60c98361362a565b600082815260cd6020526040812081906128739084613fe4565b915091505b9250929050565b6000610e0660c9613277565b600061289960335460ff1690565b156128b65760405162461bcd60e51b81526004016108a290615a30565b6000806128c460c98661329e565b91509150818015612901575060018160038111156128e4576128e4615cea565b1480612901575060028160038111156128ff576128ff615cea565b145b61295f5760405162461bcd60e51b815260206004820152602960248201527f65546f6b656e206e6f7420666f756e64206f7220776974686472617773206e6f6044820152681d08185b1b1bddd95960ba1b60648201526084016108a2565b60405163f3fef3a360e01b8152336004820181905260248201869052906000906001600160a01b0388169063f3fef3a390604401602060405180830381600087803b1580156129ad57600080fd5b505af11580156129c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129e5919061570b565b905080156129f7576129f782826139da565b9695505050505050565b60405163c5b8f5cf60e01b8152600080516020615dcd83398151915260048201819052600080516020615d868339815191526024830181905233604484015290916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5b8f5cf9060640160006040518083038186803b158015612a8e57600080fd5b505afa158015612aa2573d6000803e3d6000fd5b50505050612aba8460c9613fba90919063ffffffff16565b612afe5760405162461bcd60e51b8152602060048201526015602482015274149a5cdac8135bd91d5b19481b9bdd08199bdd5b99605a1b60448201526064016108a2565b6003836003811115612b1257612b12615cea565b141580612bc55750604051632474521560e21b8152600080516020615dcd83398151915260048201523360248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906391d148549060440160206040518083038186803b158015612b8d57600080fd5b505afa158015612ba1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bc591906156ee565b612c1b5760405162461bcd60e51b815260206004820152602160248201527f4f6e6c7920475541524449414e2063616e2073757370656e642065546f6b656e6044820152607360f81b60648201526084016108a2565b612c2760c98585613fc6565b50836001600160a01b03167f84b036748e342a63da09ea533edd13275c8f2eb94ba67374cd3c7f4d6461d52c84604051612c61919061593d565b60405180910390a250505050565b612c7883613d86565b6101208301518180612c9257506001600160a01b03811633145b612cde5760405162461bcd60e51b815260206004820181905260248201527f4f6e6c792074686520524d2063616e207265736f6c766520706f6c696369657360448201526064016108a2565b821580612cf657504284610160015164ffffffffff16115b612d425760405162461bcd60e51b815260206004820152601860248201527f43616e277420706179206578706972656420706f6c696379000000000000000060448201526064016108a2565b6040516310f199ef60e31b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063878ccf789060240160006040518083038186803b158015612da357600080fd5b505afa158015612db7573d6000803e3d6000fd5b505050508360200151831115612e085760405162461bcd60e51b81526020600482015260166024820152751c185e5bdd5d080f881c1bdb1a58de4b9c185e5bdd5d60521b60448201526064016108a2565b600080841190508460a0015160ce6000828254612e259190615c50565b909155506000905080612e39878488613ff3565b915091508215612f12576000612e4f888461414d565b90507f0000000000000000000000000000000000000000000000000000000000000000811115612e8557612e8281614359565b90505b7f0000000000000000000000000000000000000000000000000000000000000000811115612f0c5760405162461bcd60e51b815260206004820152602e60248201527f446f6e2774206b6e6f7720776865726520746f2074616b65207468652072657360448201526d74206f6620746865206d6f6e657960901b60648201526084016108a2565b50612f1f565b612f1c8782614478565b90505b612f288161391d565b6060870151604051634e5de6c960e11b815260048101919091526001600160a01b03851690639cbbcd9290602401600060405180830381600087803b158015612f7057600080fd5b505af1158015612f84573d6000803e3d6000fd5b5050505086600001518761012001516001600160a01b03167f54f4a270ea08f88dc23b2520d6b063fecb24d956c4496f447926d736338f545e88604051612fcd91815260200190565b60405180910390a38651600090815260cc602090815260408083208390558951835260cd90915281209081818181818161300782826154fc565b505050505050505050505050505050565b60008160405160200161302b9190615af3565b604051602081830303815290604052805190602001209050919050565b8051600090815260cd60205260408120815b61306460c9613277565b8110156131ed5760008061307960c984613647565b9092509050600181600381111561309257613092615cea565b1461309e5750506131db565b610120860151610160870151604051630cd21c5560e21b81526001600160a01b03928316600482015264ffffffffff90911660248201529083169063334871549060440160206040518083038186803b1580156130fa57600080fd5b505afa15801561310e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061313291906156ee565b61313d5750506131db565b6000826001600160a01b031663e5ae143f6040518163ffffffff1660e01b815260040160206040518083038186803b15801561317857600080fd5b505afa15801561318c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131b0919061570b565b9050806131bf575050506131db565b6131c98187615bf7565b95506131d6858483613e52565b505050505b806131e581615cb9565b91505061305a565b5061249d83606001516131ff85613dec565b8484613e67565b6040516001600160a01b03808516602483015283166044820152606481018290526132719085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261475a565b50505050565b6000610d9f8261482c565b60008080806132918686614837565b9097909650945050505050565b60008080806132ad8686614837565b91509150818160038111156132c4576132c4615cea565b9350935050509250929050565b600060d05482116132fb578160d060008282546132ee9190615c50565b9091555060009392505050565b60d054156133185760d0546133109083615c50565b600060d05591505b60cf5460ce54111561336f5760cf5460ce546133349190615c50565b821161334c578160cf60008282546132ee9190615bf7565b60cf5460ce5461335c9190615c50565b6133669083615c50565b60ce5460cf5591505b5090565b60405163c5b8f5cf60e01b8152600080516020615dcd83398151915260048201819052600080516020615d868339815191526024830181905233604484015290916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063c5b8f5cf9060640160006040518083038186803b15801561340057600080fd5b505afa158015613414573d6000803e3d6000fd5b50505050505050565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156134505761249d8361487a565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561348957600080fd5b505afa9250505080156134b9575060408051601f3d908101601f191682019092526134b69181019061570b565b60015b61351c5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016108a2565b600080516020615d66833981519152811461358b5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016108a2565b5061249d838383614916565b60335460ff166135e05760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016108a2565b6033805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6000613636838361493b565b6003811115610d8157610d81615cea565b60008080806132ad86866149b5565b600054610100900460ff1661367d5760405162461bcd60e51b81526004016108a290615aa8565b565b600054610100900460ff166136a65760405162461bcd60e51b81526004016108a290615aa8565b61367d6149ea565b600054610100900460ff166136c95760005460ff16156136cd565b303b155b6136e95760405162461bcd60e51b81526004016108a290615a5a565b600054610100900460ff1615801561370b576000805461ffff19166101011790555b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663948cb7196040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561376657600080fd5b505af115801561377a573d6000803e3d6000fd5b5050505060006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394217ad16040518163ffffffff1660e01b815260040160206040518083038186803b1580156137e257600080fd5b505afa1580156137f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061381a9190615629565b6001600160a01b0316146138965760405162461bcd60e51b815260206004820152603a60248201527f41737365744d616e616765722063616e277420626520736574206265666f726560448201527f20506f6c696379506f6f6c20696e697469616c697a6174696f6e00000000000060648201526084016108a2565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663948cb7196040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156138f157600080fd5b505af1158015613905573d6000803e3d6000fd5b5050505080156110a4576000805461ff001916905550565b806139255750565b8060cf541061394b578060cf60008282546139409190615c50565b909155506110a49050565b60cf54156139685760cf546139609082615c50565b600060cf5590505b8060d0600082825461397a9190615bf7565b909155505050565b60335460ff16156139a55760405162461bcd60e51b81526004016108a290615a30565b6033805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861360d3390565b806139e3575050565b60006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394217ad16040518163ffffffff1660e01b815260040160206040518083038186803b158015613a4757600080fd5b505afa158015613a5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a7f9190615629565b6001600160a01b031614158015613a9c575080613a9a614a1d565b105b15613b92577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166394217ad16040518163ffffffff1660e01b815260040160206040518083038186803b158015613afa57600080fd5b505afa158015613b0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b329190615629565b6001600160a01b0316631014a0c2826040518263ffffffff1660e01b8152600401613b5f91815260200190565b600060405180830381600087803b158015613b7957600080fd5b505af1158015613b8d573d6000803e3d6000fd5b505050505b60006001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631455cd286040518163ffffffff1660e01b815260040160206040518083038186803b158015613bf657600080fd5b505afa158015613c0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c2e9190615629565b6001600160a01b031614158015613c4b575080613c49614a1d565b105b15613d52577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631455cd286040518163ffffffff1660e01b815260040160206040518083038186803b158015613ca957600080fd5b505afa158015613cbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ce19190615629565b6001600160a01b031663ee842dda613cf7614a1d565b613d019084615c50565b6040518263ffffffff1660e01b8152600401613d1f91815260200190565b600060405180830381600087803b158015613d3957600080fd5b505af1158015613d4d573d6000803e3d6000fd5b505050505b6108d66001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168383614ab7565b805115801590613dad57508051600090815260cc6020526040902054613dab82613018565b145b6110a45760405162461bcd60e51b815260206004820152601060248201526f141bdb1a58de481b9bdd08199bdd5b9960821b60448201526064016108a2565b6000610d9f613e418360600151846101400151856101600151613e0f9190615c67565b64ffffffffff16613e209190615c31565b610100850151613e3b906a1a1601fc4ea7109e000000614ae7565b90614bb8565b614cb8565b6000610d818383614d36565b6000613e5f848484614d5d565b949350505050565b83821015613ec55760405162461bcd60e51b815260206004820152602560248201527f4e6f7420656e6f75676874206f6365616e20746f20636f7665722074686520706044820152646f6c69637960d81b60648201526084016108a2565b8360005b613ed283613277565b811015613fb25760008080613ee78685613fe4565b915091506001613ef687613277565b613f009190615c50565b841015613f1c57613f1587613e3b8b84614ae7565b9250613f20565b8492505b60405163837c83a360e01b815260048101899052602481018490526001600160a01b0383169063837c83a390604401600060405180830381600087803b158015613f6957600080fd5b505af1158015613f7d573d6000803e3d6000fd5b50613f8f925088915084905085613e52565b50613f9a8386615c50565b94505050508080613faa90615cb9565b915050613ec9565b505050505050565b6000610d818383614d84565b6000613e5f8484846003811115613fdf57613fdf615cea565b614d5d565b600080808061329186866149b5565b600080600080600086156140ed5787516040516331a9108f60e11b81526140ab916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691636352211e916140559160040190815260200190565b60206040518083038186803b15801561406d57600080fd5b505afa158015614081573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140a59190615629565b876139da565b858860a0015111156140ce57858860a001516140c79190615c50565b9150614140565b6140e68860a00151876140e19190615c50565b6132d1565b9250614140565b8760a00151915060ce5460cf5411156141405761411960ce5460cf546141139190615c50565b83614d90565b90508060cf600082825461412d9190615c50565b9091555061413d90508183615c50565b91505b5090969095509350505050565b6000808061415a85613dec565b905060008061416887614d9f565b8851600090815260cd602052604081209294509092505b61418882613277565b81101561434c5760008061419c8484613fe4565b604051634438bcbb60e01b8152600481018a90526024810182905291935091506001600160a01b03831690634438bcbb90604401600060405180830381600087803b1580156141ea57600080fd5b505af11580156141fe573d6000803e3d6000fd5b50505060608c015161421291508290614bb8565b90506001600160a01b03821663aa69d74b61422d8784614ae7565b6040516001600160e01b031960e084901b16815260048101919091528815156024820152604401600060405180830381600087803b15801561426e57600080fd5b505af1158015614282573d6000803e3d6000fd5b5050505060008a111561433757600061429b8b83614ae7565b604051630c1ceca560e21b815260048101829052600160248201529091506001600160a01b03841690633073b29490604401602060405180830381600087803b1580156142e757600080fd5b505af11580156142fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061431f919061570b565b6143299082615c50565b614333908a615bf7565b9850505b5050808061434490615cb9565b91505061417f565b5093979650505050505050565b6000805b61436760c9613277565b8110156144715760008061437c60c984613647565b9092509050600181600381111561439557614395615cea565b146143a157505061445f565b604051630c1ceca560e21b815260048101869052600060248201526001600160a01b03831690633073b29490604401602060405180830381600087803b1580156143ea57600080fd5b505af11580156143fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614422919061570b565b61442c9086615c50565b94507f0000000000000000000000000000000000000000000000000000000000000000851161445c575050614471565b50505b8061446981615cb9565b91505061435d565b5090919050565b60008061448484613dec565b905060008061449286614d9f565b8751600090815260cd602052604081209294509092505b6144b282613277565b81101561474e576000806144c68484613fe4565b604051634438bcbb60e01b8152600481018a90526024810182905291935091506001600160a01b03831690634438bcbb90604401600060405180830381600087803b15801561451457600080fd5b505af1158015614528573d6000803e3d6000fd5b50505060608b015161453c91508290614bb8565b90506001600160a01b03821663aa69d74b6145578784614ae7565b6040516001600160e01b031960e084901b16815260048101919091528815156024820152604401600060405180830381600087803b15801561459857600080fd5b505af11580156145ac573d6000803e3d6000fd5b5050505060008911801561463057506000826001600160a01b03166352a2783b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156145f657600080fd5b505afa15801561460a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061462e919061570b565b115b156147395760a08a01516000906146479083614ae7565b90506146cc8a6146c7856001600160a01b03166352a2783b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561468957600080fd5b505afa15801561469d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146c1919061570b565b84614d90565b614d90565b604051631c0f4f8160e01b8152600481018290529091506001600160a01b03841690631c0f4f8190602401600060405180830381600087803b15801561471157600080fd5b505af1158015614725573d6000803e3d6000fd5b50505050808a6147359190615c50565b9950505b5050808061474690615cb9565b9150506144a9565b50949695505050505050565b60006147af826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614deb9092919063ffffffff16565b80519091501561249d57808060200190518101906147cd91906156ee565b61249d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016108a2565b6000610d9f82614dfa565b6001600160a01b038116600090815260028301602052604081205481908061486f576148638585614d84565b60009250925050612878565b600192509050612878565b6001600160a01b0381163b6148e75760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016108a2565b600080516020615d6683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61491f83614e04565b60008251118061492c5750805b1561249d576132718383614e44565b6001600160a01b03811660009081526002830160205260408120548015158061496957506149698484614d84565b610d815760405162461bcd60e51b815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579000060448201526064016108a2565b600080806149c38585614f38565b6001600160a01b038116600090815260029690960160205260409095205494959350505050565b600054610100900460ff16614a115760405162461bcd60e51b81526004016108a290615aa8565b6033805460ff19169055565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b158015614a7f57600080fd5b505afa158015614a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e06919061570b565b6040516001600160a01b03831660248201526044810182905261249d90849063a9059cbb60e01b9060640161323a565b6000821580614af4575081155b15614b0157506000610d9f565b81614b156002670de0b6b3a7640000615c0f565b614b2190600019615c50565b614b2b9190615c0f565b831115614b865760405162461bcd60e51b8152602060048201526024808201527f7761644d756c3a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b60648201526084016108a2565b670de0b6b3a7640000614b9a600282615c0f565b614ba48486615c31565b614bae9190615bf7565b610d819190615c0f565b600081614c075760405162461bcd60e51b815260206004820152601860248201527f7761644469763a204469766973696f6e206279207a65726f000000000000000060448201526064016108a2565b6000614c14600284615c0f565b9050670de0b6b3a7640000614c2b82600019615c50565b614c359190615c0f565b841115614c905760405162461bcd60e51b8152602060048201526024808201527f7761644469763a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b60648201526084016108a2565b8281614ca4670de0b6b3a764000087615c31565b614cae9190615bf7565b613e5f9190615c0f565b600080614cc9633b9aca0084615c31565b905082614cda633b9aca0083615c0f565b14610d9f5760405162461bcd60e51b815260206004820152602660248201527f776164546f5261643a204d617468204d756c7469706c69636174696f6e204f766044820152656572666c6f7760d01b60648201526084016108a2565b6001600160a01b03811660009081526002830160205260408120819055610d818383614f44565b6001600160a01b03821660009081526002840160205260408120829055613e5f8484614f59565b6000610d818383614f6e565b60008183106144715781610d81565b6000806000614dad84614f90565b90508084610100015110614dd857600181856101000151614dce9190615c50565b9250925050915091565b600084610100015182614dce9190615c50565b6060613e5f8484600085614ff7565b6000610d9f825490565b614e0d8161487a565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b614eac5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016108a2565b600080846001600160a01b031684604051614ec79190615921565b600060405180830381855af49150503d8060008114614f02576040519150601f19603f3d011682016040523d82523d6000602084013e614f07565b606091505b5091509150614f2f8282604051806060016040528060278152602001615da660279139615128565b95945050505050565b6000610d818383615161565b6000610d81836001600160a01b03841661518b565b6000610d81836001600160a01b03841661527e565b6001600160a01b03811660009081526001830160205260408120541515610d81565b60008082610140015164ffffffffff1642614fab9190615c50565b9050610d81614ff26e0612d847b578e7643c28ac00000000614fec614fcf87613dec565b614fd99086615c31565b614fe68860600151614cb8565b906152cd565b90615388565b61547c565b6060824710156150585760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016108a2565b6001600160a01b0385163b6150af5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016108a2565b600080866001600160a01b031685876040516150cb9190615921565b60006040518083038185875af1925050503d8060008114615108576040519150601f19603f3d011682016040523d82523d6000602084013e61510d565b606091505b509150915061511d828286615128565b979650505050505050565b60608315615137575081610d81565b8251156151475782518084602001fd5b8160405162461bcd60e51b81526004016108a29190615965565b600082600001828154811061517857615178615d16565b9060005260206000200154905092915050565b600081815260018301602052604081205480156152745760006151af600183615c50565b85549091506000906151c390600190615c50565b90508181146152285760008660000182815481106151e3576151e3615d16565b906000526020600020015490508087600001848154811061520657615206615d16565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061523957615239615d00565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610d9f565b6000915050610d9f565b60008181526001830160205260408120546152c557508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610d9f565b506000610d9f565b60008215806152da575081155b156152e757506000610d9f565b816152ff60026b033b2e3c9fd0803ce8000000615c0f565b61530b90600019615c50565b6153159190615c0f565b8311156153705760405162461bcd60e51b8152602060048201526024808201527f7261794d756c3a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b60648201526084016108a2565b6b033b2e3c9fd0803ce8000000614b9a600282615c0f565b6000816153d75760405162461bcd60e51b815260206004820152601860248201527f7261794469763a204469766973696f6e206279207a65726f000000000000000060448201526064016108a2565b60006153e4600284615c0f565b90506b033b2e3c9fd0803ce80000006153ff82600019615c50565b6154099190615c0f565b8411156154645760405162461bcd60e51b8152602060048201526024808201527f7261794469763a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b60648201526084016108a2565b8281614ca46b033b2e3c9fd0803ce800000087615c31565b60008061548e6002633b9aca00615c0f565b9050600061549c8483615bf7565b9050818110156154ee5760405162461bcd60e51b815260206004820181905260248201527f726179546f5761643a204d617468204164646974696f6e204f766572666c6f7760448201526064016108a2565b613e5f633b9aca0082615c0f565b50805460008255906000526020600020908101906110a491905b8082111561336f5760008155600101615516565b8035610fc281615d42565b6000610180828403121561284657600080fd5b6000610180828403121561555b57600080fd5b615563615b9c565b9050813581526020820135602082015260408201356040820152606082013560608201526080820135608082015260a082013560a082015260c082013560c082015260e082013560e08201526101008083013581830152506101206155c981840161552a565b908201526101406155db8382016155f7565b908201526101606155ed8382016155f7565b9082015292915050565b803564ffffffffff81168114610fc257600080fd5b60006020828403121561561e57600080fd5b8135610d8181615d42565b60006020828403121561563b57600080fd5b8151610d8181615d42565b6000806040838503121561565957600080fd5b823561566481615d42565b915060208381013567ffffffffffffffff8082111561568257600080fd5b818601915086601f83011261569657600080fd5b8135818111156156a8576156a8615d2c565b6156ba601f8201601f19168501615bc6565b915080825287848285010111156156d057600080fd5b80848401858401376000848284010152508093505050509250929050565b60006020828403121561570057600080fd5b8151610d8181615d57565b60006020828403121561571d57600080fd5b5051919050565b6000806040838503121561573757600080fd5b823561574281615d42565b915060208301356004811061575657600080fd5b809150509250929050565b6000806040838503121561577457600080fd5b823561577f81615d42565b946020939093013593505050565b600061018082840312156157a057600080fd5b610d818383615535565b6000806101a083850312156157be57600080fd5b6157c88484615535565b915061018083013561575681615d57565b6000806101a083850312156157ed57600080fd5b6157f78484615535565b94610180939093013593505050565b6000610180828403121561581957600080fd5b610d818383615548565b60008060006101c0848603121561583957600080fd5b6158438585615548565b925061018084013561585481615d42565b91506101a08401356bffffffffffffffffffffffff8116811461587657600080fd5b809150509250925092565b60006020828403121561589357600080fd5b5035919050565b600080604083850312156158ad57600080fd5b82359150602083013561575681615d57565b600080604083850312156158d257600080fd5b82359150602083013561575681615d42565b600080604083850312156158f757600080fd5b50508035926020909101359150565b60006020828403121561591857600080fd5b610d81826155f7565b60008251615933818460208701615c8d565b9190910192915050565b602081016004831061595f57634e487b7160e01b600052602160045260246000fd5b91905290565b6020815260008251806020840152615984816040850160208701615c8d565b601f01601f19169190910160400192915050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600061018082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151615b6d828501826001600160a01b03169052565b50506101408381015164ffffffffff81168483015250506101608381015164ffffffffff811684830152610ddf565b604051610180810167ffffffffffffffff81118282101715615bc057615bc0615d2c565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715615bef57615bef615d2c565b604052919050565b60008219821115615c0a57615c0a615cd4565b500190565b600082615c2c57634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615615c4b57615c4b615cd4565b500290565b600082821015615c6257615c62615cd4565b500390565b600064ffffffffff83811690831681811015615c8557615c85615cd4565b039392505050565b60005b83811015615ca8578181015183820152602001615c90565b838111156132715750506000910152565b6000600019821415615ccd57615ccd615cd4565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146110a457600080fd5b80151581146110a457600080fdfe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb2416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656455435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a2646970667358221220ac39d667c6aa70ddd514c799f56070b84a9943190043dc6a2d08953095ab5edc64736f6c63430008060033",
|
|
1255
|
+
"linkReferences": {},
|
|
1256
|
+
"deployedLinkReferences": {}
|
|
1257
|
+
}
|