@artblocks/contracts 1.0.4 → 1.1.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.
Files changed (120) hide show
  1. package/README.md +2 -2
  2. package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +2 -2
  3. package/artifacts/contracts/DependencyRegistryV0.sol/DependencyRegistryV0.json +97 -10
  4. package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +4 -4
  5. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +4 -9
  6. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +4 -9
  7. package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +4 -9
  8. package/artifacts/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol/GenArt721CoreV3_Engine_Flex_PROHIBITION.json +4 -9
  9. package/artifacts/contracts/engine-registry/CoreRegistryV1.sol/CoreRegistryV1.json +12 -12
  10. package/artifacts/contracts/explorations/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +4 -4
  11. package/artifacts/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol/ICoreRegistryV1.json +6 -6
  12. package/artifacts/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +19 -0
  13. package/artifacts/contracts/interfaces/v0.8.x/IMinterFilterV1.sol/IMinterFilterV1.json +22 -22
  14. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol/ISharedMinterDAExpSettlementV0.json +8 -101
  15. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpV0.sol/ISharedMinterDAExpV0.json +1 -57
  16. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDALinV0.sol/ISharedMinterDALinV0.json +1 -57
  17. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAV0.sol/ISharedMinterDAV0.json +2 -21
  18. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterHolderERC20V0.sol/ISharedMinterHolderERC20V0.json +158 -0
  19. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterHolderV0.sol/ISharedMinterHolderV0.json +15 -90
  20. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterMerkleV0.sol/ISharedMinterMerkleV0.json +10 -36
  21. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol/ISharedMinterSEAV0.json +4 -236
  22. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSimplePurchaseV0.sol/ISharedMinterSimplePurchaseV0.json +5 -5
  23. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterV0.sol/ISharedMinterV0.json +7 -423
  24. package/artifacts/contracts/interfaces/v0.8.x/ISharedRandomizerV0.sol/ISharedRandomizerV0.json +17 -17
  25. package/artifacts/contracts/libs/v0.8.x/ABHelpers.sol/ABHelpers.json +2 -2
  26. package/artifacts/contracts/libs/v0.8.x/AuthLib.sol/AuthLib.json +2 -2
  27. package/artifacts/contracts/libs/v0.8.x/Bytes32Strings.sol/Bytes32Strings.json +2 -2
  28. package/artifacts/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol/DAExpLib.json +60 -3
  29. package/artifacts/contracts/libs/v0.8.x/minter-libs/DALib.sol/DALib.json +30 -0
  30. package/artifacts/contracts/libs/v0.8.x/minter-libs/DALinLib.sol/DALinLib.json +60 -3
  31. package/artifacts/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol/GenericMinterEventsLib.json +346 -0
  32. package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.json +29 -3
  33. package/artifacts/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol/MerkleLib.json +30 -3
  34. package/artifacts/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol/PolyptychLib.json +2 -2
  35. package/artifacts/contracts/libs/v0.8.x/minter-libs/SEALib.sol/SEALib.json +254 -3
  36. package/artifacts/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol/SetPriceLib.json +48 -3
  37. package/artifacts/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol/SettlementExpLib.json +41 -3
  38. package/artifacts/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol/SplitFundsLib.json +35 -3
  39. package/artifacts/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol/TokenHolderLib.json +79 -3
  40. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
  41. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +41 -41
  42. package/artifacts/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol/MinterDAExpHolderV5.json +66 -632
  43. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +2 -20
  44. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol/MinterDAExpSettlementV3.json +67 -594
  45. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV5.sol/MinterDAExpV5.json +33 -524
  46. package/artifacts/contracts/minter-suite/Minters/MinterDALinHolderV5.sol/MinterDALinHolderV5.json +66 -632
  47. package/artifacts/contracts/minter-suite/Minters/MinterDALinV5.sol/MinterDALinV5.json +33 -524
  48. package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +51 -717
  49. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol/MinterSetPriceERC20V5.json +58 -454
  50. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol/MinterSetPriceHolderV5.json +61 -552
  51. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol/MinterSetPriceMerkleV5.json +55 -497
  52. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol/MinterSetPricePolyptychERC20V5.json +110 -571
  53. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol/MinterSetPricePolyptychV5.json +69 -560
  54. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV5.sol/MinterSetPriceV5.json +28 -444
  55. package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +2 -2
  56. package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +4 -9
  57. package/artifacts/contracts/mock/OriginRegisterMock.sol/OriginRegisterMock.json +2 -2
  58. package/artifacts/contracts/mock/ReentrancyHolderMockShared.sol/ReentrancyHolderMockShared.json +136 -0
  59. package/artifacts/contracts/mock/ReentrancyMerkleMockShared.sol/ReentrancyMerkleMockShared.json +105 -0
  60. package/artifacts/contracts/mock/ReentrancyMockShared.sol/ReentrancyMockShared.json +100 -0
  61. package/artifacts/contracts/mock/ReentrancySEAMockShared.sol/ReentrancySEAAutoBidderMockShared.json +69 -0
  62. package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +19 -19
  63. package/contracts/DependencyRegistryV0.sol +84 -16
  64. package/contracts/archive/readme.md +16 -0
  65. package/contracts/engine/README.md +21 -0
  66. package/contracts/engine/V3/GenArt721CoreV3_Engine.sol +4 -10
  67. package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +4 -10
  68. package/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol +4 -10
  69. package/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol +4 -10
  70. package/contracts/engine-registry/CoreRegistryV1.sol +58 -65
  71. package/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol +6 -8
  72. package/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol +3 -0
  73. package/contracts/interfaces/v0.8.x/IMinterFilterV1.sol +25 -25
  74. package/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol +11 -20
  75. package/contracts/interfaces/v0.8.x/ISharedMinterDAExpV0.sol +1 -14
  76. package/contracts/interfaces/v0.8.x/ISharedMinterDALinV0.sol +1 -15
  77. package/contracts/interfaces/v0.8.x/ISharedMinterDAV0.sol +2 -8
  78. package/contracts/interfaces/v0.8.x/ISharedMinterHolderERC20V0.sol +47 -0
  79. package/contracts/interfaces/v0.8.x/ISharedMinterHolderV0.sol +15 -43
  80. package/contracts/interfaces/v0.8.x/ISharedMinterMerkleV0.sol +10 -20
  81. package/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol +4 -67
  82. package/contracts/interfaces/v0.8.x/ISharedMinterSimplePurchaseV0.sol +5 -5
  83. package/contracts/interfaces/v0.8.x/ISharedMinterV0.sol +7 -155
  84. package/contracts/interfaces/v0.8.x/ISharedRandomizerV0.sol +37 -37
  85. package/contracts/libs/v0.8.x/ABHelpers.sol +14 -14
  86. package/contracts/libs/v0.8.x/AuthLib.sol +101 -102
  87. package/contracts/libs/v0.8.x/Bytes32Strings.sol +5 -5
  88. package/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol +163 -38
  89. package/contracts/libs/v0.8.x/minter-libs/DALib.sol +26 -0
  90. package/contracts/libs/v0.8.x/minter-libs/DALinLib.sol +144 -37
  91. package/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol +171 -0
  92. package/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol +250 -110
  93. package/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol +257 -48
  94. package/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol +138 -58
  95. package/contracts/libs/v0.8.x/minter-libs/SEALib.sol +778 -103
  96. package/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol +135 -13
  97. package/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol +567 -187
  98. package/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol +480 -322
  99. package/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol +214 -76
  100. package/contracts/minter-suite/MinterFilter/MinterFilterV2.sol +347 -304
  101. package/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol +391 -491
  102. package/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol +1 -54
  103. package/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol +388 -628
  104. package/contracts/minter-suite/Minters/MinterDAExpV5.sol +212 -273
  105. package/contracts/minter-suite/Minters/MinterDALinHolderV5.sol +393 -488
  106. package/contracts/minter-suite/Minters/MinterDALinV5.sol +220 -277
  107. package/contracts/minter-suite/Minters/MinterSEAV1.sol +327 -664
  108. package/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol +278 -303
  109. package/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol +355 -446
  110. package/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol +328 -416
  111. package/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol +538 -622
  112. package/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol +429 -553
  113. package/contracts/minter-suite/Minters/MinterSetPriceV5.sol +180 -227
  114. package/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol +3 -10
  115. package/contracts/mock/ReentrancyHolderMockShared.sol +59 -0
  116. package/contracts/mock/ReentrancyMerkleMockShared.sol +58 -0
  117. package/contracts/mock/ReentrancyMockShared.sol +48 -0
  118. package/contracts/mock/ReentrancySEAMockShared.sol +40 -0
  119. package/contracts/randomizer/shared/SharedRandomizerV0.sol +78 -70
  120. package/package.json +39 -33
@@ -7,12 +7,12 @@
7
7
  "inputs": [
8
8
  {
9
9
  "internalType": "address",
10
- "name": "_minterFilter",
10
+ "name": "minterFilter",
11
11
  "type": "address"
12
12
  },
13
13
  {
14
14
  "internalType": "address",
15
- "name": "_delegationRegistryAddress",
15
+ "name": "delegationRegistryAddress_",
16
16
  "type": "address"
17
17
  }
18
18
  ],
@@ -20,526 +20,35 @@
20
20
  "type": "constructor"
21
21
  },
22
22
  {
23
- "anonymous": false,
24
23
  "inputs": [
25
24
  {
26
- "indexed": true,
27
25
  "internalType": "uint256",
28
- "name": "_projectId",
26
+ "name": "projectId",
29
27
  "type": "uint256"
30
28
  },
31
29
  {
32
- "indexed": true,
33
30
  "internalType": "address",
34
- "name": "_coreContract",
31
+ "name": "coreContract",
35
32
  "type": "address"
36
33
  },
37
34
  {
38
- "indexed": false,
39
35
  "internalType": "address[]",
40
- "name": "_ownedNFTAddresses",
36
+ "name": "ownedNFTAddressesAdd",
41
37
  "type": "address[]"
42
38
  },
43
39
  {
44
- "indexed": false,
45
40
  "internalType": "uint256[]",
46
- "name": "_ownedNFTProjectIds",
47
- "type": "uint256[]"
48
- }
49
- ],
50
- "name": "AllowedHoldersOfProjects",
51
- "type": "event"
52
- },
53
- {
54
- "anonymous": false,
55
- "inputs": [
56
- {
57
- "indexed": true,
58
- "internalType": "uint256",
59
- "name": "_projectId",
60
- "type": "uint256"
61
- },
62
- {
63
- "indexed": true,
64
- "internalType": "address",
65
- "name": "_coreContract",
66
- "type": "address"
67
- },
68
- {
69
- "indexed": false,
70
- "internalType": "bytes32",
71
- "name": "_key",
72
- "type": "bytes32"
73
- }
74
- ],
75
- "name": "ConfigKeyRemoved",
76
- "type": "event"
77
- },
78
- {
79
- "anonymous": false,
80
- "inputs": [
81
- {
82
- "indexed": true,
83
- "internalType": "uint256",
84
- "name": "_projectId",
85
- "type": "uint256"
86
- },
87
- {
88
- "indexed": true,
89
- "internalType": "address",
90
- "name": "_coreContract",
91
- "type": "address"
92
- },
93
- {
94
- "indexed": false,
95
- "internalType": "bytes32",
96
- "name": "_key",
97
- "type": "bytes32"
98
- },
99
- {
100
- "indexed": false,
101
- "internalType": "uint256",
102
- "name": "_value",
103
- "type": "uint256"
104
- }
105
- ],
106
- "name": "ConfigValueAddedToSet",
107
- "type": "event"
108
- },
109
- {
110
- "anonymous": false,
111
- "inputs": [
112
- {
113
- "indexed": true,
114
- "internalType": "uint256",
115
- "name": "_projectId",
116
- "type": "uint256"
117
- },
118
- {
119
- "indexed": true,
120
- "internalType": "address",
121
- "name": "_coreContract",
122
- "type": "address"
123
- },
124
- {
125
- "indexed": false,
126
- "internalType": "bytes32",
127
- "name": "_key",
128
- "type": "bytes32"
129
- },
130
- {
131
- "indexed": false,
132
- "internalType": "address",
133
- "name": "_value",
134
- "type": "address"
135
- }
136
- ],
137
- "name": "ConfigValueAddedToSet",
138
- "type": "event"
139
- },
140
- {
141
- "anonymous": false,
142
- "inputs": [
143
- {
144
- "indexed": true,
145
- "internalType": "uint256",
146
- "name": "_projectId",
147
- "type": "uint256"
148
- },
149
- {
150
- "indexed": true,
151
- "internalType": "address",
152
- "name": "_coreContract",
153
- "type": "address"
154
- },
155
- {
156
- "indexed": false,
157
- "internalType": "bytes32",
158
- "name": "_key",
159
- "type": "bytes32"
160
- },
161
- {
162
- "indexed": false,
163
- "internalType": "bytes32",
164
- "name": "_value",
165
- "type": "bytes32"
166
- }
167
- ],
168
- "name": "ConfigValueAddedToSet",
169
- "type": "event"
170
- },
171
- {
172
- "anonymous": false,
173
- "inputs": [
174
- {
175
- "indexed": true,
176
- "internalType": "uint256",
177
- "name": "_projectId",
178
- "type": "uint256"
179
- },
180
- {
181
- "indexed": true,
182
- "internalType": "address",
183
- "name": "_coreContract",
184
- "type": "address"
185
- },
186
- {
187
- "indexed": false,
188
- "internalType": "bytes32",
189
- "name": "_key",
190
- "type": "bytes32"
191
- },
192
- {
193
- "indexed": false,
194
- "internalType": "uint256",
195
- "name": "_value",
196
- "type": "uint256"
197
- }
198
- ],
199
- "name": "ConfigValueRemovedFromSet",
200
- "type": "event"
201
- },
202
- {
203
- "anonymous": false,
204
- "inputs": [
205
- {
206
- "indexed": true,
207
- "internalType": "uint256",
208
- "name": "_projectId",
209
- "type": "uint256"
210
- },
211
- {
212
- "indexed": true,
213
- "internalType": "address",
214
- "name": "_coreContract",
215
- "type": "address"
216
- },
217
- {
218
- "indexed": false,
219
- "internalType": "bytes32",
220
- "name": "_key",
221
- "type": "bytes32"
222
- },
223
- {
224
- "indexed": false,
225
- "internalType": "address",
226
- "name": "_value",
227
- "type": "address"
228
- }
229
- ],
230
- "name": "ConfigValueRemovedFromSet",
231
- "type": "event"
232
- },
233
- {
234
- "anonymous": false,
235
- "inputs": [
236
- {
237
- "indexed": true,
238
- "internalType": "uint256",
239
- "name": "_projectId",
240
- "type": "uint256"
241
- },
242
- {
243
- "indexed": true,
244
- "internalType": "address",
245
- "name": "_coreContract",
246
- "type": "address"
247
- },
248
- {
249
- "indexed": false,
250
- "internalType": "bytes32",
251
- "name": "_key",
252
- "type": "bytes32"
253
- },
254
- {
255
- "indexed": false,
256
- "internalType": "bytes32",
257
- "name": "_value",
258
- "type": "bytes32"
259
- }
260
- ],
261
- "name": "ConfigValueRemovedFromSet",
262
- "type": "event"
263
- },
264
- {
265
- "anonymous": false,
266
- "inputs": [
267
- {
268
- "indexed": true,
269
- "internalType": "uint256",
270
- "name": "_projectId",
271
- "type": "uint256"
272
- },
273
- {
274
- "indexed": true,
275
- "internalType": "address",
276
- "name": "_coreContract",
277
- "type": "address"
278
- },
279
- {
280
- "indexed": false,
281
- "internalType": "bytes32",
282
- "name": "_key",
283
- "type": "bytes32"
284
- },
285
- {
286
- "indexed": false,
287
- "internalType": "bool",
288
- "name": "_value",
289
- "type": "bool"
290
- }
291
- ],
292
- "name": "ConfigValueSet",
293
- "type": "event"
294
- },
295
- {
296
- "anonymous": false,
297
- "inputs": [
298
- {
299
- "indexed": true,
300
- "internalType": "uint256",
301
- "name": "_projectId",
302
- "type": "uint256"
303
- },
304
- {
305
- "indexed": true,
306
- "internalType": "address",
307
- "name": "_coreContract",
308
- "type": "address"
309
- },
310
- {
311
- "indexed": false,
312
- "internalType": "bytes32",
313
- "name": "_key",
314
- "type": "bytes32"
315
- },
316
- {
317
- "indexed": false,
318
- "internalType": "uint256",
319
- "name": "_value",
320
- "type": "uint256"
321
- }
322
- ],
323
- "name": "ConfigValueSet",
324
- "type": "event"
325
- },
326
- {
327
- "anonymous": false,
328
- "inputs": [
329
- {
330
- "indexed": true,
331
- "internalType": "uint256",
332
- "name": "_projectId",
333
- "type": "uint256"
334
- },
335
- {
336
- "indexed": true,
337
- "internalType": "address",
338
- "name": "_coreContract",
339
- "type": "address"
340
- },
341
- {
342
- "indexed": false,
343
- "internalType": "bytes32",
344
- "name": "_key",
345
- "type": "bytes32"
346
- },
347
- {
348
- "indexed": false,
349
- "internalType": "address",
350
- "name": "_value",
351
- "type": "address"
352
- }
353
- ],
354
- "name": "ConfigValueSet",
355
- "type": "event"
356
- },
357
- {
358
- "anonymous": false,
359
- "inputs": [
360
- {
361
- "indexed": true,
362
- "internalType": "uint256",
363
- "name": "_projectId",
364
- "type": "uint256"
365
- },
366
- {
367
- "indexed": true,
368
- "internalType": "address",
369
- "name": "_coreContract",
370
- "type": "address"
371
- },
372
- {
373
- "indexed": false,
374
- "internalType": "bytes32",
375
- "name": "_key",
376
- "type": "bytes32"
377
- },
378
- {
379
- "indexed": false,
380
- "internalType": "bytes32",
381
- "name": "_value",
382
- "type": "bytes32"
383
- }
384
- ],
385
- "name": "ConfigValueSet",
386
- "type": "event"
387
- },
388
- {
389
- "anonymous": false,
390
- "inputs": [
391
- {
392
- "indexed": false,
393
- "internalType": "address",
394
- "name": "delegationRegistry",
395
- "type": "address"
396
- }
397
- ],
398
- "name": "DelegationRegistryUpdated",
399
- "type": "event"
400
- },
401
- {
402
- "anonymous": false,
403
- "inputs": [
404
- {
405
- "indexed": true,
406
- "internalType": "uint256",
407
- "name": "_projectId",
408
- "type": "uint256"
409
- },
410
- {
411
- "indexed": true,
412
- "internalType": "address",
413
- "name": "_coreContract",
414
- "type": "address"
415
- },
416
- {
417
- "indexed": true,
418
- "internalType": "uint256",
419
- "name": "_pricePerTokenInWei",
420
- "type": "uint256"
421
- }
422
- ],
423
- "name": "PricePerTokenInWeiUpdated",
424
- "type": "event"
425
- },
426
- {
427
- "anonymous": false,
428
- "inputs": [
429
- {
430
- "indexed": true,
431
- "internalType": "uint256",
432
- "name": "_projectId",
433
- "type": "uint256"
434
- },
435
- {
436
- "indexed": true,
437
- "internalType": "address",
438
- "name": "_coreContract",
439
- "type": "address"
440
- },
441
- {
442
- "indexed": true,
443
- "internalType": "address",
444
- "name": "_currencyAddress",
445
- "type": "address"
446
- },
447
- {
448
- "indexed": false,
449
- "internalType": "string",
450
- "name": "_currencySymbol",
451
- "type": "string"
452
- }
453
- ],
454
- "name": "ProjectCurrencyInfoUpdated",
455
- "type": "event"
456
- },
457
- {
458
- "anonymous": false,
459
- "inputs": [
460
- {
461
- "indexed": true,
462
- "internalType": "uint256",
463
- "name": "_projectId",
464
- "type": "uint256"
465
- },
466
- {
467
- "indexed": true,
468
- "internalType": "address",
469
- "name": "_coreContract",
470
- "type": "address"
471
- },
472
- {
473
- "indexed": false,
474
- "internalType": "uint256",
475
- "name": "_maxInvocations",
476
- "type": "uint256"
477
- }
478
- ],
479
- "name": "ProjectMaxInvocationsLimitUpdated",
480
- "type": "event"
481
- },
482
- {
483
- "anonymous": false,
484
- "inputs": [
485
- {
486
- "indexed": true,
487
- "internalType": "uint256",
488
- "name": "_projectId",
489
- "type": "uint256"
490
- },
491
- {
492
- "indexed": true,
493
- "internalType": "address",
494
- "name": "_coreContract",
495
- "type": "address"
496
- },
497
- {
498
- "indexed": false,
499
- "internalType": "address[]",
500
- "name": "_ownedNFTAddresses",
501
- "type": "address[]"
502
- },
503
- {
504
- "indexed": false,
505
- "internalType": "uint256[]",
506
- "name": "_ownedNFTProjectIds",
507
- "type": "uint256[]"
508
- }
509
- ],
510
- "name": "RemovedHoldersOfProjects",
511
- "type": "event"
512
- },
513
- {
514
- "inputs": [
515
- {
516
- "internalType": "uint256",
517
- "name": "_projectId",
518
- "type": "uint256"
519
- },
520
- {
521
- "internalType": "address",
522
- "name": "_coreContract",
523
- "type": "address"
524
- },
525
- {
526
- "internalType": "address[]",
527
- "name": "_ownedNFTAddressesAdd",
528
- "type": "address[]"
529
- },
530
- {
531
- "internalType": "uint256[]",
532
- "name": "_ownedNFTProjectIdsAdd",
41
+ "name": "ownedNFTProjectIdsAdd",
533
42
  "type": "uint256[]"
534
43
  },
535
44
  {
536
45
  "internalType": "address[]",
537
- "name": "_ownedNFTAddressesRemove",
46
+ "name": "ownedNFTAddressesRemove",
538
47
  "type": "address[]"
539
48
  },
540
49
  {
541
50
  "internalType": "uint256[]",
542
- "name": "_ownedNFTProjectIdsRemove",
51
+ "name": "ownedNFTProjectIdsRemove",
543
52
  "type": "uint256[]"
544
53
  }
545
54
  ],
@@ -552,22 +61,22 @@
552
61
  "inputs": [
553
62
  {
554
63
  "internalType": "uint256",
555
- "name": "_projectId",
64
+ "name": "projectId",
556
65
  "type": "uint256"
557
66
  },
558
67
  {
559
68
  "internalType": "address",
560
- "name": "_coreContract",
69
+ "name": "coreContract",
561
70
  "type": "address"
562
71
  },
563
72
  {
564
73
  "internalType": "address[]",
565
- "name": "_ownedNFTAddresses",
74
+ "name": "ownedNFTAddresses",
566
75
  "type": "address[]"
567
76
  },
568
77
  {
569
78
  "internalType": "uint256[]",
570
- "name": "_ownedNFTProjectIds",
79
+ "name": "ownedNFTProjectIds",
571
80
  "type": "uint256[]"
572
81
  }
573
82
  ],
@@ -580,22 +89,22 @@
580
89
  "inputs": [
581
90
  {
582
91
  "internalType": "uint256",
583
- "name": "_projectId",
92
+ "name": "projectId",
584
93
  "type": "uint256"
585
94
  },
586
95
  {
587
96
  "internalType": "address",
588
- "name": "_coreContract",
97
+ "name": "coreContract",
589
98
  "type": "address"
590
99
  },
591
100
  {
592
101
  "internalType": "address",
593
- "name": "_ownedNFTAddress",
102
+ "name": "ownedNFTAddress",
594
103
  "type": "address"
595
104
  },
596
105
  {
597
106
  "internalType": "uint256",
598
- "name": "_ownedNFTProjectId",
107
+ "name": "ownedNFTProjectId",
599
108
  "type": "uint256"
600
109
  }
601
110
  ],
@@ -627,12 +136,12 @@
627
136
  "inputs": [
628
137
  {
629
138
  "internalType": "uint256",
630
- "name": "_projectId",
139
+ "name": "projectId",
631
140
  "type": "uint256"
632
141
  },
633
142
  {
634
143
  "internalType": "address",
635
- "name": "_coreContract",
144
+ "name": "coreContract",
636
145
  "type": "address"
637
146
  }
638
147
  ],
@@ -651,22 +160,22 @@
651
160
  "inputs": [
652
161
  {
653
162
  "internalType": "uint256",
654
- "name": "_projectId",
163
+ "name": "projectId",
655
164
  "type": "uint256"
656
165
  },
657
166
  {
658
167
  "internalType": "address",
659
- "name": "_coreContract",
168
+ "name": "coreContract",
660
169
  "type": "address"
661
170
  },
662
171
  {
663
172
  "internalType": "uint256",
664
- "name": "_panelId",
173
+ "name": "panelId",
665
174
  "type": "uint256"
666
175
  },
667
176
  {
668
177
  "internalType": "bytes12",
669
- "name": "_hashSeed",
178
+ "name": "hashSeed",
670
179
  "type": "bytes12"
671
180
  }
672
181
  ],
@@ -685,12 +194,12 @@
685
194
  "inputs": [
686
195
  {
687
196
  "internalType": "uint256",
688
- "name": "_projectId",
197
+ "name": "projectId",
689
198
  "type": "uint256"
690
199
  },
691
200
  {
692
201
  "internalType": "address",
693
- "name": "_coreContract",
202
+ "name": "coreContract",
694
203
  "type": "address"
695
204
  }
696
205
  ],
@@ -724,12 +233,12 @@
724
233
  "inputs": [
725
234
  {
726
235
  "internalType": "uint256",
727
- "name": "_projectId",
236
+ "name": "projectId",
728
237
  "type": "uint256"
729
238
  },
730
239
  {
731
240
  "internalType": "address",
732
- "name": "_coreContract",
241
+ "name": "coreContract",
733
242
  "type": "address"
734
243
  }
735
244
  ],
@@ -742,22 +251,22 @@
742
251
  "inputs": [
743
252
  {
744
253
  "internalType": "uint256",
745
- "name": "_projectId",
254
+ "name": "projectId",
746
255
  "type": "uint256"
747
256
  },
748
257
  {
749
258
  "internalType": "address",
750
- "name": "_coreContract",
259
+ "name": "coreContract",
751
260
  "type": "address"
752
261
  },
753
262
  {
754
263
  "internalType": "address",
755
- "name": "_ownedNFTAddress",
264
+ "name": "ownedNFTAddress",
756
265
  "type": "address"
757
266
  },
758
267
  {
759
268
  "internalType": "uint256",
760
- "name": "_ownedNFTTokenId",
269
+ "name": "ownedNFTTokenId",
761
270
  "type": "uint256"
762
271
  }
763
272
  ],
@@ -776,7 +285,7 @@
776
285
  "inputs": [
777
286
  {
778
287
  "internalType": "address",
779
- "name": "_coreContract",
288
+ "name": "coreContract",
780
289
  "type": "address"
781
290
  }
782
291
  ],
@@ -795,17 +304,17 @@
795
304
  "inputs": [
796
305
  {
797
306
  "internalType": "uint256",
798
- "name": "_projectId",
307
+ "name": "projectId",
799
308
  "type": "uint256"
800
309
  },
801
310
  {
802
311
  "internalType": "address",
803
- "name": "_coreContract",
312
+ "name": "coreContract",
804
313
  "type": "address"
805
314
  },
806
315
  {
807
316
  "internalType": "uint24",
808
- "name": "_maxInvocations",
317
+ "name": "maxInvocations",
809
318
  "type": "uint24"
810
319
  }
811
320
  ],
@@ -818,12 +327,12 @@
818
327
  "inputs": [
819
328
  {
820
329
  "internalType": "uint256",
821
- "name": "_projectId",
330
+ "name": "projectId",
822
331
  "type": "uint256"
823
332
  },
824
333
  {
825
334
  "internalType": "address",
826
- "name": "_coreContract",
335
+ "name": "coreContract",
827
336
  "type": "address"
828
337
  }
829
338
  ],
@@ -893,12 +402,12 @@
893
402
  "inputs": [
894
403
  {
895
404
  "internalType": "uint256",
896
- "name": "_projectId",
405
+ "name": "projectId",
897
406
  "type": "uint256"
898
407
  },
899
408
  {
900
409
  "internalType": "address",
901
- "name": "_coreContract",
410
+ "name": "coreContract",
902
411
  "type": "address"
903
412
  }
904
413
  ],
@@ -917,12 +426,12 @@
917
426
  "inputs": [
918
427
  {
919
428
  "internalType": "uint256",
920
- "name": "_projectId",
429
+ "name": "projectId",
921
430
  "type": "uint256"
922
431
  },
923
432
  {
924
433
  "internalType": "address",
925
- "name": "_coreContract",
434
+ "name": "coreContract",
926
435
  "type": "address"
927
436
  }
928
437
  ],
@@ -941,22 +450,22 @@
941
450
  "inputs": [
942
451
  {
943
452
  "internalType": "uint256",
944
- "name": "_projectId",
453
+ "name": "projectId",
945
454
  "type": "uint256"
946
455
  },
947
456
  {
948
457
  "internalType": "address",
949
- "name": "_coreContract",
458
+ "name": "coreContract",
950
459
  "type": "address"
951
460
  },
952
461
  {
953
462
  "internalType": "address",
954
- "name": "_ownedNFTAddress",
463
+ "name": "ownedNFTAddress",
955
464
  "type": "address"
956
465
  },
957
466
  {
958
467
  "internalType": "uint256",
959
- "name": "_ownedNFTTokenId",
468
+ "name": "ownedNFTTokenId",
960
469
  "type": "uint256"
961
470
  }
962
471
  ],
@@ -975,32 +484,32 @@
975
484
  "inputs": [
976
485
  {
977
486
  "internalType": "address",
978
- "name": "_to",
487
+ "name": "to",
979
488
  "type": "address"
980
489
  },
981
490
  {
982
491
  "internalType": "uint256",
983
- "name": "_projectId",
492
+ "name": "projectId",
984
493
  "type": "uint256"
985
494
  },
986
495
  {
987
496
  "internalType": "address",
988
- "name": "_coreContract",
497
+ "name": "coreContract",
989
498
  "type": "address"
990
499
  },
991
500
  {
992
501
  "internalType": "address",
993
- "name": "_ownedNFTAddress",
502
+ "name": "ownedNFTAddress",
994
503
  "type": "address"
995
504
  },
996
505
  {
997
506
  "internalType": "uint256",
998
- "name": "_ownedNFTTokenId",
507
+ "name": "ownedNFTTokenId",
999
508
  "type": "uint256"
1000
509
  },
1001
510
  {
1002
511
  "internalType": "address",
1003
- "name": "_vault",
512
+ "name": "vault",
1004
513
  "type": "address"
1005
514
  }
1006
515
  ],
@@ -1019,27 +528,27 @@
1019
528
  "inputs": [
1020
529
  {
1021
530
  "internalType": "address",
1022
- "name": "_to",
531
+ "name": "to",
1023
532
  "type": "address"
1024
533
  },
1025
534
  {
1026
535
  "internalType": "uint256",
1027
- "name": "_projectId",
536
+ "name": "projectId",
1028
537
  "type": "uint256"
1029
538
  },
1030
539
  {
1031
540
  "internalType": "address",
1032
- "name": "_coreContract",
541
+ "name": "coreContract",
1033
542
  "type": "address"
1034
543
  },
1035
544
  {
1036
545
  "internalType": "address",
1037
- "name": "_ownedNFTAddress",
546
+ "name": "ownedNFTAddress",
1038
547
  "type": "address"
1039
548
  },
1040
549
  {
1041
550
  "internalType": "uint256",
1042
- "name": "_ownedNFTTokenId",
551
+ "name": "ownedNFTTokenId",
1043
552
  "type": "uint256"
1044
553
  }
1045
554
  ],
@@ -1058,22 +567,22 @@
1058
567
  "inputs": [
1059
568
  {
1060
569
  "internalType": "uint256",
1061
- "name": "_projectId",
570
+ "name": "projectId",
1062
571
  "type": "uint256"
1063
572
  },
1064
573
  {
1065
574
  "internalType": "address",
1066
- "name": "_coreContract",
575
+ "name": "coreContract",
1067
576
  "type": "address"
1068
577
  },
1069
578
  {
1070
579
  "internalType": "address[]",
1071
- "name": "_ownedNFTAddresses",
580
+ "name": "ownedNFTAddresses",
1072
581
  "type": "address[]"
1073
582
  },
1074
583
  {
1075
584
  "internalType": "uint256[]",
1076
- "name": "_ownedNFTProjectIds",
585
+ "name": "ownedNFTProjectIds",
1077
586
  "type": "uint256[]"
1078
587
  }
1079
588
  ],
@@ -1086,12 +595,12 @@
1086
595
  "inputs": [
1087
596
  {
1088
597
  "internalType": "uint256",
1089
- "name": "_projectId",
598
+ "name": "projectId",
1090
599
  "type": "uint256"
1091
600
  },
1092
601
  {
1093
602
  "internalType": "address",
1094
- "name": "_coreContract",
603
+ "name": "coreContract",
1095
604
  "type": "address"
1096
605
  }
1097
606
  ],
@@ -1101,7 +610,7 @@
1101
610
  "components": [
1102
611
  {
1103
612
  "internalType": "uint248",
1104
- "name": "pricePerTokenInWei",
613
+ "name": "pricePerToken",
1105
614
  "type": "uint248"
1106
615
  },
1107
616
  {
@@ -1122,12 +631,12 @@
1122
631
  "inputs": [
1123
632
  {
1124
633
  "internalType": "uint256",
1125
- "name": "_projectId",
634
+ "name": "projectId",
1126
635
  "type": "uint256"
1127
636
  },
1128
637
  {
1129
638
  "internalType": "address",
1130
- "name": "_coreContract",
639
+ "name": "coreContract",
1131
640
  "type": "address"
1132
641
  }
1133
642
  ],
@@ -1140,17 +649,17 @@
1140
649
  "inputs": [
1141
650
  {
1142
651
  "internalType": "uint256",
1143
- "name": "_projectId",
652
+ "name": "projectId",
1144
653
  "type": "uint256"
1145
654
  },
1146
655
  {
1147
656
  "internalType": "address",
1148
- "name": "_coreContract",
657
+ "name": "coreContract",
1149
658
  "type": "address"
1150
659
  },
1151
660
  {
1152
661
  "internalType": "uint248",
1153
- "name": "_pricePerTokenInWei",
662
+ "name": "pricePerTokenInWei",
1154
663
  "type": "uint248"
1155
664
  }
1156
665
  ],
@@ -1160,8 +669,8 @@
1160
669
  "type": "function"
1161
670
  }
1162
671
  ],
1163
- "bytecode": "0x6101006040523480156200001257600080fd5b5060405162002b8038038062002b808339810160408190526200003591620000b1565b60016000556001600160a01b03828116608081905260a052811660c081905260e08190526040519081527f836360d1b094a7de3c3eab3d1185f3a5939467c23d4a12709dbdbf8c8d7e2f3b9060200160405180910390a15050620000e9565b80516001600160a01b0381168114620000ac57600080fd5b919050565b60008060408385031215620000c557600080fd5b620000d08362000094565b9150620000e06020840162000094565b90509250929050565b60805160a05160c05160e051612a5d62000123600039600061097c0152600061042f01526000610b520152600061057e0152612a5d6000f3fe60806040526004361061011b5760003560e01c806301000da7146101205780630c49ef311461015557806319d29d7e1461017757806333c91bdb1461019857806339b87cf8146101b85780634869f3df146101d85780637e947f24146101f85780637fbbc005146102185780637ffb2eb81461022b5780638a605b51146102705780639a94488a146102905780639b24c3c0146103285780639d923dff146103ca578063a03f5997146103dd578063b000e334146103fd578063bf5bf5f81461041d578063cce7c90914610469578063d3ddabe614610489578063d9bffbce146104c8578063d9eb16db146104e8578063dd85582f1461056c578063e9d1e8ac146105a0578063f7f5e9d0146105e5578063fca23f4e14610605575b600080fd5b34801561012c57600080fd5b5061014061013b3660046120b3565b61065f565b60405190151581526020015b60405180910390f35b34801561016157600080fd5b50610175610170366004612208565b6106a0565b005b61018a6101853660046122cd565b61076b565b60405190815260200161014c565b3480156101a457600080fd5b506101406101b3366004612353565b610cc0565b3480156101c457600080fd5b506101406101d336600461239d565b610d10565b3480156101e457600080fd5b5061018a6101f33660046123e5565b610d47565b34801561020457600080fd5b50610175610213366004612415565b610d7f565b61018a61022636600461239d565b610e2f565b34801561023757600080fd5b5061018a6102463660046123e5565b6001600160a01b03166000908152600460209081526040808320938352929052205462ffffff1690565b34801561027c57600080fd5b5061017561028b366004612463565b610e40565b34801561029c57600080fd5b506103066102ab3660046123e5565b6040805180820190915260008082526020820152506001600160a01b031660009081526003602090815260408083209383529281529082902082518084019093525460ff811615158352610100900462ffffff169082015290565b6040805182511515815260209283015162ffffff16928101929092520161014c565b34801561033457600080fd5b506103a46103433660046123e5565b6040805180820190915260008082526020820152506001600160a01b03166000908152600160209081526040808320938352928152908290208251808401909352546001600160f81b0381168352600160f81b900460ff1615159082015290565b6040805182516001600160f81b031681526020928301511515928101929092520161014c565b61018a6103d83660046124e2565b610ec3565b3480156103e957600080fd5b506101756103f83660046123e5565b610ed4565b34801561040957600080fd5b5061017561041836600461253d565b610f71565b34801561042957600080fd5b506104517f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161014c565b34801561047557600080fd5b506101406104843660046123e5565b610ff0565b34801561049557600080fd5b506104bb60405180604001604052806006815260200165076352e302e360d41b81525081565b60405161014c91906125cc565b3480156104d457600080fd5b506101756104e33660046123e5565b61101c565b3480156104f457600080fd5b5061055c6105033660046123e5565b6001600160a01b03166000908152600160209081526040808320938352928152828220548351808501909452600384526208aa8960eb1b9184019190915260ff600160f81b820416936001600160f81b03909116929190565b60405161014c94939291906125df565b34801561057857600080fd5b506104517f000000000000000000000000000000000000000000000000000000000000000081565b3480156105ac57600080fd5b506104bb604051806040016040528060198152602001784d696e7465725365745072696365506f6c797074796368563560381b81525081565b3480156105f157600080fd5b50610175610600366004612463565b611095565b34801561061157600080fd5b5061014061062036600461239d565b6001600160a01b039283166000908152600560209081526040808320968352958152858220939094168152918352838220908252909152205460ff1690565b6001600160a01b03811660009081526002602052604081208054610100900460ff1615610690575460ff1692915050565b6106998361110a565b9392505050565b6106ab868633611242565b6001600160a01b038516600090815260056020908152604080832089845290915290206106db908585858561128c565b846001600160a01b0316867fe4e108abe1d65a55b2c49a1586fb2afa6c3d79732947e37f71a6c23a5b08ff828686604051610717929190612619565b60405180910390a3846001600160a01b0316867f5728c49515724a90b87298ccfb6a8868ff0bfddf7e4fe298cea807dd815ced09848460405161075b929190612619565b60405180910390a3505050505050565b60006002600054036107c45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b600260009081556001600160a01b0386168082526001602090815260408084208a85528252808420928452600382528084208a8552909152909120805460ff16156108215760405162461bcd60e51b81526004016107bb9061269d565b8154600160f81b900460ff166108705760405162461bcd60e51b8152602060048201526014602482015273141c9a58d9481b9bdd0818dbdb999a59dd5c995960621b60448201526064016107bb565b81546001600160f81b03163410156108c35760405162461bcd60e51b815260206004820152601660248201527526b4b7103b30b63ab2903a379036b4b73a103932b89760511b60448201526064016107bb565b6001600160a01b03871660009081526005602090815260408083208b845290915290206108f19087876112a2565b6109355760405162461bcd60e51b81526020600482015260156024820152744f6e6c7920616c6c6f776c6973746564204e46547360581b60448201526064016107bb565b336001600160a01b03851615610a3d57604051631574d39f60e31b81523360048201526001600160a01b0386811660248301528981166044830152606482018890526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aba69cf890608401602060405180830381865afa1580156109c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e991906126de565b905080610a385760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642064656c65676174652d7661756c742070616972696e67000060448201526064016107bb565b859150505b604051630ea5613f60e01b8152600481018a905288906000906001600160a01b03831690630ea5613f9060240160c060405180830381865afa158015610a87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aab91906126f9565b505050505090506000610abe8a8a6112e0565b90506000600460008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008e81526020019081526020016000209050610b04818361134c565b506000610b118d84611445565b9050610b1e8c828461145f565b6040516117cd60e21b81526001600160a01b038f81166004830152602482018f90528d8116604483015286811660648301527f00000000000000000000000000000000000000000000000000000000000000001690615f34906084016020604051808303816000875af1158015610b99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbd9190612758565b9750610bca8c898461153c565b5050610bd686856115a9565b60405163a47d29cb60e01b8152600481018c90526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa158015610c1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c429190612771565b90506000336001600160a01b03831614610c5c5784610c5e565b8d5b9050610c6b8b8b836115f7565b50506001600160a01b038a166000908152600260205260408120610c90908c906116ba565b8654909150610cab908d906001600160f81b03168d846116ec565b50505050505060016000559695505050505050565b6001600160a01b038316600090815260046020908152604080832087845282528083208584526001810183528184206001600160a01b03198616855290925282205460ff165b9695505050505050565b6001600160a01b03831660009081526005602090815260408083208784529091528120610d3e9084846112a2565b95945050505050565b6001600160a01b0381166000908152600360209081526040808320858452909152812054610100900462ffffff165b90505b92915050565b610d8a838333611242565b6001600160a01b03821660008181526001602090815260408083208784529091528082206001600160f81b038516600160f81b8117825591519093919287917f37a132f63521ff11fed0c526f0f30824337316bb2b71fcfc0b6f3cf631595b5f9190a46001600160a01b03831660009081526003602090815260408083208784529091529020610e19816117a3565b15610e2857610e28858561101c565b5050505050565b6000610d3e3386868686600061076b565b610e4b848433611242565b6001600160a01b03831660009081526005602090815260408083208784529091529020610e799083836117c3565b826001600160a01b0316847fe4e108abe1d65a55b2c49a1586fb2afa6c3d79732947e37f71a6c23a5b08ff828484604051610eb5929190612619565b60405180910390a350505050565b6000610d068686868686600061076b565b610edf828233611242565b6001600160a01b03811660009081526004602090815260408083208584529091529020610f0b81611886565b8054604080516f1c1bdb1e5c1d1e58da14185b995b125960821b815262ffffff90921660208301526001600160a01b0384169185917f1809fd1f08e6b0df08fd848757688435a0ab8520a51dcca23eba5a3c7f7280d691015b60405180910390a3505050565b610f7c838333611242565b6001600160a01b03821660009081526003602090815260408083208684529091529020610fae908490849084906118ba565b60405162ffffff821681526001600160a01b0383169084907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e23790602001610f64565b6001600160a01b038116600090815260036020908152604080832085845290915281205460ff16610d76565b611027828233611242565b6001600160a01b038116600090815260036020908152604080832085845290915281206110579084908490611941565b9050816001600160a01b0316837f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e23783604051610f6491815260200190565b6110a0848433611242565b6001600160a01b038316600090815260056020908152604080832087845290915290206110ce9083836119e6565b826001600160a01b0316847f5728c49515724a90b87298ccfb6a8868ff0bfddf7e4fe298cea807dd815ced098484604051610eb5929190612619565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b0386169061116c90859061278e565b600060405180830381855afa9150503d80600081146111a7576040519150601f19603f3d011682016040523d82523d6000602084013e6111ac565b606091505b5091509150816111ce5760405162461bcd60e51b81526004016107bb906127aa565b805160c08190036111e55750600095945050505050565b80610100036111fa5750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c6974206279746573000060448201526064016107bb565b61124d838383611aa9565b6112875760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b60448201526064016107bb565b505050565b6112978585856117c3565b610e288583836119e6565b6000806112b2620f424084612805565b6001600160a01b038516600090815260208781526040808320938352929052205460ff169150509392505050565b604051634d01727d60e11b8152600481018290526000906001600160a01b03841690639a02e4fa90602401602060405180830381865afa158015611328573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d769190612827565b6001600160a01b0319811661139e5760405162461bcd60e51b81526020600482015260186024820152774f6e6c79206e6f6e2d7a65726f206861736820736565647360401b60448201526064016107bb565b815462ffffff16600081815260018401602090815260408083206001600160a01b03198616845290915290205460ff16156114125760405162461bcd60e51b815260206004820152601460248201527314185b995b08185b1c9958591e481b5a5b9d195960621b60448201526064016107bb565b60009081526001928301602090815260408083206001600160a01b0319909416835292905220805460ff19169091179055565b600081611455620f424085612844565b610d76919061285b565b826001600160a01b03166336c7c12c6040518163ffffffff1660e01b81526004016020604051808303816000875af115801561149f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c39190612771565b60405163dddceed160e01b81526001600160a01b038581166004830152602482018590526001600160a01b031984166044830152919091169063dddceed190606401600060405180830381600087803b15801561151f57600080fd5b505af1158015611533573d6000803e3d6000fd5b50505050505050565b600061154884846112e0565b90506001600160a01b0319808216908316146115a35760405162461bcd60e51b815260206004820152601a602482015279155b995e1c1958dd1959081d1bdad95b881a185cda081cd9595960321b60448201526064016107bb565b50505050565b8054620f4240830660010190610100900462ffffff16808211156115df5760405162461bcd60e51b81526004016107bb9061269d565b8082036115a357825460ff1916600117835550505050565b6040516331a9108f60e11b8152600481018390526000906001600160a01b03851690636352211e90602401602060405180830381865afa15801561163f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116639190612771565b9050816001600160a01b0316816001600160a01b0316146115a35760405162461bcd60e51b815260206004820152601160248201527013db9b1e481bdddb995c881bd988139195607a1b60448201526064016107bb565b8054600090610100900460ff16156116d75750805460ff16610d79565b60006116e38484611b32565b9150610d799050565b34156115a3576000806116ff853461286e565b9050801561178f5760405133908290600081818185875af1925050503d8060008114611747576040519150601f19603f3d011682016040523d82523d6000602084013e61174c565b606091505b5050809250508161178f5760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b60448201526064016107bb565b61179b86868686611c42565b505050505050565b8054600090610100900462ffffff16158015610d795750505460ff161590565b80518251146117e45760405162461bcd60e51b81526004016107bb90612881565b60005b82518110156115a357600184600001600085848151811061180a5761180a6128c2565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000848481518110611846576118466128c2565b6020026020010151815260200190815260200160002060006101000a81548160ff021916908315150217905550808061187e906128d8565b9150506117e7565b8054819060009061189b9062ffffff166128f1565b91906101000a81548162ffffff021916908362ffffff16021790555050565b6000806118c7868661200d565b91509150808462ffffff1611156118f05760405162461bcd60e51b81526004016107bb90612913565b818462ffffff1610156119155760405162461bcd60e51b81526004016107bb90612913565b50815460ff1962ffffff90941661010081029490941663ffffffff199091161792149190911790555050565b6000806000846001600160a01b0316630ea5613f876040518263ffffffff1660e01b815260040161197491815260200190565b60c060405180830381865afa158015611991573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119b591906126f9565b5050875493831463ffffffff1990941661010062ffffff85160260ff19161793909317909655979650505050505050565b8051825114611a075760405162461bcd60e51b81526004016107bb90612881565b60005b82518110156115a3576000846000016000858481518110611a2d57611a2d6128c2565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000848481518110611a6957611a696128c2565b6020026020010151815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611aa1906128d8565b915050611a0a565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa158015611af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b159190612771565b6001600160a01b0316826001600160a01b03161490509392505050565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03871690611b9490859061278e565b6000604051808303816000865af19150503d8060008114611bd1576040519150601f19603f3d011682016040523d82523d6000602084013e611bd6565b606091505b509150915081611bf85760405162461bcd60e51b81526004016107bb906127aa565b805160c0819003611c1e575050835461ffff19166101001784555060009150610d799050565b80610100036111fa575050835461ffff19166101011784555060019150610d799050565b82156115a35760008060008060008060008715611d9357604051638639415b60e01b8152600481018c9052602481018b905260009081906001600160a01b038c1690638639415b9060440161010060405180830381865afa158015611cab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccf9190612944565b969e50949c50909a50985091965091945090925090508115611d8c576040516001600160a01b038216908390600081818185875af1925050503d8060008114611d34576040519150601f19603f3d011682016040523d82523d6000602084013e611d39565b606091505b50508099505088611d8c5760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c656460448201526064016107bb565b5050611e13565b604051638639415b60e01b8152600481018c9052602481018b90526001600160a01b038a1690638639415b9060440160c060405180830381865afa158015611ddf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0391906129cc565b949a509298509096509450925090505b8515611eba576040516001600160a01b038616908790600081818185875af1925050503d8060008114611e62576040519150601f19603f3d011682016040523d82523d6000602084013e611e67565b606091505b50508097505086611eba5760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c6564000060448201526064016107bb565b8315611f59576040516001600160a01b038416908590600081818185875af1925050503d8060008114611f09576040519150601f19603f3d011682016040523d82523d6000602084013e611f0e565b606091505b50508097505086611f595760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b60448201526064016107bb565b8115612000576040516001600160a01b038216908390600081818185875af1925050503d8060008114611fa8576040519150601f19603f3d011682016040523d82523d6000602084013e611fad565b606091505b505080975050866120005760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c65640060448201526064016107bb565b5050505050505050505050565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b03841690630ea5613f9060240160c060405180830381865afa158015612057573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061207b91906126f9565b5093989297509195505050505050565b6001600160a01b03811681146120a057600080fd5b50565b80356120ae8161208b565b919050565b6000602082840312156120c557600080fd5b81356106998161208b565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561210e5761210e6120d0565b604052919050565b60006001600160401b0382111561212f5761212f6120d0565b5060051b60200190565b600082601f83011261214a57600080fd5b8135602061215f61215a83612116565b6120e6565b82815260059290921b8401810191818101908684111561217e57600080fd5b8286015b848110156121a25780356121958161208b565b8352918301918301612182565b509695505050505050565b600082601f8301126121be57600080fd5b813560206121ce61215a83612116565b82815260059290921b840181019181810190868411156121ed57600080fd5b8286015b848110156121a257803583529183019183016121f1565b60008060008060008060c0878903121561222157600080fd5b86359550612231602088016120a3565b945060408701356001600160401b038082111561224d57600080fd5b6122598a838b01612139565b9550606089013591508082111561226f57600080fd5b61227b8a838b016121ad565b9450608089013591508082111561229157600080fd5b61229d8a838b01612139565b935060a08901359150808211156122b357600080fd5b506122c089828a016121ad565b9150509295509295509295565b60008060008060008060c087890312156122e657600080fd5b86356122f18161208b565b95506020870135945060408701356123088161208b565b935060608701356123188161208b565b92506080870135915060a087013561232f8161208b565b809150509295509295509295565b6001600160a01b0319811681146120a057600080fd5b6000806000806080858703121561236957600080fd5b84359350602085013561237b8161208b565b92506040850135915060608501356123928161233d565b939692955090935050565b600080600080608085870312156123b357600080fd5b8435935060208501356123c58161208b565b925060408501356123d58161208b565b9396929550929360600135925050565b600080604083850312156123f857600080fd5b82359150602083013561240a8161208b565b809150509250929050565b60008060006060848603121561242a57600080fd5b83359250602084013561243c8161208b565b915060408401356001600160f81b038116811461245857600080fd5b809150509250925092565b6000806000806080858703121561247957600080fd5b84359350602085013561248b8161208b565b925060408501356001600160401b03808211156124a757600080fd5b6124b388838901612139565b935060608701359150808211156124c957600080fd5b506124d6878288016121ad565b91505092959194509250565b600080600080600060a086880312156124fa57600080fd5b85356125058161208b565b945060208601359350604086013561251c8161208b565b9250606086013561252c8161208b565b949793965091946080013592915050565b60008060006060848603121561255257600080fd5b8335925060208401356125648161208b565b9150604084013562ffffff8116811461245857600080fd5b60005b8381101561259757818101518382015260200161257f565b50506000910152565b600081518084526125b881602086016020860161257c565b601f01601f19169290920160200192915050565b602081526000610d7660208301846125a0565b841515815283602082015260806040820152600061260060808301856125a0565b905060018060a01b038316606083015295945050505050565b604080825283519082018190526000906020906060840190828701845b8281101561265b5781516001600160a01b031684529284019290840190600101612636565b5050508381038285015284518082528583019183019060005b8181101561269057835183529284019291840191600101612674565b5090979650505050505050565b60208082526017908201527613585e081a5b9d9bd8d85d1a5bdb9cc81c995858da1959604a1b604082015260600190565b805180151581146120ae57600080fd5b6000602082840312156126f057600080fd5b610d76826126ce565b60008060008060008060c0878903121561271257600080fd5b8651955060208701519450612729604088016126ce565b9350612737606088016126ce565b92506080870151915061274c60a088016126ce565b90509295509295509295565b60006020828403121561276a57600080fd5b5051919050565b60006020828403121561278357600080fd5b81516106998161208b565b600082516127a081846020870161257c565b9190910192915050565b60208082526025908201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604082015264185a5b195960da1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b60008261282257634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561283957600080fd5b81516106998161233d565b8082028115828204841417610d7957610d796127ef565b80820180821115610d7957610d796127ef565b81810381811115610d7957610d796127ef565b60208082526021908201527f546f6b656e486f6c6465724c69623a20617272617973206e6571206c656e67746040820152600d60fb1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000600182016128ea576128ea6127ef565b5060010190565b600062ffffff808316818103612909576129096127ef565b6001019392505050565b602080825260179082015276496e76616c6964206d617820696e766f636174696f6e7360481b604082015260600190565b600080600080600080600080610100898b03121561296157600080fd5b8851975060208901516129738161208b565b60408a015160608b0151919850965061298b8161208b565b60808a015160a08b015191965094506129a38161208b565b60c08a015160e08b015191945092506129bb8161208b565b809150509295985092959890939650565b60008060008060008060c087890312156129e557600080fd5b8651955060208701516129f78161208b565b604088015160608901519196509450612a0f8161208b565b608088015160a0890151919450925061232f8161208b56fea264697066735822122099bef724477a02c33fadcae28e88208c6d44e4813ba3069686ba3a196e7e60d364736f6c63430008130033",
1164
- "deployedBytecode": "0x60806040526004361061011b5760003560e01c806301000da7146101205780630c49ef311461015557806319d29d7e1461017757806333c91bdb1461019857806339b87cf8146101b85780634869f3df146101d85780637e947f24146101f85780637fbbc005146102185780637ffb2eb81461022b5780638a605b51146102705780639a94488a146102905780639b24c3c0146103285780639d923dff146103ca578063a03f5997146103dd578063b000e334146103fd578063bf5bf5f81461041d578063cce7c90914610469578063d3ddabe614610489578063d9bffbce146104c8578063d9eb16db146104e8578063dd85582f1461056c578063e9d1e8ac146105a0578063f7f5e9d0146105e5578063fca23f4e14610605575b600080fd5b34801561012c57600080fd5b5061014061013b3660046120b3565b61065f565b60405190151581526020015b60405180910390f35b34801561016157600080fd5b50610175610170366004612208565b6106a0565b005b61018a6101853660046122cd565b61076b565b60405190815260200161014c565b3480156101a457600080fd5b506101406101b3366004612353565b610cc0565b3480156101c457600080fd5b506101406101d336600461239d565b610d10565b3480156101e457600080fd5b5061018a6101f33660046123e5565b610d47565b34801561020457600080fd5b50610175610213366004612415565b610d7f565b61018a61022636600461239d565b610e2f565b34801561023757600080fd5b5061018a6102463660046123e5565b6001600160a01b03166000908152600460209081526040808320938352929052205462ffffff1690565b34801561027c57600080fd5b5061017561028b366004612463565b610e40565b34801561029c57600080fd5b506103066102ab3660046123e5565b6040805180820190915260008082526020820152506001600160a01b031660009081526003602090815260408083209383529281529082902082518084019093525460ff811615158352610100900462ffffff169082015290565b6040805182511515815260209283015162ffffff16928101929092520161014c565b34801561033457600080fd5b506103a46103433660046123e5565b6040805180820190915260008082526020820152506001600160a01b03166000908152600160209081526040808320938352928152908290208251808401909352546001600160f81b0381168352600160f81b900460ff1615159082015290565b6040805182516001600160f81b031681526020928301511515928101929092520161014c565b61018a6103d83660046124e2565b610ec3565b3480156103e957600080fd5b506101756103f83660046123e5565b610ed4565b34801561040957600080fd5b5061017561041836600461253d565b610f71565b34801561042957600080fd5b506104517f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161014c565b34801561047557600080fd5b506101406104843660046123e5565b610ff0565b34801561049557600080fd5b506104bb60405180604001604052806006815260200165076352e302e360d41b81525081565b60405161014c91906125cc565b3480156104d457600080fd5b506101756104e33660046123e5565b61101c565b3480156104f457600080fd5b5061055c6105033660046123e5565b6001600160a01b03166000908152600160209081526040808320938352928152828220548351808501909452600384526208aa8960eb1b9184019190915260ff600160f81b820416936001600160f81b03909116929190565b60405161014c94939291906125df565b34801561057857600080fd5b506104517f000000000000000000000000000000000000000000000000000000000000000081565b3480156105ac57600080fd5b506104bb604051806040016040528060198152602001784d696e7465725365745072696365506f6c797074796368563560381b81525081565b3480156105f157600080fd5b50610175610600366004612463565b611095565b34801561061157600080fd5b5061014061062036600461239d565b6001600160a01b039283166000908152600560209081526040808320968352958152858220939094168152918352838220908252909152205460ff1690565b6001600160a01b03811660009081526002602052604081208054610100900460ff1615610690575460ff1692915050565b6106998361110a565b9392505050565b6106ab868633611242565b6001600160a01b038516600090815260056020908152604080832089845290915290206106db908585858561128c565b846001600160a01b0316867fe4e108abe1d65a55b2c49a1586fb2afa6c3d79732947e37f71a6c23a5b08ff828686604051610717929190612619565b60405180910390a3846001600160a01b0316867f5728c49515724a90b87298ccfb6a8868ff0bfddf7e4fe298cea807dd815ced09848460405161075b929190612619565b60405180910390a3505050505050565b60006002600054036107c45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b600260009081556001600160a01b0386168082526001602090815260408084208a85528252808420928452600382528084208a8552909152909120805460ff16156108215760405162461bcd60e51b81526004016107bb9061269d565b8154600160f81b900460ff166108705760405162461bcd60e51b8152602060048201526014602482015273141c9a58d9481b9bdd0818dbdb999a59dd5c995960621b60448201526064016107bb565b81546001600160f81b03163410156108c35760405162461bcd60e51b815260206004820152601660248201527526b4b7103b30b63ab2903a379036b4b73a103932b89760511b60448201526064016107bb565b6001600160a01b03871660009081526005602090815260408083208b845290915290206108f19087876112a2565b6109355760405162461bcd60e51b81526020600482015260156024820152744f6e6c7920616c6c6f776c6973746564204e46547360581b60448201526064016107bb565b336001600160a01b03851615610a3d57604051631574d39f60e31b81523360048201526001600160a01b0386811660248301528981166044830152606482018890526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aba69cf890608401602060405180830381865afa1580156109c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e991906126de565b905080610a385760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642064656c65676174652d7661756c742070616972696e67000060448201526064016107bb565b859150505b604051630ea5613f60e01b8152600481018a905288906000906001600160a01b03831690630ea5613f9060240160c060405180830381865afa158015610a87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aab91906126f9565b505050505090506000610abe8a8a6112e0565b90506000600460008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008e81526020019081526020016000209050610b04818361134c565b506000610b118d84611445565b9050610b1e8c828461145f565b6040516117cd60e21b81526001600160a01b038f81166004830152602482018f90528d8116604483015286811660648301527f00000000000000000000000000000000000000000000000000000000000000001690615f34906084016020604051808303816000875af1158015610b99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bbd9190612758565b9750610bca8c898461153c565b5050610bd686856115a9565b60405163a47d29cb60e01b8152600481018c90526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa158015610c1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c429190612771565b90506000336001600160a01b03831614610c5c5784610c5e565b8d5b9050610c6b8b8b836115f7565b50506001600160a01b038a166000908152600260205260408120610c90908c906116ba565b8654909150610cab908d906001600160f81b03168d846116ec565b50505050505060016000559695505050505050565b6001600160a01b038316600090815260046020908152604080832087845282528083208584526001810183528184206001600160a01b03198616855290925282205460ff165b9695505050505050565b6001600160a01b03831660009081526005602090815260408083208784529091528120610d3e9084846112a2565b95945050505050565b6001600160a01b0381166000908152600360209081526040808320858452909152812054610100900462ffffff165b90505b92915050565b610d8a838333611242565b6001600160a01b03821660008181526001602090815260408083208784529091528082206001600160f81b038516600160f81b8117825591519093919287917f37a132f63521ff11fed0c526f0f30824337316bb2b71fcfc0b6f3cf631595b5f9190a46001600160a01b03831660009081526003602090815260408083208784529091529020610e19816117a3565b15610e2857610e28858561101c565b5050505050565b6000610d3e3386868686600061076b565b610e4b848433611242565b6001600160a01b03831660009081526005602090815260408083208784529091529020610e799083836117c3565b826001600160a01b0316847fe4e108abe1d65a55b2c49a1586fb2afa6c3d79732947e37f71a6c23a5b08ff828484604051610eb5929190612619565b60405180910390a350505050565b6000610d068686868686600061076b565b610edf828233611242565b6001600160a01b03811660009081526004602090815260408083208584529091529020610f0b81611886565b8054604080516f1c1bdb1e5c1d1e58da14185b995b125960821b815262ffffff90921660208301526001600160a01b0384169185917f1809fd1f08e6b0df08fd848757688435a0ab8520a51dcca23eba5a3c7f7280d691015b60405180910390a3505050565b610f7c838333611242565b6001600160a01b03821660009081526003602090815260408083208684529091529020610fae908490849084906118ba565b60405162ffffff821681526001600160a01b0383169084907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e23790602001610f64565b6001600160a01b038116600090815260036020908152604080832085845290915281205460ff16610d76565b611027828233611242565b6001600160a01b038116600090815260036020908152604080832085845290915281206110579084908490611941565b9050816001600160a01b0316837f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e23783604051610f6491815260200190565b6110a0848433611242565b6001600160a01b038316600090815260056020908152604080832087845290915290206110ce9083836119e6565b826001600160a01b0316847f5728c49515724a90b87298ccfb6a8868ff0bfddf7e4fe298cea807dd815ced098484604051610eb5929190612619565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b0386169061116c90859061278e565b600060405180830381855afa9150503d80600081146111a7576040519150601f19603f3d011682016040523d82523d6000602084013e6111ac565b606091505b5091509150816111ce5760405162461bcd60e51b81526004016107bb906127aa565b805160c08190036111e55750600095945050505050565b80610100036111fa5750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c6974206279746573000060448201526064016107bb565b61124d838383611aa9565b6112875760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b60448201526064016107bb565b505050565b6112978585856117c3565b610e288583836119e6565b6000806112b2620f424084612805565b6001600160a01b038516600090815260208781526040808320938352929052205460ff169150509392505050565b604051634d01727d60e11b8152600481018290526000906001600160a01b03841690639a02e4fa90602401602060405180830381865afa158015611328573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d769190612827565b6001600160a01b0319811661139e5760405162461bcd60e51b81526020600482015260186024820152774f6e6c79206e6f6e2d7a65726f206861736820736565647360401b60448201526064016107bb565b815462ffffff16600081815260018401602090815260408083206001600160a01b03198616845290915290205460ff16156114125760405162461bcd60e51b815260206004820152601460248201527314185b995b08185b1c9958591e481b5a5b9d195960621b60448201526064016107bb565b60009081526001928301602090815260408083206001600160a01b0319909416835292905220805460ff19169091179055565b600081611455620f424085612844565b610d76919061285b565b826001600160a01b03166336c7c12c6040518163ffffffff1660e01b81526004016020604051808303816000875af115801561149f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c39190612771565b60405163dddceed160e01b81526001600160a01b038581166004830152602482018590526001600160a01b031984166044830152919091169063dddceed190606401600060405180830381600087803b15801561151f57600080fd5b505af1158015611533573d6000803e3d6000fd5b50505050505050565b600061154884846112e0565b90506001600160a01b0319808216908316146115a35760405162461bcd60e51b815260206004820152601a602482015279155b995e1c1958dd1959081d1bdad95b881a185cda081cd9595960321b60448201526064016107bb565b50505050565b8054620f4240830660010190610100900462ffffff16808211156115df5760405162461bcd60e51b81526004016107bb9061269d565b8082036115a357825460ff1916600117835550505050565b6040516331a9108f60e11b8152600481018390526000906001600160a01b03851690636352211e90602401602060405180830381865afa15801561163f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116639190612771565b9050816001600160a01b0316816001600160a01b0316146115a35760405162461bcd60e51b815260206004820152601160248201527013db9b1e481bdddb995c881bd988139195607a1b60448201526064016107bb565b8054600090610100900460ff16156116d75750805460ff16610d79565b60006116e38484611b32565b9150610d799050565b34156115a3576000806116ff853461286e565b9050801561178f5760405133908290600081818185875af1925050503d8060008114611747576040519150601f19603f3d011682016040523d82523d6000602084013e61174c565b606091505b5050809250508161178f5760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b60448201526064016107bb565b61179b86868686611c42565b505050505050565b8054600090610100900462ffffff16158015610d795750505460ff161590565b80518251146117e45760405162461bcd60e51b81526004016107bb90612881565b60005b82518110156115a357600184600001600085848151811061180a5761180a6128c2565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000848481518110611846576118466128c2565b6020026020010151815260200190815260200160002060006101000a81548160ff021916908315150217905550808061187e906128d8565b9150506117e7565b8054819060009061189b9062ffffff166128f1565b91906101000a81548162ffffff021916908362ffffff16021790555050565b6000806118c7868661200d565b91509150808462ffffff1611156118f05760405162461bcd60e51b81526004016107bb90612913565b818462ffffff1610156119155760405162461bcd60e51b81526004016107bb90612913565b50815460ff1962ffffff90941661010081029490941663ffffffff199091161792149190911790555050565b6000806000846001600160a01b0316630ea5613f876040518263ffffffff1660e01b815260040161197491815260200190565b60c060405180830381865afa158015611991573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119b591906126f9565b5050875493831463ffffffff1990941661010062ffffff85160260ff19161793909317909655979650505050505050565b8051825114611a075760405162461bcd60e51b81526004016107bb90612881565b60005b82518110156115a3576000846000016000858481518110611a2d57611a2d6128c2565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000848481518110611a6957611a696128c2565b6020026020010151815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611aa1906128d8565b915050611a0a565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa158015611af1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b159190612771565b6001600160a01b0316826001600160a01b03161490509392505050565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03871690611b9490859061278e565b6000604051808303816000865af19150503d8060008114611bd1576040519150601f19603f3d011682016040523d82523d6000602084013e611bd6565b606091505b509150915081611bf85760405162461bcd60e51b81526004016107bb906127aa565b805160c0819003611c1e575050835461ffff19166101001784555060009150610d799050565b80610100036111fa575050835461ffff19166101011784555060019150610d799050565b82156115a35760008060008060008060008715611d9357604051638639415b60e01b8152600481018c9052602481018b905260009081906001600160a01b038c1690638639415b9060440161010060405180830381865afa158015611cab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ccf9190612944565b969e50949c50909a50985091965091945090925090508115611d8c576040516001600160a01b038216908390600081818185875af1925050503d8060008114611d34576040519150601f19603f3d011682016040523d82523d6000602084013e611d39565b606091505b50508099505088611d8c5760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c656460448201526064016107bb565b5050611e13565b604051638639415b60e01b8152600481018c9052602481018b90526001600160a01b038a1690638639415b9060440160c060405180830381865afa158015611ddf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0391906129cc565b949a509298509096509450925090505b8515611eba576040516001600160a01b038616908790600081818185875af1925050503d8060008114611e62576040519150601f19603f3d011682016040523d82523d6000602084013e611e67565b606091505b50508097505086611eba5760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c6564000060448201526064016107bb565b8315611f59576040516001600160a01b038416908590600081818185875af1925050503d8060008114611f09576040519150601f19603f3d011682016040523d82523d6000602084013e611f0e565b606091505b50508097505086611f595760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b60448201526064016107bb565b8115612000576040516001600160a01b038216908390600081818185875af1925050503d8060008114611fa8576040519150601f19603f3d011682016040523d82523d6000602084013e611fad565b606091505b505080975050866120005760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c65640060448201526064016107bb565b5050505050505050505050565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b03841690630ea5613f9060240160c060405180830381865afa158015612057573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061207b91906126f9565b5093989297509195505050505050565b6001600160a01b03811681146120a057600080fd5b50565b80356120ae8161208b565b919050565b6000602082840312156120c557600080fd5b81356106998161208b565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561210e5761210e6120d0565b604052919050565b60006001600160401b0382111561212f5761212f6120d0565b5060051b60200190565b600082601f83011261214a57600080fd5b8135602061215f61215a83612116565b6120e6565b82815260059290921b8401810191818101908684111561217e57600080fd5b8286015b848110156121a25780356121958161208b565b8352918301918301612182565b509695505050505050565b600082601f8301126121be57600080fd5b813560206121ce61215a83612116565b82815260059290921b840181019181810190868411156121ed57600080fd5b8286015b848110156121a257803583529183019183016121f1565b60008060008060008060c0878903121561222157600080fd5b86359550612231602088016120a3565b945060408701356001600160401b038082111561224d57600080fd5b6122598a838b01612139565b9550606089013591508082111561226f57600080fd5b61227b8a838b016121ad565b9450608089013591508082111561229157600080fd5b61229d8a838b01612139565b935060a08901359150808211156122b357600080fd5b506122c089828a016121ad565b9150509295509295509295565b60008060008060008060c087890312156122e657600080fd5b86356122f18161208b565b95506020870135945060408701356123088161208b565b935060608701356123188161208b565b92506080870135915060a087013561232f8161208b565b809150509295509295509295565b6001600160a01b0319811681146120a057600080fd5b6000806000806080858703121561236957600080fd5b84359350602085013561237b8161208b565b92506040850135915060608501356123928161233d565b939692955090935050565b600080600080608085870312156123b357600080fd5b8435935060208501356123c58161208b565b925060408501356123d58161208b565b9396929550929360600135925050565b600080604083850312156123f857600080fd5b82359150602083013561240a8161208b565b809150509250929050565b60008060006060848603121561242a57600080fd5b83359250602084013561243c8161208b565b915060408401356001600160f81b038116811461245857600080fd5b809150509250925092565b6000806000806080858703121561247957600080fd5b84359350602085013561248b8161208b565b925060408501356001600160401b03808211156124a757600080fd5b6124b388838901612139565b935060608701359150808211156124c957600080fd5b506124d6878288016121ad565b91505092959194509250565b600080600080600060a086880312156124fa57600080fd5b85356125058161208b565b945060208601359350604086013561251c8161208b565b9250606086013561252c8161208b565b949793965091946080013592915050565b60008060006060848603121561255257600080fd5b8335925060208401356125648161208b565b9150604084013562ffffff8116811461245857600080fd5b60005b8381101561259757818101518382015260200161257f565b50506000910152565b600081518084526125b881602086016020860161257c565b601f01601f19169290920160200192915050565b602081526000610d7660208301846125a0565b841515815283602082015260806040820152600061260060808301856125a0565b905060018060a01b038316606083015295945050505050565b604080825283519082018190526000906020906060840190828701845b8281101561265b5781516001600160a01b031684529284019290840190600101612636565b5050508381038285015284518082528583019183019060005b8181101561269057835183529284019291840191600101612674565b5090979650505050505050565b60208082526017908201527613585e081a5b9d9bd8d85d1a5bdb9cc81c995858da1959604a1b604082015260600190565b805180151581146120ae57600080fd5b6000602082840312156126f057600080fd5b610d76826126ce565b60008060008060008060c0878903121561271257600080fd5b8651955060208701519450612729604088016126ce565b9350612737606088016126ce565b92506080870151915061274c60a088016126ce565b90509295509295509295565b60006020828403121561276a57600080fd5b5051919050565b60006020828403121561278357600080fd5b81516106998161208b565b600082516127a081846020870161257c565b9190910192915050565b60208082526025908201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604082015264185a5b195960da1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b60008261282257634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561283957600080fd5b81516106998161233d565b8082028115828204841417610d7957610d796127ef565b80820180821115610d7957610d796127ef565b81810381811115610d7957610d796127ef565b60208082526021908201527f546f6b656e486f6c6465724c69623a20617272617973206e6571206c656e67746040820152600d60fb1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000600182016128ea576128ea6127ef565b5060010190565b600062ffffff808316818103612909576129096127ef565b6001019392505050565b602080825260179082015276496e76616c6964206d617820696e766f636174696f6e7360481b604082015260600190565b600080600080600080600080610100898b03121561296157600080fd5b8851975060208901516129738161208b565b60408a015160608b0151919850965061298b8161208b565b60808a015160a08b015191965094506129a38161208b565b60c08a015160e08b015191945092506129bb8161208b565b809150509295985092959890939650565b60008060008060008060c087890312156129e557600080fd5b8651955060208701516129f78161208b565b604088015160608901519196509450612a0f8161208b565b608088015160a0890151919450925061232f8161208b56fea264697066735822122099bef724477a02c33fadcae28e88208c6d44e4813ba3069686ba3a196e7e60d364736f6c63430008130033",
672
+ "bytecode": "0x6101006040523480156200001257600080fd5b506040516200292f3803806200292f8339810160408190526200003591620000b1565b60016000556001600160a01b03828116608081905260a052811660c081905260e08190526040519081527f836360d1b094a7de3c3eab3d1185f3a5939467c23d4a12709dbdbf8c8d7e2f3b9060200160405180910390a15050620000e9565b80516001600160a01b0381168114620000ac57600080fd5b919050565b60008060408385031215620000c557600080fd5b620000d08362000094565b9150620000e06020840162000094565b90509250929050565b60805160a05160c05160e05161280c6200012360003960006106b1015260006103580152600061084d01526000610453015261280c6000f3fe60806040526004361061011b5760003560e01c806301000da7146101205780630c49ef311461015557806319d29d7e1461017757806333c91bdb1461019857806339b87cf8146101b85780634869f3df146101d85780637e947f24146101f85780637fbbc005146102185780637ffb2eb81461022b5780638a605b511461024b5780639a94488a1461026b5780639b24c3c0146102ad5780639d923dff146102f3578063a03f599714610306578063b000e33414610326578063bf5bf5f814610346578063cce7c90914610392578063d3ddabe6146103b2578063d9bffbce146103f1578063d9eb16db14610411578063dd85582f14610441578063e9d1e8ac14610475578063f7f5e9d0146104ba578063fca23f4e146104da575b600080fd5b34801561012c57600080fd5b5061014061013b366004611f8c565b6104fa565b60405190151581526020015b60405180910390f35b34801561016157600080fd5b50610175610170366004611ff4565b610532565b005b61018a6101853660046120d4565b61055b565b60405190815260200161014c565b3480156101a457600080fd5b506101406101b336600461215a565b610986565b3480156101c457600080fd5b506101406101d33660046121a4565b61099d565b3480156101e457600080fd5b5061018a6101f33660046121ec565b6109ab565b34801561020457600080fd5b5061017561021336600461221c565b6109c0565b61018a6102263660046121a4565b6109fd565b34801561023757600080fd5b5061018a6102463660046121ec565b610a0e565b34801561025757600080fd5b5061017561026636600461226a565b610a1a565b34801561027757600080fd5b5061028b6102863660046121ec565b610a3b565b6040805182511515815260209283015162ffffff16928101929092520161014c565b3480156102b957600080fd5b506102cd6102c83660046121ec565b610a83565b6040805182516001600160f81b031681526020928301511515928101929092520161014c565b61018a6103013660046122f5565b610ad1565b34801561031257600080fd5b506101756103213660046121ec565b610aec565b34801561033257600080fd5b50610175610341366004612350565b610b05565b34801561035257600080fd5b5061037a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161014c565b34801561039e57600080fd5b506101406103ad3660046121ec565b610b1b565b3480156103be57600080fd5b506103e460405180604001604052806006815260200165076352e302e360d41b81525081565b60405161014c91906123df565b3480156103fd57600080fd5b5061017561040c3660046121ec565b610b27565b34801561041d57600080fd5b5061043161042c3660046121ec565b610b3c565b60405161014c94939291906123f2565b34801561044d57600080fd5b5061037a7f000000000000000000000000000000000000000000000000000000000000000081565b34801561048157600080fd5b506103e4604051806040016040528060198152602001784d696e7465725365745072696365506f6c797074796368563560381b81525081565b3480156104c657600080fd5b506101756104d536600461226a565b610b8e565b3480156104e657600080fd5b506101406104f53660046121a4565b610ba7565b60008061050683610be1565b8054909150610100900460ff1615610522575460ff1692915050565b61052b83610c1a565b9392505050565b61053d8a8a33610d90565b61054f8a8a8a8a8a8a8a8a8a8a610dd5565b50505050505050505050565b60006002600054036105b45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000556105c38686610df1565b60006105cf8787610e22565b90508034101561061a5760405162461bcd60e51b815260206004820152601660248201527526b4b7103b30b63ab2903a379036b4b73a103932b89760511b60448201526064016105ab565b61062687878787610e92565b61066a5760405162461bcd60e51b81526020600482015260156024820152744f6e6c7920616c6c6f776c6973746564204e46547360581b60448201526064016105ab565b336001600160a01b0384161561077257604051631574d39f60e31b81523360048201526001600160a01b0385811660248301528881166044830152606482018790526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aba69cf890608401602060405180830381865afa1580156106fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071e919061243c565b90508061076d5760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642064656c65676174652d7661756c742070616972696e67000060448201526064016105ab565b849150505b604051630ea5613f60e01b81526004810189905287906000906001600160a01b03831690630ea5613f9060240160c060405180830381865afa1580156107bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e09190612457565b5050505050905060006107f38989610ee2565b90506108008b8b83610f4e565b600061080c8c8461105a565b90506108198b8284611074565b6040516117cd60e21b81526001600160a01b038e81166004830152602482018e90528c8116604483015286811660648301527f00000000000000000000000000000000000000000000000000000000000000001690615f34906084016020604051808303816000875af1158015610894573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b891906124b6565b96506108c58b8884611151565b50506108d1858a6111be565b60405163a47d29cb60e01b8152600481018b90526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa158015610919573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093d91906124cf565b90506000336001600160a01b038316146109575784610959565b8c5b90506109668a8a83611223565b50506109738a858b6112e6565b5050505060016000559695505050505050565b600061099485858585611395565b95945050505050565b600061099485858585610e92565b60006109b783836113d4565b90505b92915050565b6109cb838333610d90565b6109df8383836001600160f81b03166113f4565b6109e98383611453565b156109f8576109f88383610b27565b505050565b60006109943386868686600061055b565b60006109b78383611486565b610a25868633610d90565b610a338686868686866114a1565b505050505050565b6040805180820190915260008082526020820152610a5983836115bd565b60408051808201909152905460ff811615158252610100900462ffffff1660208201529392505050565b6040805180820190915260008082526020820152610aa18383611608565b6040805180820190915290546001600160f81b0381168252600160f81b900460ff16151560208201529392505050565b6000610ae28686868686600061055b565b9695505050505050565b610af7828233610d90565b610b01828261162f565b5050565b610b10838333610d90565b6109f88383836116d1565b60006109b783836117a7565b610b32828233610d90565b610b0182826117c0565b6000806060600080610b4e8787611608565b5460408051808201909152600381526208aa8960eb1b602082015260ff600160f81b830416996001600160f81b0390921698509650600095509350505050565b610b99868633610d90565b610a33868686868686611847565b6000610bb38585611950565b6001600160a01b038416600090815260209182526040808220858352909252205460ff169050949350505050565b6001600160a01b031660009081527f69f22dd730b53ff235fa96b4306a31bef5dad48fe4bac28b1ceebbce14401b396020526040902090565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03861690610c7c9085906124ec565b600060405180830381855afa9150503d8060008114610cb7576040519150601f19603f3d011682016040523d82523d6000602084013e610cbc565b606091505b509150915081610d1c5760405162461bcd60e51b815260206004820152602560248201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604482015264185a5b195960da1b60648201526084016105ab565b805160c0819003610d335750600095945050505050565b8061010003610d485750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c6974206279746573000060448201526064016105ab565b610d9b838383611978565b6109f85760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b60448201526064016105ab565b610de38a8a8a8a8a8a6114a1565b61054f8a8a86868686611847565b6000610dfd83836115bd565b805490915060ff16156109f85760405162461bcd60e51b81526004016105ab90612508565b600080610e2f8484611608565b8054909150600160f81b900460ff16610e815760405162461bcd60e51b8152602060048201526014602482015273141c9a58d9481b9bdd0818dbdb999a59dd5c995960621b60448201526064016105ab565b546001600160f81b03169392505050565b600080610e9f8686611950565b90506000610eb0620f42408561254f565b6001600160a01b038616600090815260209384526040808220928252919093529091205460ff16915050949350505050565b604051634d01727d60e11b8152600481018290526000906001600160a01b03841690639a02e4fa90602401602060405180830381865afa158015610f2a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b79190612571565b6000610f5a8484611a01565b90506001600160a01b03198216610fae5760405162461bcd60e51b81526020600482015260186024820152774f6e6c79206e6f6e2d7a65726f206861736820736565647360401b60448201526064016105ab565b805462ffffff16600081815260018301602090815260408083206001600160a01b03198716845290915290205460ff16156110225760405162461bcd60e51b815260206004820152601460248201527314185b995b08185b1c9958591e481b5a5b9d195960621b60448201526064016105ab565b60009081526001918201602090815260408083206001600160a01b0319909516835293905291909120805460ff191690911790555050565b60008161106a620f42408561258e565b6109b791906125a5565b826001600160a01b03166336c7c12c6040518163ffffffff1660e01b81526004016020604051808303816000875af11580156110b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d891906124cf565b60405163dddceed160e01b81526001600160a01b038581166004830152602482018590526001600160a01b031984166044830152919091169063dddceed190606401600060405180830381600087803b15801561113457600080fd5b505af1158015611148573d6000803e3d6000fd5b50505050505050565b600061115d8484610ee2565b90506001600160a01b0319808216908316146111b85760405162461bcd60e51b815260206004820152601a602482015279155b995e1c1958dd1959081d1bdad95b881a185cda081cd9595960321b60448201526064016105ab565b50505050565b620f4240820460006111d082846115bd565b8054909150620f4240850660010190610100900462ffffff16808211156112095760405162461bcd60e51b81526004016105ab90612508565b808203610a3357825460ff19166001178355505050505050565b6040516331a9108f60e11b8152600481018390526000906001600160a01b03851690636352211e90602401602060405180830381865afa15801561126b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128f91906124cf565b9050816001600160a01b0316816001600160a01b0316146111b85760405162461bcd60e51b815260206004820152601160248201527013db9b1e481bdddb995c881bd988139195607a1b60448201526064016105ab565b34156109f85760006112f883346125b8565b9050801561138a57604051600090339083908381818185875af1925050503d8060008114611342576040519150601f19603f3d011682016040523d82523d6000602084013e611347565b606091505b50509050806113885760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b60448201526064016105ab565b505b6111b8848484611a29565b6000806113a28686611a01565b6000948552600101602090815260408086206001600160a01b0319959095168652939052505090205460ff1692915050565b6000806113e184846115bd565b54610100900462ffffff16949350505050565b60006114008484611608565b600160f81b6001600160f81b03841617815560405190915082906001600160a01b0385169086907f98e99eae7ab1c56b5b882e049df69b522affbaa1a93afd3be411447a1606027890600090a450505050565b60008061146084846115bd565b8054909150610100900462ffffff1615801561147e5750805460ff16155b949350505050565b6000806114938484611a01565b5462ffffff16949350505050565b8281146114c05760405162461bcd60e51b81526004016105ab906125cb565b60006114cc8787611950565b90508360005b8181101561156a5760018360008989858181106114f1576114f161260c565b90506020020160208101906115069190611f8c565b6001600160a01b03166001600160a01b03168152602001908152602001600020600087878581811061153a5761153a61260c565b60209081029290920135835250810191909152604001600020805460ff19169115159190911790556001016114d2565b50866001600160a01b0316887fe4e108abe1d65a55b2c49a1586fb2afa6c3d79732947e37f71a6c23a5b08ff82888888886040516115ab9493929190612622565b60405180910390a35050505050505050565b60007f73e3af67f35f30fb72bbaaf6cc07b987364ed643c93ba201702e213464e877ee5b6001600160a01b039290921660009081526020928352604080822094825293909252502090565b60007efc986db700c71340c673de619c46ee721167fc4ea17804bb535c4c196aa7d76115e1565b600061163b8383611a01565b805490915081906000906116539062ffffff166126a0565b82546101009290920a62ffffff8181021990931691831602179091558154604080516f1c1bdb1e5c1d1e58da14185b995b125960821b81529190921660208201526001600160a01b0384169185917f1809fd1f08e6b0df08fd848757688435a0ab8520a51dcca23eba5a3c7f7280d6910160405180910390a3505050565b6000806116de8585611bea565b91509150808362ffffff1611156117075760405162461bcd60e51b81526004016105ab906126c2565b818362ffffff16101561172c5760405162461bcd60e51b81526004016105ab906126c2565b600061173886866115bd565b805462ffffff861685811463ffffffff19909216610100820260ff1916179190911782556040519081529091506001600160a01b0386169087907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e2379060200160405180910390a3505050505050565b6000806117b484846115bd565b5460ff16949350505050565b6000806117cd8484611bea565b9150915060006117dd85856115bd565b805484841463ffffffff1990911661010062ffffff86160260ff1916171781556040518381529091506001600160a01b0385169086907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e2379060200160405180910390a35050505050565b8281146118665760405162461bcd60e51b81526004016105ab906125cb565b60006118728787611950565b90508360005b8181101561190f57600083818989858181106118965761189661260c565b90506020020160208101906118ab9190611f8c565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008787858181106118df576118df61260c565b60209081029290920135835250810191909152604001600020805460ff1916911515919091179055600101611878565b50866001600160a01b0316887f5728c49515724a90b87298ccfb6a8868ff0bfddf7e4fe298cea807dd815ced09888888886040516115ab9493929190612622565b60007f7805f013cae363c49df6acca2dcd8a8f0bd9005c2f87b85d8dbbce9098e4afd76115e1565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa1580156119c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e491906124cf565b6001600160a01b0316826001600160a01b03161490509392505050565b60007f56e45510048a51061054136e0136e5e31c79dc3b9d86e34df4ba37ce2773996d6115e1565b81600003611a3657505050565b6000611a4182611c68565b90506000806000806000806000808815611adf57604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440161010060405180830381865afa158015611aa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac691906126f3565b969e50949c50929a509098509650945092509050611b5f565b604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440160c060405180830381865afa158015611b2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4f919061277b565b949c50929a509096509450925090505b8a8285611b6c898c6125a5565b611b7691906125a5565b611b8091906125a5565b14611bcc5760405162461bcd60e51b815260206004820152601c60248201527b496e76616c696420726576656e75652073706c697420746f74616c7360201b60448201526064016105ab565b611bdc86868a8a88888888611cb6565b505050505050505050505050565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b03841690630ea5613f9060240160c060405180830381865afa158015611c34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c589190612457565b5093989297509195505050505050565b600080611c7483610be1565b8054909150610100900460ff1615611c90575460ff1692915050565b6000611c9b84610c1a565b825481151561ffff1990911617610100179092555092915050565b8715611d61576000876001600160a01b03168960405160006040518083038185875af1925050503d8060008114611d09576040519150601f19603f3d011682016040523d82523d6000602084013e611d0e565b606091505b5050905080611d5f5760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c656460448201526064016105ab565b505b8515611e0c576000856001600160a01b03168760405160006040518083038185875af1925050503d8060008114611db4576040519150601f19603f3d011682016040523d82523d6000602084013e611db9565b606091505b5050905080611e0a5760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c6564000060448201526064016105ab565b505b8315611eaf576000836001600160a01b03168560405160006040518083038185875af1925050503d8060008114611e5f576040519150601f19603f3d011682016040523d82523d6000602084013e611e64565b606091505b5050905080611ead5760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b60448201526064016105ab565b505b8115611f5a576000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114611f02576040519150601f19603f3d011682016040523d82523d6000602084013e611f07565b606091505b5050905080611f585760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c65640060448201526064016105ab565b505b5050505050505050565b6001600160a01b0381168114611f7957600080fd5b50565b8035611f8781611f64565b919050565b600060208284031215611f9e57600080fd5b813561052b81611f64565b60008083601f840112611fbb57600080fd5b5081356001600160401b03811115611fd257600080fd5b6020830191508360208260051b8501011115611fed57600080fd5b9250929050565b60008060008060008060008060008060c08b8d03121561201357600080fd5b8a35995061202360208c01611f7c565b985060408b01356001600160401b038082111561203f57600080fd5b61204b8e838f01611fa9565b909a50985060608d013591508082111561206457600080fd5b6120708e838f01611fa9565b909850965060808d013591508082111561208957600080fd5b6120958e838f01611fa9565b909650945060a08d01359150808211156120ae57600080fd5b506120bb8d828e01611fa9565b915080935050809150509295989b9194979a5092959850565b60008060008060008060c087890312156120ed57600080fd5b86356120f881611f64565b955060208701359450604087013561210f81611f64565b9350606087013561211f81611f64565b92506080870135915060a087013561213681611f64565b809150509295509295509295565b6001600160a01b031981168114611f7957600080fd5b6000806000806080858703121561217057600080fd5b84359350602085013561218281611f64565b925060408501359150606085013561219981612144565b939692955090935050565b600080600080608085870312156121ba57600080fd5b8435935060208501356121cc81611f64565b925060408501356121dc81611f64565b9396929550929360600135925050565b600080604083850312156121ff57600080fd5b82359150602083013561221181611f64565b809150509250929050565b60008060006060848603121561223157600080fd5b83359250602084013561224381611f64565b915060408401356001600160f81b038116811461225f57600080fd5b809150509250925092565b6000806000806000806080878903121561228357600080fd5b86359550602087013561229581611f64565b945060408701356001600160401b03808211156122b157600080fd5b6122bd8a838b01611fa9565b909650945060608901359150808211156122d657600080fd5b506122e389828a01611fa9565b979a9699509497509295939492505050565b600080600080600060a0868803121561230d57600080fd5b853561231881611f64565b945060208601359350604086013561232f81611f64565b9250606086013561233f81611f64565b949793965091946080013592915050565b60008060006060848603121561236557600080fd5b83359250602084013561237781611f64565b9150604084013562ffffff8116811461225f57600080fd5b60005b838110156123aa578181015183820152602001612392565b50506000910152565b600081518084526123cb81602086016020860161238f565b601f01601f19169290920160200192915050565b6020815260006109b760208301846123b3565b841515815283602082015260806040820152600061241360808301856123b3565b905060018060a01b038316606083015295945050505050565b80518015158114611f8757600080fd5b60006020828403121561244e57600080fd5b6109b78261242c565b60008060008060008060c0878903121561247057600080fd5b86519550602087015194506124876040880161242c565b93506124956060880161242c565b9250608087015191506124aa60a0880161242c565b90509295509295509295565b6000602082840312156124c857600080fd5b5051919050565b6000602082840312156124e157600080fd5b815161052b81611f64565b600082516124fe81846020870161238f565b9190910192915050565b60208082526017908201527613585e081a5b9d9bd8d85d1a5bdb9cc81c995858da1959604a1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008261256c57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561258357600080fd5b815161052b81612144565b80820281158282048414176109ba576109ba612539565b808201808211156109ba576109ba612539565b818103818111156109ba576109ba612539565b60208082526021908201527f546f6b656e486f6c6465724c69623a20617272617973206e6571206c656e67746040820152600d60fb1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6040808252810184905260008560608301825b8781101561266557823561264881611f64565b6001600160a01b0316825260209283019290910190600101612635565b5083810360208501528481526001600160fb1b0385111561268557600080fd5b8460051b915081866020830137016020019695505050505050565b600062ffffff8083168181036126b8576126b8612539565b6001019392505050565b602080825260179082015276496e76616c6964206d617820696e766f636174696f6e7360481b604082015260600190565b600080600080600080600080610100898b03121561271057600080fd5b88519750602089015161272281611f64565b60408a015160608b0151919850965061273a81611f64565b60808a015160a08b0151919650945061275281611f64565b60c08a015160e08b0151919450925061276a81611f64565b809150509295985092959890939650565b60008060008060008060c0878903121561279457600080fd5b8651955060208701516127a681611f64565b6040880151606089015191965094506127be81611f64565b608088015160a0890151919450925061213681611f6456fea264697066735822122049a0f6776cce106c8764e5c7f0a40a983c6cc4e9d28b95d4a9c3b4dcbb0fcfaa64736f6c63430008130033",
673
+ "deployedBytecode": "0x60806040526004361061011b5760003560e01c806301000da7146101205780630c49ef311461015557806319d29d7e1461017757806333c91bdb1461019857806339b87cf8146101b85780634869f3df146101d85780637e947f24146101f85780637fbbc005146102185780637ffb2eb81461022b5780638a605b511461024b5780639a94488a1461026b5780639b24c3c0146102ad5780639d923dff146102f3578063a03f599714610306578063b000e33414610326578063bf5bf5f814610346578063cce7c90914610392578063d3ddabe6146103b2578063d9bffbce146103f1578063d9eb16db14610411578063dd85582f14610441578063e9d1e8ac14610475578063f7f5e9d0146104ba578063fca23f4e146104da575b600080fd5b34801561012c57600080fd5b5061014061013b366004611f8c565b6104fa565b60405190151581526020015b60405180910390f35b34801561016157600080fd5b50610175610170366004611ff4565b610532565b005b61018a6101853660046120d4565b61055b565b60405190815260200161014c565b3480156101a457600080fd5b506101406101b336600461215a565b610986565b3480156101c457600080fd5b506101406101d33660046121a4565b61099d565b3480156101e457600080fd5b5061018a6101f33660046121ec565b6109ab565b34801561020457600080fd5b5061017561021336600461221c565b6109c0565b61018a6102263660046121a4565b6109fd565b34801561023757600080fd5b5061018a6102463660046121ec565b610a0e565b34801561025757600080fd5b5061017561026636600461226a565b610a1a565b34801561027757600080fd5b5061028b6102863660046121ec565b610a3b565b6040805182511515815260209283015162ffffff16928101929092520161014c565b3480156102b957600080fd5b506102cd6102c83660046121ec565b610a83565b6040805182516001600160f81b031681526020928301511515928101929092520161014c565b61018a6103013660046122f5565b610ad1565b34801561031257600080fd5b506101756103213660046121ec565b610aec565b34801561033257600080fd5b50610175610341366004612350565b610b05565b34801561035257600080fd5b5061037a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161014c565b34801561039e57600080fd5b506101406103ad3660046121ec565b610b1b565b3480156103be57600080fd5b506103e460405180604001604052806006815260200165076352e302e360d41b81525081565b60405161014c91906123df565b3480156103fd57600080fd5b5061017561040c3660046121ec565b610b27565b34801561041d57600080fd5b5061043161042c3660046121ec565b610b3c565b60405161014c94939291906123f2565b34801561044d57600080fd5b5061037a7f000000000000000000000000000000000000000000000000000000000000000081565b34801561048157600080fd5b506103e4604051806040016040528060198152602001784d696e7465725365745072696365506f6c797074796368563560381b81525081565b3480156104c657600080fd5b506101756104d536600461226a565b610b8e565b3480156104e657600080fd5b506101406104f53660046121a4565b610ba7565b60008061050683610be1565b8054909150610100900460ff1615610522575460ff1692915050565b61052b83610c1a565b9392505050565b61053d8a8a33610d90565b61054f8a8a8a8a8a8a8a8a8a8a610dd5565b50505050505050505050565b60006002600054036105b45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000556105c38686610df1565b60006105cf8787610e22565b90508034101561061a5760405162461bcd60e51b815260206004820152601660248201527526b4b7103b30b63ab2903a379036b4b73a103932b89760511b60448201526064016105ab565b61062687878787610e92565b61066a5760405162461bcd60e51b81526020600482015260156024820152744f6e6c7920616c6c6f776c6973746564204e46547360581b60448201526064016105ab565b336001600160a01b0384161561077257604051631574d39f60e31b81523360048201526001600160a01b0385811660248301528881166044830152606482018790526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aba69cf890608401602060405180830381865afa1580156106fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071e919061243c565b90508061076d5760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642064656c65676174652d7661756c742070616972696e67000060448201526064016105ab565b849150505b604051630ea5613f60e01b81526004810189905287906000906001600160a01b03831690630ea5613f9060240160c060405180830381865afa1580156107bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e09190612457565b5050505050905060006107f38989610ee2565b90506108008b8b83610f4e565b600061080c8c8461105a565b90506108198b8284611074565b6040516117cd60e21b81526001600160a01b038e81166004830152602482018e90528c8116604483015286811660648301527f00000000000000000000000000000000000000000000000000000000000000001690615f34906084016020604051808303816000875af1158015610894573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b891906124b6565b96506108c58b8884611151565b50506108d1858a6111be565b60405163a47d29cb60e01b8152600481018b90526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa158015610919573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093d91906124cf565b90506000336001600160a01b038316146109575784610959565b8c5b90506109668a8a83611223565b50506109738a858b6112e6565b5050505060016000559695505050505050565b600061099485858585611395565b95945050505050565b600061099485858585610e92565b60006109b783836113d4565b90505b92915050565b6109cb838333610d90565b6109df8383836001600160f81b03166113f4565b6109e98383611453565b156109f8576109f88383610b27565b505050565b60006109943386868686600061055b565b60006109b78383611486565b610a25868633610d90565b610a338686868686866114a1565b505050505050565b6040805180820190915260008082526020820152610a5983836115bd565b60408051808201909152905460ff811615158252610100900462ffffff1660208201529392505050565b6040805180820190915260008082526020820152610aa18383611608565b6040805180820190915290546001600160f81b0381168252600160f81b900460ff16151560208201529392505050565b6000610ae28686868686600061055b565b9695505050505050565b610af7828233610d90565b610b01828261162f565b5050565b610b10838333610d90565b6109f88383836116d1565b60006109b783836117a7565b610b32828233610d90565b610b0182826117c0565b6000806060600080610b4e8787611608565b5460408051808201909152600381526208aa8960eb1b602082015260ff600160f81b830416996001600160f81b0390921698509650600095509350505050565b610b99868633610d90565b610a33868686868686611847565b6000610bb38585611950565b6001600160a01b038416600090815260209182526040808220858352909252205460ff169050949350505050565b6001600160a01b031660009081527f69f22dd730b53ff235fa96b4306a31bef5dad48fe4bac28b1ceebbce14401b396020526040902090565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03861690610c7c9085906124ec565b600060405180830381855afa9150503d8060008114610cb7576040519150601f19603f3d011682016040523d82523d6000602084013e610cbc565b606091505b509150915081610d1c5760405162461bcd60e51b815260206004820152602560248201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604482015264185a5b195960da1b60648201526084016105ab565b805160c0819003610d335750600095945050505050565b8061010003610d485750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c6974206279746573000060448201526064016105ab565b610d9b838383611978565b6109f85760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b60448201526064016105ab565b610de38a8a8a8a8a8a6114a1565b61054f8a8a86868686611847565b6000610dfd83836115bd565b805490915060ff16156109f85760405162461bcd60e51b81526004016105ab90612508565b600080610e2f8484611608565b8054909150600160f81b900460ff16610e815760405162461bcd60e51b8152602060048201526014602482015273141c9a58d9481b9bdd0818dbdb999a59dd5c995960621b60448201526064016105ab565b546001600160f81b03169392505050565b600080610e9f8686611950565b90506000610eb0620f42408561254f565b6001600160a01b038616600090815260209384526040808220928252919093529091205460ff16915050949350505050565b604051634d01727d60e11b8152600481018290526000906001600160a01b03841690639a02e4fa90602401602060405180830381865afa158015610f2a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b79190612571565b6000610f5a8484611a01565b90506001600160a01b03198216610fae5760405162461bcd60e51b81526020600482015260186024820152774f6e6c79206e6f6e2d7a65726f206861736820736565647360401b60448201526064016105ab565b805462ffffff16600081815260018301602090815260408083206001600160a01b03198716845290915290205460ff16156110225760405162461bcd60e51b815260206004820152601460248201527314185b995b08185b1c9958591e481b5a5b9d195960621b60448201526064016105ab565b60009081526001918201602090815260408083206001600160a01b0319909516835293905291909120805460ff191690911790555050565b60008161106a620f42408561258e565b6109b791906125a5565b826001600160a01b03166336c7c12c6040518163ffffffff1660e01b81526004016020604051808303816000875af11580156110b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d891906124cf565b60405163dddceed160e01b81526001600160a01b038581166004830152602482018590526001600160a01b031984166044830152919091169063dddceed190606401600060405180830381600087803b15801561113457600080fd5b505af1158015611148573d6000803e3d6000fd5b50505050505050565b600061115d8484610ee2565b90506001600160a01b0319808216908316146111b85760405162461bcd60e51b815260206004820152601a602482015279155b995e1c1958dd1959081d1bdad95b881a185cda081cd9595960321b60448201526064016105ab565b50505050565b620f4240820460006111d082846115bd565b8054909150620f4240850660010190610100900462ffffff16808211156112095760405162461bcd60e51b81526004016105ab90612508565b808203610a3357825460ff19166001178355505050505050565b6040516331a9108f60e11b8152600481018390526000906001600160a01b03851690636352211e90602401602060405180830381865afa15801561126b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128f91906124cf565b9050816001600160a01b0316816001600160a01b0316146111b85760405162461bcd60e51b815260206004820152601160248201527013db9b1e481bdddb995c881bd988139195607a1b60448201526064016105ab565b34156109f85760006112f883346125b8565b9050801561138a57604051600090339083908381818185875af1925050503d8060008114611342576040519150601f19603f3d011682016040523d82523d6000602084013e611347565b606091505b50509050806113885760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b60448201526064016105ab565b505b6111b8848484611a29565b6000806113a28686611a01565b6000948552600101602090815260408086206001600160a01b0319959095168652939052505090205460ff1692915050565b6000806113e184846115bd565b54610100900462ffffff16949350505050565b60006114008484611608565b600160f81b6001600160f81b03841617815560405190915082906001600160a01b0385169086907f98e99eae7ab1c56b5b882e049df69b522affbaa1a93afd3be411447a1606027890600090a450505050565b60008061146084846115bd565b8054909150610100900462ffffff1615801561147e5750805460ff16155b949350505050565b6000806114938484611a01565b5462ffffff16949350505050565b8281146114c05760405162461bcd60e51b81526004016105ab906125cb565b60006114cc8787611950565b90508360005b8181101561156a5760018360008989858181106114f1576114f161260c565b90506020020160208101906115069190611f8c565b6001600160a01b03166001600160a01b03168152602001908152602001600020600087878581811061153a5761153a61260c565b60209081029290920135835250810191909152604001600020805460ff19169115159190911790556001016114d2565b50866001600160a01b0316887fe4e108abe1d65a55b2c49a1586fb2afa6c3d79732947e37f71a6c23a5b08ff82888888886040516115ab9493929190612622565b60405180910390a35050505050505050565b60007f73e3af67f35f30fb72bbaaf6cc07b987364ed643c93ba201702e213464e877ee5b6001600160a01b039290921660009081526020928352604080822094825293909252502090565b60007efc986db700c71340c673de619c46ee721167fc4ea17804bb535c4c196aa7d76115e1565b600061163b8383611a01565b805490915081906000906116539062ffffff166126a0565b82546101009290920a62ffffff8181021990931691831602179091558154604080516f1c1bdb1e5c1d1e58da14185b995b125960821b81529190921660208201526001600160a01b0384169185917f1809fd1f08e6b0df08fd848757688435a0ab8520a51dcca23eba5a3c7f7280d6910160405180910390a3505050565b6000806116de8585611bea565b91509150808362ffffff1611156117075760405162461bcd60e51b81526004016105ab906126c2565b818362ffffff16101561172c5760405162461bcd60e51b81526004016105ab906126c2565b600061173886866115bd565b805462ffffff861685811463ffffffff19909216610100820260ff1916179190911782556040519081529091506001600160a01b0386169087907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e2379060200160405180910390a3505050505050565b6000806117b484846115bd565b5460ff16949350505050565b6000806117cd8484611bea565b9150915060006117dd85856115bd565b805484841463ffffffff1990911661010062ffffff86160260ff1916171781556040518381529091506001600160a01b0385169086907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e2379060200160405180910390a35050505050565b8281146118665760405162461bcd60e51b81526004016105ab906125cb565b60006118728787611950565b90508360005b8181101561190f57600083818989858181106118965761189661260c565b90506020020160208101906118ab9190611f8c565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008787858181106118df576118df61260c565b60209081029290920135835250810191909152604001600020805460ff1916911515919091179055600101611878565b50866001600160a01b0316887f5728c49515724a90b87298ccfb6a8868ff0bfddf7e4fe298cea807dd815ced09888888886040516115ab9493929190612622565b60007f7805f013cae363c49df6acca2dcd8a8f0bd9005c2f87b85d8dbbce9098e4afd76115e1565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa1580156119c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e491906124cf565b6001600160a01b0316826001600160a01b03161490509392505050565b60007f56e45510048a51061054136e0136e5e31c79dc3b9d86e34df4ba37ce2773996d6115e1565b81600003611a3657505050565b6000611a4182611c68565b90506000806000806000806000808815611adf57604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440161010060405180830381865afa158015611aa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac691906126f3565b969e50949c50929a509098509650945092509050611b5f565b604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440160c060405180830381865afa158015611b2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4f919061277b565b949c50929a509096509450925090505b8a8285611b6c898c6125a5565b611b7691906125a5565b611b8091906125a5565b14611bcc5760405162461bcd60e51b815260206004820152601c60248201527b496e76616c696420726576656e75652073706c697420746f74616c7360201b60448201526064016105ab565b611bdc86868a8a88888888611cb6565b505050505050505050505050565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b03841690630ea5613f9060240160c060405180830381865afa158015611c34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c589190612457565b5093989297509195505050505050565b600080611c7483610be1565b8054909150610100900460ff1615611c90575460ff1692915050565b6000611c9b84610c1a565b825481151561ffff1990911617610100179092555092915050565b8715611d61576000876001600160a01b03168960405160006040518083038185875af1925050503d8060008114611d09576040519150601f19603f3d011682016040523d82523d6000602084013e611d0e565b606091505b5050905080611d5f5760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c656460448201526064016105ab565b505b8515611e0c576000856001600160a01b03168760405160006040518083038185875af1925050503d8060008114611db4576040519150601f19603f3d011682016040523d82523d6000602084013e611db9565b606091505b5050905080611e0a5760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c6564000060448201526064016105ab565b505b8315611eaf576000836001600160a01b03168560405160006040518083038185875af1925050503d8060008114611e5f576040519150601f19603f3d011682016040523d82523d6000602084013e611e64565b606091505b5050905080611ead5760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b60448201526064016105ab565b505b8115611f5a576000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114611f02576040519150601f19603f3d011682016040523d82523d6000602084013e611f07565b606091505b5050905080611f585760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c65640060448201526064016105ab565b505b5050505050505050565b6001600160a01b0381168114611f7957600080fd5b50565b8035611f8781611f64565b919050565b600060208284031215611f9e57600080fd5b813561052b81611f64565b60008083601f840112611fbb57600080fd5b5081356001600160401b03811115611fd257600080fd5b6020830191508360208260051b8501011115611fed57600080fd5b9250929050565b60008060008060008060008060008060c08b8d03121561201357600080fd5b8a35995061202360208c01611f7c565b985060408b01356001600160401b038082111561203f57600080fd5b61204b8e838f01611fa9565b909a50985060608d013591508082111561206457600080fd5b6120708e838f01611fa9565b909850965060808d013591508082111561208957600080fd5b6120958e838f01611fa9565b909650945060a08d01359150808211156120ae57600080fd5b506120bb8d828e01611fa9565b915080935050809150509295989b9194979a5092959850565b60008060008060008060c087890312156120ed57600080fd5b86356120f881611f64565b955060208701359450604087013561210f81611f64565b9350606087013561211f81611f64565b92506080870135915060a087013561213681611f64565b809150509295509295509295565b6001600160a01b031981168114611f7957600080fd5b6000806000806080858703121561217057600080fd5b84359350602085013561218281611f64565b925060408501359150606085013561219981612144565b939692955090935050565b600080600080608085870312156121ba57600080fd5b8435935060208501356121cc81611f64565b925060408501356121dc81611f64565b9396929550929360600135925050565b600080604083850312156121ff57600080fd5b82359150602083013561221181611f64565b809150509250929050565b60008060006060848603121561223157600080fd5b83359250602084013561224381611f64565b915060408401356001600160f81b038116811461225f57600080fd5b809150509250925092565b6000806000806000806080878903121561228357600080fd5b86359550602087013561229581611f64565b945060408701356001600160401b03808211156122b157600080fd5b6122bd8a838b01611fa9565b909650945060608901359150808211156122d657600080fd5b506122e389828a01611fa9565b979a9699509497509295939492505050565b600080600080600060a0868803121561230d57600080fd5b853561231881611f64565b945060208601359350604086013561232f81611f64565b9250606086013561233f81611f64565b949793965091946080013592915050565b60008060006060848603121561236557600080fd5b83359250602084013561237781611f64565b9150604084013562ffffff8116811461225f57600080fd5b60005b838110156123aa578181015183820152602001612392565b50506000910152565b600081518084526123cb81602086016020860161238f565b601f01601f19169290920160200192915050565b6020815260006109b760208301846123b3565b841515815283602082015260806040820152600061241360808301856123b3565b905060018060a01b038316606083015295945050505050565b80518015158114611f8757600080fd5b60006020828403121561244e57600080fd5b6109b78261242c565b60008060008060008060c0878903121561247057600080fd5b86519550602087015194506124876040880161242c565b93506124956060880161242c565b9250608087015191506124aa60a0880161242c565b90509295509295509295565b6000602082840312156124c857600080fd5b5051919050565b6000602082840312156124e157600080fd5b815161052b81611f64565b600082516124fe81846020870161238f565b9190910192915050565b60208082526017908201527613585e081a5b9d9bd8d85d1a5bdb9cc81c995858da1959604a1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008261256c57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561258357600080fd5b815161052b81612144565b80820281158282048414176109ba576109ba612539565b808201808211156109ba576109ba612539565b818103818111156109ba576109ba612539565b60208082526021908201527f546f6b656e486f6c6465724c69623a20617272617973206e6571206c656e67746040820152600d60fb1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6040808252810184905260008560608301825b8781101561266557823561264881611f64565b6001600160a01b0316825260209283019290910190600101612635565b5083810360208501528481526001600160fb1b0385111561268557600080fd5b8460051b915081866020830137016020019695505050505050565b600062ffffff8083168181036126b8576126b8612539565b6001019392505050565b602080825260179082015276496e76616c6964206d617820696e766f636174696f6e7360481b604082015260600190565b600080600080600080600080610100898b03121561271057600080fd5b88519750602089015161272281611f64565b60408a015160608b0151919850965061273a81611f64565b60808a015160a08b0151919650945061275281611f64565b60c08a015160e08b0151919450925061276a81611f64565b809150509295985092959890939650565b60008060008060008060c0878903121561279457600080fd5b8651955060208701516127a681611f64565b6040880151606089015191965094506127be81611f64565b608088015160a0890151919450925061213681611f6456fea264697066735822122049a0f6776cce106c8764e5c7f0a40a983c6cc4e9d28b95d4a9c3b4dcbb0fcfaa64736f6c63430008130033",
1165
674
  "linkReferences": {},
1166
675
  "deployedLinkReferences": {}
1167
676
  }