@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
  ],
@@ -666,22 +175,22 @@
666
175
  "inputs": [
667
176
  {
668
177
  "internalType": "uint256",
669
- "name": "_projectId",
178
+ "name": "projectId",
670
179
  "type": "uint256"
671
180
  },
672
181
  {
673
182
  "internalType": "address",
674
- "name": "_coreContract",
183
+ "name": "coreContract",
675
184
  "type": "address"
676
185
  },
677
186
  {
678
187
  "internalType": "address",
679
- "name": "_ownedNFTAddress",
188
+ "name": "ownedNFTAddress",
680
189
  "type": "address"
681
190
  },
682
191
  {
683
192
  "internalType": "uint256",
684
- "name": "_ownedNFTTokenId",
193
+ "name": "ownedNFTTokenId",
685
194
  "type": "uint256"
686
195
  }
687
196
  ],
@@ -700,7 +209,7 @@
700
209
  "inputs": [
701
210
  {
702
211
  "internalType": "address",
703
- "name": "_coreContract",
212
+ "name": "coreContract",
704
213
  "type": "address"
705
214
  }
706
215
  ],
@@ -719,17 +228,17 @@
719
228
  "inputs": [
720
229
  {
721
230
  "internalType": "uint256",
722
- "name": "_projectId",
231
+ "name": "projectId",
723
232
  "type": "uint256"
724
233
  },
725
234
  {
726
235
  "internalType": "address",
727
- "name": "_coreContract",
236
+ "name": "coreContract",
728
237
  "type": "address"
729
238
  },
730
239
  {
731
240
  "internalType": "uint24",
732
- "name": "_maxInvocations",
241
+ "name": "maxInvocations",
733
242
  "type": "uint24"
734
243
  }
735
244
  ],
@@ -742,12 +251,12 @@
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
  ],
@@ -817,12 +326,12 @@
817
326
  "inputs": [
818
327
  {
819
328
  "internalType": "uint256",
820
- "name": "_projectId",
329
+ "name": "projectId",
821
330
  "type": "uint256"
822
331
  },
823
332
  {
824
333
  "internalType": "address",
825
- "name": "_coreContract",
334
+ "name": "coreContract",
826
335
  "type": "address"
827
336
  }
828
337
  ],
@@ -841,12 +350,12 @@
841
350
  "inputs": [
842
351
  {
843
352
  "internalType": "uint256",
844
- "name": "_projectId",
353
+ "name": "projectId",
845
354
  "type": "uint256"
846
355
  },
847
356
  {
848
357
  "internalType": "address",
849
- "name": "_coreContract",
358
+ "name": "coreContract",
850
359
  "type": "address"
851
360
  }
852
361
  ],
@@ -865,22 +374,22 @@
865
374
  "inputs": [
866
375
  {
867
376
  "internalType": "uint256",
868
- "name": "_projectId",
377
+ "name": "projectId",
869
378
  "type": "uint256"
870
379
  },
871
380
  {
872
381
  "internalType": "address",
873
- "name": "_coreContract",
382
+ "name": "coreContract",
874
383
  "type": "address"
875
384
  },
876
385
  {
877
386
  "internalType": "address",
878
- "name": "_ownedNFTAddress",
387
+ "name": "ownedNFTAddress",
879
388
  "type": "address"
880
389
  },
881
390
  {
882
391
  "internalType": "uint256",
883
- "name": "_ownedNFTTokenId",
392
+ "name": "ownedNFTTokenId",
884
393
  "type": "uint256"
885
394
  }
886
395
  ],
@@ -899,32 +408,32 @@
899
408
  "inputs": [
900
409
  {
901
410
  "internalType": "address",
902
- "name": "_to",
411
+ "name": "to",
903
412
  "type": "address"
904
413
  },
905
414
  {
906
415
  "internalType": "uint256",
907
- "name": "_projectId",
416
+ "name": "projectId",
908
417
  "type": "uint256"
909
418
  },
910
419
  {
911
420
  "internalType": "address",
912
- "name": "_coreContract",
421
+ "name": "coreContract",
913
422
  "type": "address"
914
423
  },
915
424
  {
916
425
  "internalType": "address",
917
- "name": "_ownedNFTAddress",
426
+ "name": "ownedNFTAddress",
918
427
  "type": "address"
919
428
  },
920
429
  {
921
430
  "internalType": "uint256",
922
- "name": "_ownedNFTTokenId",
431
+ "name": "ownedNFTTokenId",
923
432
  "type": "uint256"
924
433
  },
925
434
  {
926
435
  "internalType": "address",
927
- "name": "_vault",
436
+ "name": "vault",
928
437
  "type": "address"
929
438
  }
930
439
  ],
@@ -943,27 +452,27 @@
943
452
  "inputs": [
944
453
  {
945
454
  "internalType": "address",
946
- "name": "_to",
455
+ "name": "to",
947
456
  "type": "address"
948
457
  },
949
458
  {
950
459
  "internalType": "uint256",
951
- "name": "_projectId",
460
+ "name": "projectId",
952
461
  "type": "uint256"
953
462
  },
954
463
  {
955
464
  "internalType": "address",
956
- "name": "_coreContract",
465
+ "name": "coreContract",
957
466
  "type": "address"
958
467
  },
959
468
  {
960
469
  "internalType": "address",
961
- "name": "_ownedNFTAddress",
470
+ "name": "ownedNFTAddress",
962
471
  "type": "address"
963
472
  },
964
473
  {
965
474
  "internalType": "uint256",
966
- "name": "_ownedNFTTokenId",
475
+ "name": "ownedNFTTokenId",
967
476
  "type": "uint256"
968
477
  }
969
478
  ],
@@ -982,22 +491,22 @@
982
491
  "inputs": [
983
492
  {
984
493
  "internalType": "uint256",
985
- "name": "_projectId",
494
+ "name": "projectId",
986
495
  "type": "uint256"
987
496
  },
988
497
  {
989
498
  "internalType": "address",
990
- "name": "_coreContract",
499
+ "name": "coreContract",
991
500
  "type": "address"
992
501
  },
993
502
  {
994
503
  "internalType": "address[]",
995
- "name": "_ownedNFTAddresses",
504
+ "name": "ownedNFTAddresses",
996
505
  "type": "address[]"
997
506
  },
998
507
  {
999
508
  "internalType": "uint256[]",
1000
- "name": "_ownedNFTProjectIds",
509
+ "name": "ownedNFTProjectIds",
1001
510
  "type": "uint256[]"
1002
511
  }
1003
512
  ],
@@ -1010,12 +519,12 @@
1010
519
  "inputs": [
1011
520
  {
1012
521
  "internalType": "uint256",
1013
- "name": "_projectId",
522
+ "name": "projectId",
1014
523
  "type": "uint256"
1015
524
  },
1016
525
  {
1017
526
  "internalType": "address",
1018
- "name": "_coreContract",
527
+ "name": "coreContract",
1019
528
  "type": "address"
1020
529
  }
1021
530
  ],
@@ -1025,7 +534,7 @@
1025
534
  "components": [
1026
535
  {
1027
536
  "internalType": "uint248",
1028
- "name": "pricePerTokenInWei",
537
+ "name": "pricePerToken",
1029
538
  "type": "uint248"
1030
539
  },
1031
540
  {
@@ -1046,12 +555,12 @@
1046
555
  "inputs": [
1047
556
  {
1048
557
  "internalType": "uint256",
1049
- "name": "_projectId",
558
+ "name": "projectId",
1050
559
  "type": "uint256"
1051
560
  },
1052
561
  {
1053
562
  "internalType": "address",
1054
- "name": "_coreContract",
563
+ "name": "coreContract",
1055
564
  "type": "address"
1056
565
  }
1057
566
  ],
@@ -1064,17 +573,17 @@
1064
573
  "inputs": [
1065
574
  {
1066
575
  "internalType": "uint256",
1067
- "name": "_projectId",
576
+ "name": "projectId",
1068
577
  "type": "uint256"
1069
578
  },
1070
579
  {
1071
580
  "internalType": "address",
1072
- "name": "_coreContract",
581
+ "name": "coreContract",
1073
582
  "type": "address"
1074
583
  },
1075
584
  {
1076
585
  "internalType": "uint248",
1077
- "name": "_pricePerTokenInWei",
586
+ "name": "pricePerTokenInWei",
1078
587
  "type": "uint248"
1079
588
  }
1080
589
  ],
@@ -1084,8 +593,8 @@
1084
593
  "type": "function"
1085
594
  }
1086
595
  ],
1087
- "bytecode": "0x6101006040523480156200001257600080fd5b50604051620024d6380380620024d68339810160408190526200003591620000b1565b60016000556001600160a01b03828116608081905260a052811660c081905260e08190526040519081527f836360d1b094a7de3c3eab3d1185f3a5939467c23d4a12709dbdbf8c8d7e2f3b9060200160405180910390a15050620000e9565b80516001600160a01b0381168114620000ac57600080fd5b919050565b60008060408385031215620000c557600080fd5b620000d08362000094565b9150620000e06020840162000094565b90509250929050565b60805160a05160c05160e0516123b36200012360003960006108d401526000610389015260006109c9015260006104d801526123b36000f3fe6080604052600436106100fa5760003560e01c806301000da7146100ff5780630c49ef311461013457806319d29d7e1461015657806339b87cf8146101775780634869f3df146101975780637e947f24146101b75780637fbbc005146101d75780638a605b51146101ea5780639a94488a1461020a5780639b24c3c0146102a25780639d923dff14610344578063b000e33414610357578063bf5bf5f814610377578063cce7c909146103c3578063d3ddabe6146103e3578063d9bffbce14610422578063d9eb16db14610442578063dd85582f146104c6578063e9d1e8ac146104fa578063f7f5e9d01461053c578063fca23f4e1461055c575b600080fd5b34801561010b57600080fd5b5061011f61011a366004611ad2565b6105b6565b60405190151581526020015b60405180910390f35b34801561014057600080fd5b5061015461014f366004611c27565b6105f7565b005b610169610164366004611cec565b6106c2565b60405190815260200161012b565b34801561018357600080fd5b5061011f610192366004611d5c565b610ab5565b3480156101a357600080fd5b506101696101b2366004611da4565b610aec565b3480156101c357600080fd5b506101546101d2366004611dd4565b610b24565b6101696101e5366004611d5c565b610bd4565b3480156101f657600080fd5b50610154610205366004611e22565b610be5565b34801561021657600080fd5b50610280610225366004611da4565b6040805180820190915260008082526020820152506001600160a01b031660009081526003602090815260408083209383529281529082902082518084019093525460ff811615158352610100900462ffffff169082015290565b6040805182511515815260209283015162ffffff16928101929092520161012b565b3480156102ae57600080fd5b5061031e6102bd366004611da4565b6040805180820190915260008082526020820152506001600160a01b03166000908152600160209081526040808320938352928152908290208251808401909352546001600160f81b0381168352600160f81b900460ff1615159082015290565b6040805182516001600160f81b031681526020928301511515928101929092520161012b565b610169610352366004611ea1565b610c68565b34801561036357600080fd5b50610154610372366004611efc565b610c83565b34801561038357600080fd5b506103ab7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161012b565b3480156103cf57600080fd5b5061011f6103de366004611da4565b610d0b565b3480156103ef57600080fd5b5061041560405180604001604052806006815260200165076352e302e360d41b81525081565b60405161012b9190611f8b565b34801561042e57600080fd5b5061015461043d366004611da4565b610d37565b34801561044e57600080fd5b506104b661045d366004611da4565b6001600160a01b03166000908152600160209081526040808320938352928152828220548351808501909452600384526208aa8960eb1b9184019190915260ff600160f81b820416936001600160f81b03909116929190565b60405161012b9493929190611f9e565b3480156104d257600080fd5b506103ab7f000000000000000000000000000000000000000000000000000000000000000081565b34801561050657600080fd5b50610415604051806040016040528060168152602001754d696e7465725365745072696365486f6c646572563560501b81525081565b34801561054857600080fd5b50610154610557366004611e22565b610db0565b34801561056857600080fd5b5061011f610577366004611d5c565b6001600160a01b039283166000908152600460209081526040808320968352958152858220939094168152918352838220908252909152205460ff1690565b6001600160a01b03811660009081526002602052604081208054610100900460ff16156105e7575460ff1692915050565b6105f083610e25565b9392505050565b610602868633610f5d565b6001600160a01b038516600090815260046020908152604080832089845290915290206106329085858585610fa7565b846001600160a01b0316867fe4e108abe1d65a55b2c49a1586fb2afa6c3d79732947e37f71a6c23a5b08ff82868660405161066e929190611fd8565b60405180910390a3846001600160a01b0316867f5728c49515724a90b87298ccfb6a8868ff0bfddf7e4fe298cea807dd815ced0984846040516106b2929190611fd8565b60405180910390a3505050505050565b600060026000540361071b5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b600260009081556001600160a01b0386168082526001602090815260408084208a85528252808420928452600382528084208a8552909152909120805460ff16156107785760405162461bcd60e51b81526004016107129061205c565b8154600160f81b900460ff166107c75760405162461bcd60e51b8152602060048201526014602482015273141c9a58d9481b9bdd0818dbdb999a59dd5c995960621b6044820152606401610712565b81546001600160f81b03163481111561081b5760405162461bcd60e51b815260206004820152601660248201527526b4b7103b30b63ab2903a379036b4b73a103932b89760511b6044820152606401610712565b6001600160a01b03881660009081526004602090815260408083208c84529091529020610849908888610fbd565b61088d5760405162461bcd60e51b81526020600482015260156024820152744f6e6c7920616c6c6f776c6973746564204e46547360581b6044820152606401610712565b336001600160a01b0386161561099557604051631574d39f60e31b81523360048201526001600160a01b0387811660248301528a81166044830152606482018990526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aba69cf890608401602060405180830381865afa15801561091d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610941919061209d565b9050806109905760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642064656c65676174652d7661756c742070616972696e6700006044820152606401610712565b869150505b6040516117cd60e21b81526001600160a01b038c81166004830152602482018c90528a8116604483015282811660648301527f00000000000000000000000000000000000000000000000000000000000000001690615f34906084016020604051808303816000875af1158015610a10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3491906120b8565b6001600160a01b038a1660009081526003602090815260408083208e84529091529020909550610a65908690610ffb565b610a7088888361104a565b6001600160a01b0389166000908152600260205260408120610a93908b9061110d565b9050610aa18b848c8461113f565b505050505060016000559695505050505050565b6001600160a01b03831660009081526004602090815260408083208784529091528120610ae3908484610fbd565b95945050505050565b6001600160a01b0381166000908152600360209081526040808320858452909152812054610100900462ffffff165b90505b92915050565b610b2f838333610f5d565b6001600160a01b03821660008181526001602090815260408083208784529091528082206001600160f81b038516600160f81b8117825591519093919287917f37a132f63521ff11fed0c526f0f30824337316bb2b71fcfc0b6f3cf631595b5f9190a46001600160a01b03831660009081526003602090815260408083208784529091529020610bbe816111f6565b15610bcd57610bcd8585610d37565b5050505050565b6000610ae3338686868660006106c2565b610bf0848433610f5d565b6001600160a01b03831660009081526004602090815260408083208784529091529020610c1e908383611216565b826001600160a01b0316847fe4e108abe1d65a55b2c49a1586fb2afa6c3d79732947e37f71a6c23a5b08ff828484604051610c5a929190611fd8565b60405180910390a350505050565b6000610c79868686868660006106c2565b9695505050505050565b610c8e838333610f5d565b6001600160a01b03821660009081526003602090815260408083208684529091529020610cc0908490849084906112d9565b60405162ffffff821681526001600160a01b0383169084907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e237906020015b60405180910390a3505050565b6001600160a01b038116600090815260036020908152604080832085845290915281205460ff16610b1b565b610d42828233610f5d565b6001600160a01b03811660009081526003602090815260408083208584529091528120610d729084908490611360565b9050816001600160a01b0316837f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e23783604051610cfe91815260200190565b610dbb848433610f5d565b6001600160a01b03831660009081526004602090815260408083208784529091529020610de9908383611405565b826001600160a01b0316847f5728c49515724a90b87298ccfb6a8868ff0bfddf7e4fe298cea807dd815ced098484604051610c5a929190611fd8565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03861690610e879085906120d1565b600060405180830381855afa9150503d8060008114610ec2576040519150601f19603f3d011682016040523d82523d6000602084013e610ec7565b606091505b509150915081610ee95760405162461bcd60e51b8152600401610712906120ed565b805160c0819003610f005750600095945050505050565b8061010003610f155750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c697420627974657300006044820152606401610712565b610f688383836114c8565b610fa25760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b6044820152606401610712565b505050565b610fb2858585611216565b610bcd858383611405565b600080610fcd620f424084612148565b6001600160a01b038516600090815260208781526040808320938352929052205460ff169150509392505050565b8054620f4240830660010190610100900462ffffff16808211156110315760405162461bcd60e51b81526004016107129061205c565b80820361104457825460ff191660011783555b50505050565b6040516331a9108f60e11b8152600481018390526000906001600160a01b03851690636352211e90602401602060405180830381865afa158015611092573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b6919061216a565b9050816001600160a01b0316816001600160a01b0316146110445760405162461bcd60e51b815260206004820152601160248201527013db9b1e481bdddb995c881bd988139195607a1b6044820152606401610712565b8054600090610100900460ff161561112a5750805460ff16610b1e565b60006111368484611551565b9150610b1e9050565b3415611044576000806111528534612187565b905080156111e25760405133908290600081818185875af1925050503d806000811461119a576040519150601f19603f3d011682016040523d82523d6000602084013e61119f565b606091505b505080925050816111e25760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b6044820152606401610712565b6111ee86868686611661565b505050505050565b8054600090610100900462ffffff16158015610b1e5750505460ff161590565b80518251146112375760405162461bcd60e51b81526004016107129061219a565b60005b825181101561104457600184600001600085848151811061125d5761125d6121db565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000848481518110611299576112996121db565b6020026020010151815260200190815260200160002060006101000a81548160ff02191690831515021790555080806112d1906121f1565b91505061123a565b6000806112e68686611a2c565b91509150808462ffffff16111561130f5760405162461bcd60e51b81526004016107129061220a565b818462ffffff1610156113345760405162461bcd60e51b81526004016107129061220a565b50815460ff1962ffffff90941661010081029490941663ffffffff199091161792149190911790555050565b6000806000846001600160a01b0316630ea5613f876040518263ffffffff1660e01b815260040161139391815260200190565b60c060405180830381865afa1580156113b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d4919061223b565b5050875493831463ffffffff1990941661010062ffffff85160260ff19161793909317909655979650505050505050565b80518251146114265760405162461bcd60e51b81526004016107129061219a565b60005b825181101561104457600084600001600085848151811061144c5761144c6121db565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000848481518110611488576114886121db565b6020026020010151815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114c0906121f1565b915050611429565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa158015611510573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611534919061216a565b6001600160a01b0316826001600160a01b03161490509392505050565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b038716906115b39085906120d1565b6000604051808303816000865af19150503d80600081146115f0576040519150601f19603f3d011682016040523d82523d6000602084013e6115f5565b606091505b5091509150816116175760405162461bcd60e51b8152600401610712906120ed565b805160c081900361163d575050835461ffff19166101001784555060009150610b1e9050565b8061010003610f15575050835461ffff19166101011784555060019150610b1e9050565b821561104457600080600080600080600087156117b257604051638639415b60e01b8152600481018c9052602481018b905260009081906001600160a01b038c1690638639415b9060440161010060405180830381865afa1580156116ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ee919061229a565b969e50949c50909a509850919650919450909250905081156117ab576040516001600160a01b038216908390600081818185875af1925050503d8060008114611753576040519150601f19603f3d011682016040523d82523d6000602084013e611758565b606091505b505080995050886117ab5760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c65646044820152606401610712565b5050611832565b604051638639415b60e01b8152600481018c9052602481018b90526001600160a01b038a1690638639415b9060440160c060405180830381865afa1580156117fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118229190612322565b949a509298509096509450925090505b85156118d9576040516001600160a01b038616908790600081818185875af1925050503d8060008114611881576040519150601f19603f3d011682016040523d82523d6000602084013e611886565b606091505b505080975050866118d95760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c656400006044820152606401610712565b8315611978576040516001600160a01b038416908590600081818185875af1925050503d8060008114611928576040519150601f19603f3d011682016040523d82523d6000602084013e61192d565b606091505b505080975050866119785760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b6044820152606401610712565b8115611a1f576040516001600160a01b038216908390600081818185875af1925050503d80600081146119c7576040519150601f19603f3d011682016040523d82523d6000602084013e6119cc565b606091505b50508097505086611a1f5760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c6564006044820152606401610712565b5050505050505050505050565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b03841690630ea5613f9060240160c060405180830381865afa158015611a76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9a919061223b565b5093989297509195505050505050565b6001600160a01b0381168114611abf57600080fd5b50565b8035611acd81611aaa565b919050565b600060208284031215611ae457600080fd5b81356105f081611aaa565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611b2d57611b2d611aef565b604052919050565b60006001600160401b03821115611b4e57611b4e611aef565b5060051b60200190565b600082601f830112611b6957600080fd5b81356020611b7e611b7983611b35565b611b05565b82815260059290921b84018101918181019086841115611b9d57600080fd5b8286015b84811015611bc1578035611bb481611aaa565b8352918301918301611ba1565b509695505050505050565b600082601f830112611bdd57600080fd5b81356020611bed611b7983611b35565b82815260059290921b84018101918181019086841115611c0c57600080fd5b8286015b84811015611bc15780358352918301918301611c10565b60008060008060008060c08789031215611c4057600080fd5b86359550611c5060208801611ac2565b945060408701356001600160401b0380821115611c6c57600080fd5b611c788a838b01611b58565b95506060890135915080821115611c8e57600080fd5b611c9a8a838b01611bcc565b94506080890135915080821115611cb057600080fd5b611cbc8a838b01611b58565b935060a0890135915080821115611cd257600080fd5b50611cdf89828a01611bcc565b9150509295509295509295565b60008060008060008060c08789031215611d0557600080fd5b8635611d1081611aaa565b9550602087013594506040870135611d2781611aaa565b93506060870135611d3781611aaa565b92506080870135915060a0870135611d4e81611aaa565b809150509295509295509295565b60008060008060808587031215611d7257600080fd5b843593506020850135611d8481611aaa565b92506040850135611d9481611aaa565b9396929550929360600135925050565b60008060408385031215611db757600080fd5b823591506020830135611dc981611aaa565b809150509250929050565b600080600060608486031215611de957600080fd5b833592506020840135611dfb81611aaa565b915060408401356001600160f81b0381168114611e1757600080fd5b809150509250925092565b60008060008060808587031215611e3857600080fd5b843593506020850135611e4a81611aaa565b925060408501356001600160401b0380821115611e6657600080fd5b611e7288838901611b58565b93506060870135915080821115611e8857600080fd5b50611e9587828801611bcc565b91505092959194509250565b600080600080600060a08688031215611eb957600080fd5b8535611ec481611aaa565b9450602086013593506040860135611edb81611aaa565b92506060860135611eeb81611aaa565b949793965091946080013592915050565b600080600060608486031215611f1157600080fd5b833592506020840135611f2381611aaa565b9150604084013562ffffff81168114611e1757600080fd5b60005b83811015611f56578181015183820152602001611f3e565b50506000910152565b60008151808452611f77816020860160208601611f3b565b601f01601f19169290920160200192915050565b602081526000610b1b6020830184611f5f565b8415158152836020820152608060408201526000611fbf6080830185611f5f565b905060018060a01b038316606083015295945050505050565b604080825283519082018190526000906020906060840190828701845b8281101561201a5781516001600160a01b031684529284019290840190600101611ff5565b5050508381038285015284518082528583019183019060005b8181101561204f57835183529284019291840191600101612033565b5090979650505050505050565b60208082526017908201527613585e081a5b9d9bd8d85d1a5bdb9cc81c995858da1959604a1b604082015260600190565b80518015158114611acd57600080fd5b6000602082840312156120af57600080fd5b610b1b8261208d565b6000602082840312156120ca57600080fd5b5051919050565b600082516120e3818460208701611f3b565b9190910192915050565b60208082526025908201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604082015264185a5b195960da1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b60008261216557634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561217c57600080fd5b81516105f081611aaa565b81810381811115610b1e57610b1e612132565b60208082526021908201527f546f6b656e486f6c6465724c69623a20617272617973206e6571206c656e67746040820152600d60fb1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006001820161220357612203612132565b5060010190565b602080825260179082015276496e76616c6964206d617820696e766f636174696f6e7360481b604082015260600190565b60008060008060008060c0878903121561225457600080fd5b865195506020870151945061226b6040880161208d565b93506122796060880161208d565b92506080870151915061228e60a0880161208d565b90509295509295509295565b600080600080600080600080610100898b0312156122b757600080fd5b8851975060208901516122c981611aaa565b60408a015160608b015191985096506122e181611aaa565b60808a015160a08b015191965094506122f981611aaa565b60c08a015160e08b0151919450925061231181611aaa565b809150509295985092959890939650565b60008060008060008060c0878903121561233b57600080fd5b86519550602087015161234d81611aaa565b60408801516060890151919650945061236581611aaa565b608088015160a08901519194509250611d4e81611aaa56fea2646970667358221220c41e27d33778c32d6c7596a8f522bf37f7bba480c1daa7c747235066bcfd7fbc64736f6c63430008130033",
1088
- "deployedBytecode": "0x6080604052600436106100fa5760003560e01c806301000da7146100ff5780630c49ef311461013457806319d29d7e1461015657806339b87cf8146101775780634869f3df146101975780637e947f24146101b75780637fbbc005146101d75780638a605b51146101ea5780639a94488a1461020a5780639b24c3c0146102a25780639d923dff14610344578063b000e33414610357578063bf5bf5f814610377578063cce7c909146103c3578063d3ddabe6146103e3578063d9bffbce14610422578063d9eb16db14610442578063dd85582f146104c6578063e9d1e8ac146104fa578063f7f5e9d01461053c578063fca23f4e1461055c575b600080fd5b34801561010b57600080fd5b5061011f61011a366004611ad2565b6105b6565b60405190151581526020015b60405180910390f35b34801561014057600080fd5b5061015461014f366004611c27565b6105f7565b005b610169610164366004611cec565b6106c2565b60405190815260200161012b565b34801561018357600080fd5b5061011f610192366004611d5c565b610ab5565b3480156101a357600080fd5b506101696101b2366004611da4565b610aec565b3480156101c357600080fd5b506101546101d2366004611dd4565b610b24565b6101696101e5366004611d5c565b610bd4565b3480156101f657600080fd5b50610154610205366004611e22565b610be5565b34801561021657600080fd5b50610280610225366004611da4565b6040805180820190915260008082526020820152506001600160a01b031660009081526003602090815260408083209383529281529082902082518084019093525460ff811615158352610100900462ffffff169082015290565b6040805182511515815260209283015162ffffff16928101929092520161012b565b3480156102ae57600080fd5b5061031e6102bd366004611da4565b6040805180820190915260008082526020820152506001600160a01b03166000908152600160209081526040808320938352928152908290208251808401909352546001600160f81b0381168352600160f81b900460ff1615159082015290565b6040805182516001600160f81b031681526020928301511515928101929092520161012b565b610169610352366004611ea1565b610c68565b34801561036357600080fd5b50610154610372366004611efc565b610c83565b34801561038357600080fd5b506103ab7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161012b565b3480156103cf57600080fd5b5061011f6103de366004611da4565b610d0b565b3480156103ef57600080fd5b5061041560405180604001604052806006815260200165076352e302e360d41b81525081565b60405161012b9190611f8b565b34801561042e57600080fd5b5061015461043d366004611da4565b610d37565b34801561044e57600080fd5b506104b661045d366004611da4565b6001600160a01b03166000908152600160209081526040808320938352928152828220548351808501909452600384526208aa8960eb1b9184019190915260ff600160f81b820416936001600160f81b03909116929190565b60405161012b9493929190611f9e565b3480156104d257600080fd5b506103ab7f000000000000000000000000000000000000000000000000000000000000000081565b34801561050657600080fd5b50610415604051806040016040528060168152602001754d696e7465725365745072696365486f6c646572563560501b81525081565b34801561054857600080fd5b50610154610557366004611e22565b610db0565b34801561056857600080fd5b5061011f610577366004611d5c565b6001600160a01b039283166000908152600460209081526040808320968352958152858220939094168152918352838220908252909152205460ff1690565b6001600160a01b03811660009081526002602052604081208054610100900460ff16156105e7575460ff1692915050565b6105f083610e25565b9392505050565b610602868633610f5d565b6001600160a01b038516600090815260046020908152604080832089845290915290206106329085858585610fa7565b846001600160a01b0316867fe4e108abe1d65a55b2c49a1586fb2afa6c3d79732947e37f71a6c23a5b08ff82868660405161066e929190611fd8565b60405180910390a3846001600160a01b0316867f5728c49515724a90b87298ccfb6a8868ff0bfddf7e4fe298cea807dd815ced0984846040516106b2929190611fd8565b60405180910390a3505050505050565b600060026000540361071b5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b600260009081556001600160a01b0386168082526001602090815260408084208a85528252808420928452600382528084208a8552909152909120805460ff16156107785760405162461bcd60e51b81526004016107129061205c565b8154600160f81b900460ff166107c75760405162461bcd60e51b8152602060048201526014602482015273141c9a58d9481b9bdd0818dbdb999a59dd5c995960621b6044820152606401610712565b81546001600160f81b03163481111561081b5760405162461bcd60e51b815260206004820152601660248201527526b4b7103b30b63ab2903a379036b4b73a103932b89760511b6044820152606401610712565b6001600160a01b03881660009081526004602090815260408083208c84529091529020610849908888610fbd565b61088d5760405162461bcd60e51b81526020600482015260156024820152744f6e6c7920616c6c6f776c6973746564204e46547360581b6044820152606401610712565b336001600160a01b0386161561099557604051631574d39f60e31b81523360048201526001600160a01b0387811660248301528a81166044830152606482018990526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aba69cf890608401602060405180830381865afa15801561091d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610941919061209d565b9050806109905760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642064656c65676174652d7661756c742070616972696e6700006044820152606401610712565b869150505b6040516117cd60e21b81526001600160a01b038c81166004830152602482018c90528a8116604483015282811660648301527f00000000000000000000000000000000000000000000000000000000000000001690615f34906084016020604051808303816000875af1158015610a10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3491906120b8565b6001600160a01b038a1660009081526003602090815260408083208e84529091529020909550610a65908690610ffb565b610a7088888361104a565b6001600160a01b0389166000908152600260205260408120610a93908b9061110d565b9050610aa18b848c8461113f565b505050505060016000559695505050505050565b6001600160a01b03831660009081526004602090815260408083208784529091528120610ae3908484610fbd565b95945050505050565b6001600160a01b0381166000908152600360209081526040808320858452909152812054610100900462ffffff165b90505b92915050565b610b2f838333610f5d565b6001600160a01b03821660008181526001602090815260408083208784529091528082206001600160f81b038516600160f81b8117825591519093919287917f37a132f63521ff11fed0c526f0f30824337316bb2b71fcfc0b6f3cf631595b5f9190a46001600160a01b03831660009081526003602090815260408083208784529091529020610bbe816111f6565b15610bcd57610bcd8585610d37565b5050505050565b6000610ae3338686868660006106c2565b610bf0848433610f5d565b6001600160a01b03831660009081526004602090815260408083208784529091529020610c1e908383611216565b826001600160a01b0316847fe4e108abe1d65a55b2c49a1586fb2afa6c3d79732947e37f71a6c23a5b08ff828484604051610c5a929190611fd8565b60405180910390a350505050565b6000610c79868686868660006106c2565b9695505050505050565b610c8e838333610f5d565b6001600160a01b03821660009081526003602090815260408083208684529091529020610cc0908490849084906112d9565b60405162ffffff821681526001600160a01b0383169084907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e237906020015b60405180910390a3505050565b6001600160a01b038116600090815260036020908152604080832085845290915281205460ff16610b1b565b610d42828233610f5d565b6001600160a01b03811660009081526003602090815260408083208584529091528120610d729084908490611360565b9050816001600160a01b0316837f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e23783604051610cfe91815260200190565b610dbb848433610f5d565b6001600160a01b03831660009081526004602090815260408083208784529091529020610de9908383611405565b826001600160a01b0316847f5728c49515724a90b87298ccfb6a8868ff0bfddf7e4fe298cea807dd815ced098484604051610c5a929190611fd8565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03861690610e879085906120d1565b600060405180830381855afa9150503d8060008114610ec2576040519150601f19603f3d011682016040523d82523d6000602084013e610ec7565b606091505b509150915081610ee95760405162461bcd60e51b8152600401610712906120ed565b805160c0819003610f005750600095945050505050565b8061010003610f155750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c697420627974657300006044820152606401610712565b610f688383836114c8565b610fa25760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b6044820152606401610712565b505050565b610fb2858585611216565b610bcd858383611405565b600080610fcd620f424084612148565b6001600160a01b038516600090815260208781526040808320938352929052205460ff169150509392505050565b8054620f4240830660010190610100900462ffffff16808211156110315760405162461bcd60e51b81526004016107129061205c565b80820361104457825460ff191660011783555b50505050565b6040516331a9108f60e11b8152600481018390526000906001600160a01b03851690636352211e90602401602060405180830381865afa158015611092573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b6919061216a565b9050816001600160a01b0316816001600160a01b0316146110445760405162461bcd60e51b815260206004820152601160248201527013db9b1e481bdddb995c881bd988139195607a1b6044820152606401610712565b8054600090610100900460ff161561112a5750805460ff16610b1e565b60006111368484611551565b9150610b1e9050565b3415611044576000806111528534612187565b905080156111e25760405133908290600081818185875af1925050503d806000811461119a576040519150601f19603f3d011682016040523d82523d6000602084013e61119f565b606091505b505080925050816111e25760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b6044820152606401610712565b6111ee86868686611661565b505050505050565b8054600090610100900462ffffff16158015610b1e5750505460ff161590565b80518251146112375760405162461bcd60e51b81526004016107129061219a565b60005b825181101561104457600184600001600085848151811061125d5761125d6121db565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000848481518110611299576112996121db565b6020026020010151815260200190815260200160002060006101000a81548160ff02191690831515021790555080806112d1906121f1565b91505061123a565b6000806112e68686611a2c565b91509150808462ffffff16111561130f5760405162461bcd60e51b81526004016107129061220a565b818462ffffff1610156113345760405162461bcd60e51b81526004016107129061220a565b50815460ff1962ffffff90941661010081029490941663ffffffff199091161792149190911790555050565b6000806000846001600160a01b0316630ea5613f876040518263ffffffff1660e01b815260040161139391815260200190565b60c060405180830381865afa1580156113b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d4919061223b565b5050875493831463ffffffff1990941661010062ffffff85160260ff19161793909317909655979650505050505050565b80518251146114265760405162461bcd60e51b81526004016107129061219a565b60005b825181101561104457600084600001600085848151811061144c5761144c6121db565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000848481518110611488576114886121db565b6020026020010151815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114c0906121f1565b915050611429565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa158015611510573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611534919061216a565b6001600160a01b0316826001600160a01b03161490509392505050565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b038716906115b39085906120d1565b6000604051808303816000865af19150503d80600081146115f0576040519150601f19603f3d011682016040523d82523d6000602084013e6115f5565b606091505b5091509150816116175760405162461bcd60e51b8152600401610712906120ed565b805160c081900361163d575050835461ffff19166101001784555060009150610b1e9050565b8061010003610f15575050835461ffff19166101011784555060019150610b1e9050565b821561104457600080600080600080600087156117b257604051638639415b60e01b8152600481018c9052602481018b905260009081906001600160a01b038c1690638639415b9060440161010060405180830381865afa1580156116ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ee919061229a565b969e50949c50909a509850919650919450909250905081156117ab576040516001600160a01b038216908390600081818185875af1925050503d8060008114611753576040519150601f19603f3d011682016040523d82523d6000602084013e611758565b606091505b505080995050886117ab5760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c65646044820152606401610712565b5050611832565b604051638639415b60e01b8152600481018c9052602481018b90526001600160a01b038a1690638639415b9060440160c060405180830381865afa1580156117fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118229190612322565b949a509298509096509450925090505b85156118d9576040516001600160a01b038616908790600081818185875af1925050503d8060008114611881576040519150601f19603f3d011682016040523d82523d6000602084013e611886565b606091505b505080975050866118d95760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c656400006044820152606401610712565b8315611978576040516001600160a01b038416908590600081818185875af1925050503d8060008114611928576040519150601f19603f3d011682016040523d82523d6000602084013e61192d565b606091505b505080975050866119785760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b6044820152606401610712565b8115611a1f576040516001600160a01b038216908390600081818185875af1925050503d80600081146119c7576040519150601f19603f3d011682016040523d82523d6000602084013e6119cc565b606091505b50508097505086611a1f5760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c6564006044820152606401610712565b5050505050505050505050565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b03841690630ea5613f9060240160c060405180830381865afa158015611a76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9a919061223b565b5093989297509195505050505050565b6001600160a01b0381168114611abf57600080fd5b50565b8035611acd81611aaa565b919050565b600060208284031215611ae457600080fd5b81356105f081611aaa565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611b2d57611b2d611aef565b604052919050565b60006001600160401b03821115611b4e57611b4e611aef565b5060051b60200190565b600082601f830112611b6957600080fd5b81356020611b7e611b7983611b35565b611b05565b82815260059290921b84018101918181019086841115611b9d57600080fd5b8286015b84811015611bc1578035611bb481611aaa565b8352918301918301611ba1565b509695505050505050565b600082601f830112611bdd57600080fd5b81356020611bed611b7983611b35565b82815260059290921b84018101918181019086841115611c0c57600080fd5b8286015b84811015611bc15780358352918301918301611c10565b60008060008060008060c08789031215611c4057600080fd5b86359550611c5060208801611ac2565b945060408701356001600160401b0380821115611c6c57600080fd5b611c788a838b01611b58565b95506060890135915080821115611c8e57600080fd5b611c9a8a838b01611bcc565b94506080890135915080821115611cb057600080fd5b611cbc8a838b01611b58565b935060a0890135915080821115611cd257600080fd5b50611cdf89828a01611bcc565b9150509295509295509295565b60008060008060008060c08789031215611d0557600080fd5b8635611d1081611aaa565b9550602087013594506040870135611d2781611aaa565b93506060870135611d3781611aaa565b92506080870135915060a0870135611d4e81611aaa565b809150509295509295509295565b60008060008060808587031215611d7257600080fd5b843593506020850135611d8481611aaa565b92506040850135611d9481611aaa565b9396929550929360600135925050565b60008060408385031215611db757600080fd5b823591506020830135611dc981611aaa565b809150509250929050565b600080600060608486031215611de957600080fd5b833592506020840135611dfb81611aaa565b915060408401356001600160f81b0381168114611e1757600080fd5b809150509250925092565b60008060008060808587031215611e3857600080fd5b843593506020850135611e4a81611aaa565b925060408501356001600160401b0380821115611e6657600080fd5b611e7288838901611b58565b93506060870135915080821115611e8857600080fd5b50611e9587828801611bcc565b91505092959194509250565b600080600080600060a08688031215611eb957600080fd5b8535611ec481611aaa565b9450602086013593506040860135611edb81611aaa565b92506060860135611eeb81611aaa565b949793965091946080013592915050565b600080600060608486031215611f1157600080fd5b833592506020840135611f2381611aaa565b9150604084013562ffffff81168114611e1757600080fd5b60005b83811015611f56578181015183820152602001611f3e565b50506000910152565b60008151808452611f77816020860160208601611f3b565b601f01601f19169290920160200192915050565b602081526000610b1b6020830184611f5f565b8415158152836020820152608060408201526000611fbf6080830185611f5f565b905060018060a01b038316606083015295945050505050565b604080825283519082018190526000906020906060840190828701845b8281101561201a5781516001600160a01b031684529284019290840190600101611ff5565b5050508381038285015284518082528583019183019060005b8181101561204f57835183529284019291840191600101612033565b5090979650505050505050565b60208082526017908201527613585e081a5b9d9bd8d85d1a5bdb9cc81c995858da1959604a1b604082015260600190565b80518015158114611acd57600080fd5b6000602082840312156120af57600080fd5b610b1b8261208d565b6000602082840312156120ca57600080fd5b5051919050565b600082516120e3818460208701611f3b565b9190910192915050565b60208082526025908201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604082015264185a5b195960da1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b60008261216557634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561217c57600080fd5b81516105f081611aaa565b81810381811115610b1e57610b1e612132565b60208082526021908201527f546f6b656e486f6c6465724c69623a20617272617973206e6571206c656e67746040820152600d60fb1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006001820161220357612203612132565b5060010190565b602080825260179082015276496e76616c6964206d617820696e766f636174696f6e7360481b604082015260600190565b60008060008060008060c0878903121561225457600080fd5b865195506020870151945061226b6040880161208d565b93506122796060880161208d565b92506080870151915061228e60a0880161208d565b90509295509295509295565b600080600080600080600080610100898b0312156122b757600080fd5b8851975060208901516122c981611aaa565b60408a015160608b015191985096506122e181611aaa565b60808a015160a08b015191965094506122f981611aaa565b60c08a015160e08b0151919450925061231181611aaa565b809150509295985092959890939650565b60008060008060008060c0878903121561233b57600080fd5b86519550602087015161234d81611aaa565b60408801516060890151919650945061236581611aaa565b608088015160a08901519194509250611d4e81611aaa56fea2646970667358221220c41e27d33778c32d6c7596a8f522bf37f7bba480c1daa7c747235066bcfd7fbc64736f6c63430008130033",
596
+ "bytecode": "0x6101006040523480156200001257600080fd5b506040516200228a3803806200228a8339810160408190526200003591620000b1565b60016000556001600160a01b03828116608081905260a052811660c081905260e08190526040519081527f836360d1b094a7de3c3eab3d1185f3a5939467c23d4a12709dbdbf8c8d7e2f3b9060200160405180910390a15050620000e9565b80516001600160a01b0381168114620000ac57600080fd5b919050565b60008060408385031215620000c557600080fd5b620000d08362000094565b9150620000e06020840162000094565b90509250929050565b60805160a05160c05160e05161216762000123600039600061062d015260006102d701526000610722015260006103d201526121676000f3fe6080604052600436106100fa5760003560e01c806301000da7146100ff5780630c49ef311461013457806319d29d7e1461015657806339b87cf8146101775780634869f3df146101975780637e947f24146101b75780637fbbc005146101d75780638a605b51146101ea5780639a94488a1461020a5780639b24c3c01461024c5780639d923dff14610292578063b000e334146102a5578063bf5bf5f8146102c5578063cce7c90914610311578063d3ddabe614610331578063d9bffbce14610370578063d9eb16db14610390578063dd85582f146103c0578063e9d1e8ac146103f4578063f7f5e9d014610436578063fca23f4e14610456575b600080fd5b34801561010b57600080fd5b5061011f61011a36600461199d565b610476565b60405190151581526020015b60405180910390f35b34801561014057600080fd5b5061015461014f366004611a05565b6104ae565b005b610169610164366004611ae5565b6104d7565b60405190815260200161012b565b34801561018357600080fd5b5061011f610192366004611b55565b6107c0565b3480156101a357600080fd5b506101696101b2366004611b9d565b6107d7565b3480156101c357600080fd5b506101546101d2366004611bcd565b6107ec565b6101696101e5366004611b55565b610829565b3480156101f657600080fd5b50610154610205366004611c1b565b61083a565b34801561021657600080fd5b5061022a610225366004611b9d565b61085b565b6040805182511515815260209283015162ffffff16928101929092520161012b565b34801561025857600080fd5b5061026c610267366004611b9d565b6108a3565b6040805182516001600160f81b031681526020928301511515928101929092520161012b565b6101696102a0366004611ca6565b6108f1565b3480156102b157600080fd5b506101546102c0366004611d01565b61090c565b3480156102d157600080fd5b506102f97f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161012b565b34801561031d57600080fd5b5061011f61032c366004611b9d565b610922565b34801561033d57600080fd5b5061036360405180604001604052806006815260200165076352e302e360d41b81525081565b60405161012b9190611d90565b34801561037c57600080fd5b5061015461038b366004611b9d565b61092e565b34801561039c57600080fd5b506103b06103ab366004611b9d565b610947565b60405161012b9493929190611da3565b3480156103cc57600080fd5b506102f97f000000000000000000000000000000000000000000000000000000000000000081565b34801561040057600080fd5b50610363604051806040016040528060168152602001754d696e7465725365745072696365486f6c646572563560501b81525081565b34801561044257600080fd5b50610154610451366004611c1b565b610999565b34801561046257600080fd5b5061011f610471366004611b55565b6109b2565b600080610482836109ec565b8054909150610100900460ff161561049e575460ff1692915050565b6104a783610a25565b9392505050565b6104b98a8a33610b9b565b6104cb8a8a8a8a8a8a8a8a8a8a610be0565b50505050505050505050565b60006002600054036105305760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b600260005561053f8686610bfc565b600061054b8787610c2d565b9050803410156105965760405162461bcd60e51b815260206004820152601660248201527526b4b7103b30b63ab2903a379036b4b73a103932b89760511b6044820152606401610527565b6105a287878787610c9d565b6105e65760405162461bcd60e51b81526020600482015260156024820152744f6e6c7920616c6c6f776c6973746564204e46547360581b6044820152606401610527565b336001600160a01b038416156106ee57604051631574d39f60e31b81523360048201526001600160a01b0385811660248301528881166044830152606482018790526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aba69cf890608401602060405180830381865afa158015610676573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069a9190611ded565b9050806106e95760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642064656c65676174652d7661756c742070616972696e6700006044820152606401610527565b849150505b6040516117cd60e21b81526001600160a01b038a81166004830152602482018a9052888116604483015282811660648301527f00000000000000000000000000000000000000000000000000000000000000001690615f34906084016020604051808303816000875af1158015610769573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078d9190611e08565b92506107998388610ced565b6107a4868683610d52565b6107af888389610e1b565b505060016000559695505050505050565b60006107ce85858585610c9d565b95945050505050565b60006107e38383610eca565b90505b92915050565b6107f7838333610b9b565b61080b8383836001600160f81b0316610eea565b6108158383610f49565b1561082457610824838361092e565b505050565b60006107ce338686868660006104d7565b610845868633610b9b565b610853868686868686610f7c565b505050505050565b60408051808201909152600080825260208201526108798383611098565b60408051808201909152905460ff811615158252610100900462ffffff1660208201529392505050565b60408051808201909152600080825260208201526108c183836110e3565b6040805180820190915290546001600160f81b0381168252600160f81b900460ff16151560208201529392505050565b6000610902868686868660006104d7565b9695505050505050565b610917838333610b9b565b61082483838361110a565b60006107e383836111e0565b610939828233610b9b565b61094382826111f9565b5050565b600080606060008061095987876110e3565b5460408051808201909152600381526208aa8960eb1b602082015260ff600160f81b830416996001600160f81b0390921698509650600095509350505050565b6109a4868633610b9b565b610853868686868686611280565b60006109be8585611389565b6001600160a01b038416600090815260209182526040808220858352909252205460ff169050949350505050565b6001600160a01b031660009081527f69f22dd730b53ff235fa96b4306a31bef5dad48fe4bac28b1ceebbce14401b396020526040902090565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03861690610a87908590611e21565b600060405180830381855afa9150503d8060008114610ac2576040519150601f19603f3d011682016040523d82523d6000602084013e610ac7565b606091505b509150915081610b275760405162461bcd60e51b815260206004820152602560248201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604482015264185a5b195960da1b6064820152608401610527565b805160c0819003610b3e5750600095945050505050565b8061010003610b535750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c697420627974657300006044820152606401610527565b610ba68383836113b1565b6108245760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b6044820152606401610527565b610bee8a8a8a8a8a8a610f7c565b6104cb8a8a86868686611280565b6000610c088383611098565b805490915060ff16156108245760405162461bcd60e51b815260040161052790611e3d565b600080610c3a84846110e3565b8054909150600160f81b900460ff16610c8c5760405162461bcd60e51b8152602060048201526014602482015273141c9a58d9481b9bdd0818dbdb999a59dd5c995960621b6044820152606401610527565b546001600160f81b03169392505050565b600080610caa8686611389565b90506000610cbb620f424085611e84565b6001600160a01b038616600090815260209384526040808220928252919093529091205460ff16915050949350505050565b620f424082046000610cff8284611098565b8054909150620f4240850660010190610100900462ffffff1680821115610d385760405162461bcd60e51b815260040161052790611e3d565b80820361085357825460ff19166001178355505050505050565b6040516331a9108f60e11b8152600481018390526000906001600160a01b03851690636352211e90602401602060405180830381865afa158015610d9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbe9190611ea6565b9050816001600160a01b0316816001600160a01b031614610e155760405162461bcd60e51b815260206004820152601160248201527013db9b1e481bdddb995c881bd988139195607a1b6044820152606401610527565b50505050565b3415610824576000610e2d8334611ec3565b90508015610ebf57604051600090339083908381818185875af1925050503d8060008114610e77576040519150601f19603f3d011682016040523d82523d6000602084013e610e7c565b606091505b5050905080610ebd5760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b6044820152606401610527565b505b610e1584848461143a565b600080610ed78484611098565b54610100900462ffffff16949350505050565b6000610ef684846110e3565b600160f81b6001600160f81b03841617815560405190915082906001600160a01b0385169086907f98e99eae7ab1c56b5b882e049df69b522affbaa1a93afd3be411447a1606027890600090a450505050565b600080610f568484611098565b8054909150610100900462ffffff16158015610f745750805460ff16155b949350505050565b828114610f9b5760405162461bcd60e51b815260040161052790611ed6565b6000610fa78787611389565b90508360005b81811015611045576001836000898985818110610fcc57610fcc611f17565b9050602002016020810190610fe1919061199d565b6001600160a01b03166001600160a01b03168152602001908152602001600020600087878581811061101557611015611f17565b60209081029290920135835250810191909152604001600020805460ff1916911515919091179055600101610fad565b50866001600160a01b0316887fe4e108abe1d65a55b2c49a1586fb2afa6c3d79732947e37f71a6c23a5b08ff82888888886040516110869493929190611f2d565b60405180910390a35050505050505050565b60007f73e3af67f35f30fb72bbaaf6cc07b987364ed643c93ba201702e213464e877ee5b6001600160a01b039290921660009081526020928352604080822094825293909252502090565b60007efc986db700c71340c673de619c46ee721167fc4ea17804bb535c4c196aa7d76110bc565b60008061111785856115fb565b91509150808362ffffff1611156111405760405162461bcd60e51b815260040161052790611fab565b818362ffffff1610156111655760405162461bcd60e51b815260040161052790611fab565b60006111718686611098565b805462ffffff861685811463ffffffff19909216610100820260ff1916179190911782556040519081529091506001600160a01b0386169087907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e2379060200160405180910390a3505050505050565b6000806111ed8484611098565b5460ff16949350505050565b60008061120684846115fb565b9150915060006112168585611098565b805484841463ffffffff1990911661010062ffffff86160260ff1916171781556040518381529091506001600160a01b0385169086907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e2379060200160405180910390a35050505050565b82811461129f5760405162461bcd60e51b815260040161052790611ed6565b60006112ab8787611389565b90508360005b8181101561134857600083818989858181106112cf576112cf611f17565b90506020020160208101906112e4919061199d565b6001600160a01b03166001600160a01b03168152602001908152602001600020600087878581811061131857611318611f17565b60209081029290920135835250810191909152604001600020805460ff19169115159190911790556001016112b1565b50866001600160a01b0316887f5728c49515724a90b87298ccfb6a8868ff0bfddf7e4fe298cea807dd815ced09888888886040516110869493929190611f2d565b60007f7805f013cae363c49df6acca2dcd8a8f0bd9005c2f87b85d8dbbce9098e4afd76110bc565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa1580156113f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141d9190611ea6565b6001600160a01b0316826001600160a01b03161490509392505050565b8160000361144757505050565b600061145282611679565b905060008060008060008060008088156114f057604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440161010060405180830381865afa1580156114b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d79190611fdc565b969e50949c50929a509098509650945092509050611570565b604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440160c060405180830381865afa15801561153c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115609190612064565b949c50929a509096509450925090505b8a828561157d898c6120bf565b61158791906120bf565b61159191906120bf565b146115dd5760405162461bcd60e51b815260206004820152601c60248201527b496e76616c696420726576656e75652073706c697420746f74616c7360201b6044820152606401610527565b6115ed86868a8a888888886116c7565b505050505050505050505050565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b03841690630ea5613f9060240160c060405180830381865afa158015611645573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166991906120d2565b5093989297509195505050505050565b600080611685836109ec565b8054909150610100900460ff16156116a1575460ff1692915050565b60006116ac84610a25565b825481151561ffff1990911617610100179092555092915050565b8715611772576000876001600160a01b03168960405160006040518083038185875af1925050503d806000811461171a576040519150601f19603f3d011682016040523d82523d6000602084013e61171f565b606091505b50509050806117705760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c65646044820152606401610527565b505b851561181d576000856001600160a01b03168760405160006040518083038185875af1925050503d80600081146117c5576040519150601f19603f3d011682016040523d82523d6000602084013e6117ca565b606091505b505090508061181b5760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c656400006044820152606401610527565b505b83156118c0576000836001600160a01b03168560405160006040518083038185875af1925050503d8060008114611870576040519150601f19603f3d011682016040523d82523d6000602084013e611875565b606091505b50509050806118be5760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b6044820152606401610527565b505b811561196b576000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114611913576040519150601f19603f3d011682016040523d82523d6000602084013e611918565b606091505b50509050806119695760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c6564006044820152606401610527565b505b5050505050505050565b6001600160a01b038116811461198a57600080fd5b50565b803561199881611975565b919050565b6000602082840312156119af57600080fd5b81356104a781611975565b60008083601f8401126119cc57600080fd5b5081356001600160401b038111156119e357600080fd5b6020830191508360208260051b85010111156119fe57600080fd5b9250929050565b60008060008060008060008060008060c08b8d031215611a2457600080fd5b8a359950611a3460208c0161198d565b985060408b01356001600160401b0380821115611a5057600080fd5b611a5c8e838f016119ba565b909a50985060608d0135915080821115611a7557600080fd5b611a818e838f016119ba565b909850965060808d0135915080821115611a9a57600080fd5b611aa68e838f016119ba565b909650945060a08d0135915080821115611abf57600080fd5b50611acc8d828e016119ba565b915080935050809150509295989b9194979a5092959850565b60008060008060008060c08789031215611afe57600080fd5b8635611b0981611975565b9550602087013594506040870135611b2081611975565b93506060870135611b3081611975565b92506080870135915060a0870135611b4781611975565b809150509295509295509295565b60008060008060808587031215611b6b57600080fd5b843593506020850135611b7d81611975565b92506040850135611b8d81611975565b9396929550929360600135925050565b60008060408385031215611bb057600080fd5b823591506020830135611bc281611975565b809150509250929050565b600080600060608486031215611be257600080fd5b833592506020840135611bf481611975565b915060408401356001600160f81b0381168114611c1057600080fd5b809150509250925092565b60008060008060008060808789031215611c3457600080fd5b863595506020870135611c4681611975565b945060408701356001600160401b0380821115611c6257600080fd5b611c6e8a838b016119ba565b90965094506060890135915080821115611c8757600080fd5b50611c9489828a016119ba565b979a9699509497509295939492505050565b600080600080600060a08688031215611cbe57600080fd5b8535611cc981611975565b9450602086013593506040860135611ce081611975565b92506060860135611cf081611975565b949793965091946080013592915050565b600080600060608486031215611d1657600080fd5b833592506020840135611d2881611975565b9150604084013562ffffff81168114611c1057600080fd5b60005b83811015611d5b578181015183820152602001611d43565b50506000910152565b60008151808452611d7c816020860160208601611d40565b601f01601f19169290920160200192915050565b6020815260006107e36020830184611d64565b8415158152836020820152608060408201526000611dc46080830185611d64565b905060018060a01b038316606083015295945050505050565b8051801515811461199857600080fd5b600060208284031215611dff57600080fd5b6107e382611ddd565b600060208284031215611e1a57600080fd5b5051919050565b60008251611e33818460208701611d40565b9190910192915050565b60208082526017908201527613585e081a5b9d9bd8d85d1a5bdb9cc81c995858da1959604a1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082611ea157634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611eb857600080fd5b81516104a781611975565b818103818111156107e6576107e6611e6e565b60208082526021908201527f546f6b656e486f6c6465724c69623a20617272617973206e6571206c656e67746040820152600d60fb1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6040808252810184905260008560608301825b87811015611f70578235611f5381611975565b6001600160a01b0316825260209283019290910190600101611f40565b5083810360208501528481526001600160fb1b03851115611f9057600080fd5b8460051b915081866020830137016020019695505050505050565b602080825260179082015276496e76616c6964206d617820696e766f636174696f6e7360481b604082015260600190565b600080600080600080600080610100898b031215611ff957600080fd5b88519750602089015161200b81611975565b60408a015160608b0151919850965061202381611975565b60808a015160a08b0151919650945061203b81611975565b60c08a015160e08b0151919450925061205381611975565b809150509295985092959890939650565b60008060008060008060c0878903121561207d57600080fd5b86519550602087015161208f81611975565b6040880151606089015191965094506120a781611975565b608088015160a08901519194509250611b4781611975565b808201808211156107e6576107e6611e6e565b60008060008060008060c087890312156120eb57600080fd5b865195506020870151945061210260408801611ddd565b935061211060608801611ddd565b92506080870151915061212560a08801611ddd565b9050929550929550929556fea2646970667358221220d3f7d15c9bcbf61326924c1e353114251c694f5ea7c0922cd69100593ebe1ee464736f6c63430008130033",
597
+ "deployedBytecode": "0x6080604052600436106100fa5760003560e01c806301000da7146100ff5780630c49ef311461013457806319d29d7e1461015657806339b87cf8146101775780634869f3df146101975780637e947f24146101b75780637fbbc005146101d75780638a605b51146101ea5780639a94488a1461020a5780639b24c3c01461024c5780639d923dff14610292578063b000e334146102a5578063bf5bf5f8146102c5578063cce7c90914610311578063d3ddabe614610331578063d9bffbce14610370578063d9eb16db14610390578063dd85582f146103c0578063e9d1e8ac146103f4578063f7f5e9d014610436578063fca23f4e14610456575b600080fd5b34801561010b57600080fd5b5061011f61011a36600461199d565b610476565b60405190151581526020015b60405180910390f35b34801561014057600080fd5b5061015461014f366004611a05565b6104ae565b005b610169610164366004611ae5565b6104d7565b60405190815260200161012b565b34801561018357600080fd5b5061011f610192366004611b55565b6107c0565b3480156101a357600080fd5b506101696101b2366004611b9d565b6107d7565b3480156101c357600080fd5b506101546101d2366004611bcd565b6107ec565b6101696101e5366004611b55565b610829565b3480156101f657600080fd5b50610154610205366004611c1b565b61083a565b34801561021657600080fd5b5061022a610225366004611b9d565b61085b565b6040805182511515815260209283015162ffffff16928101929092520161012b565b34801561025857600080fd5b5061026c610267366004611b9d565b6108a3565b6040805182516001600160f81b031681526020928301511515928101929092520161012b565b6101696102a0366004611ca6565b6108f1565b3480156102b157600080fd5b506101546102c0366004611d01565b61090c565b3480156102d157600080fd5b506102f97f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161012b565b34801561031d57600080fd5b5061011f61032c366004611b9d565b610922565b34801561033d57600080fd5b5061036360405180604001604052806006815260200165076352e302e360d41b81525081565b60405161012b9190611d90565b34801561037c57600080fd5b5061015461038b366004611b9d565b61092e565b34801561039c57600080fd5b506103b06103ab366004611b9d565b610947565b60405161012b9493929190611da3565b3480156103cc57600080fd5b506102f97f000000000000000000000000000000000000000000000000000000000000000081565b34801561040057600080fd5b50610363604051806040016040528060168152602001754d696e7465725365745072696365486f6c646572563560501b81525081565b34801561044257600080fd5b50610154610451366004611c1b565b610999565b34801561046257600080fd5b5061011f610471366004611b55565b6109b2565b600080610482836109ec565b8054909150610100900460ff161561049e575460ff1692915050565b6104a783610a25565b9392505050565b6104b98a8a33610b9b565b6104cb8a8a8a8a8a8a8a8a8a8a610be0565b50505050505050505050565b60006002600054036105305760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b600260005561053f8686610bfc565b600061054b8787610c2d565b9050803410156105965760405162461bcd60e51b815260206004820152601660248201527526b4b7103b30b63ab2903a379036b4b73a103932b89760511b6044820152606401610527565b6105a287878787610c9d565b6105e65760405162461bcd60e51b81526020600482015260156024820152744f6e6c7920616c6c6f776c6973746564204e46547360581b6044820152606401610527565b336001600160a01b038416156106ee57604051631574d39f60e31b81523360048201526001600160a01b0385811660248301528881166044830152606482018790526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aba69cf890608401602060405180830381865afa158015610676573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069a9190611ded565b9050806106e95760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642064656c65676174652d7661756c742070616972696e6700006044820152606401610527565b849150505b6040516117cd60e21b81526001600160a01b038a81166004830152602482018a9052888116604483015282811660648301527f00000000000000000000000000000000000000000000000000000000000000001690615f34906084016020604051808303816000875af1158015610769573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078d9190611e08565b92506107998388610ced565b6107a4868683610d52565b6107af888389610e1b565b505060016000559695505050505050565b60006107ce85858585610c9d565b95945050505050565b60006107e38383610eca565b90505b92915050565b6107f7838333610b9b565b61080b8383836001600160f81b0316610eea565b6108158383610f49565b1561082457610824838361092e565b505050565b60006107ce338686868660006104d7565b610845868633610b9b565b610853868686868686610f7c565b505050505050565b60408051808201909152600080825260208201526108798383611098565b60408051808201909152905460ff811615158252610100900462ffffff1660208201529392505050565b60408051808201909152600080825260208201526108c183836110e3565b6040805180820190915290546001600160f81b0381168252600160f81b900460ff16151560208201529392505050565b6000610902868686868660006104d7565b9695505050505050565b610917838333610b9b565b61082483838361110a565b60006107e383836111e0565b610939828233610b9b565b61094382826111f9565b5050565b600080606060008061095987876110e3565b5460408051808201909152600381526208aa8960eb1b602082015260ff600160f81b830416996001600160f81b0390921698509650600095509350505050565b6109a4868633610b9b565b610853868686868686611280565b60006109be8585611389565b6001600160a01b038416600090815260209182526040808220858352909252205460ff169050949350505050565b6001600160a01b031660009081527f69f22dd730b53ff235fa96b4306a31bef5dad48fe4bac28b1ceebbce14401b396020526040902090565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03861690610a87908590611e21565b600060405180830381855afa9150503d8060008114610ac2576040519150601f19603f3d011682016040523d82523d6000602084013e610ac7565b606091505b509150915081610b275760405162461bcd60e51b815260206004820152602560248201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604482015264185a5b195960da1b6064820152608401610527565b805160c0819003610b3e5750600095945050505050565b8061010003610b535750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c697420627974657300006044820152606401610527565b610ba68383836113b1565b6108245760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b6044820152606401610527565b610bee8a8a8a8a8a8a610f7c565b6104cb8a8a86868686611280565b6000610c088383611098565b805490915060ff16156108245760405162461bcd60e51b815260040161052790611e3d565b600080610c3a84846110e3565b8054909150600160f81b900460ff16610c8c5760405162461bcd60e51b8152602060048201526014602482015273141c9a58d9481b9bdd0818dbdb999a59dd5c995960621b6044820152606401610527565b546001600160f81b03169392505050565b600080610caa8686611389565b90506000610cbb620f424085611e84565b6001600160a01b038616600090815260209384526040808220928252919093529091205460ff16915050949350505050565b620f424082046000610cff8284611098565b8054909150620f4240850660010190610100900462ffffff1680821115610d385760405162461bcd60e51b815260040161052790611e3d565b80820361085357825460ff19166001178355505050505050565b6040516331a9108f60e11b8152600481018390526000906001600160a01b03851690636352211e90602401602060405180830381865afa158015610d9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbe9190611ea6565b9050816001600160a01b0316816001600160a01b031614610e155760405162461bcd60e51b815260206004820152601160248201527013db9b1e481bdddb995c881bd988139195607a1b6044820152606401610527565b50505050565b3415610824576000610e2d8334611ec3565b90508015610ebf57604051600090339083908381818185875af1925050503d8060008114610e77576040519150601f19603f3d011682016040523d82523d6000602084013e610e7c565b606091505b5050905080610ebd5760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b6044820152606401610527565b505b610e1584848461143a565b600080610ed78484611098565b54610100900462ffffff16949350505050565b6000610ef684846110e3565b600160f81b6001600160f81b03841617815560405190915082906001600160a01b0385169086907f98e99eae7ab1c56b5b882e049df69b522affbaa1a93afd3be411447a1606027890600090a450505050565b600080610f568484611098565b8054909150610100900462ffffff16158015610f745750805460ff16155b949350505050565b828114610f9b5760405162461bcd60e51b815260040161052790611ed6565b6000610fa78787611389565b90508360005b81811015611045576001836000898985818110610fcc57610fcc611f17565b9050602002016020810190610fe1919061199d565b6001600160a01b03166001600160a01b03168152602001908152602001600020600087878581811061101557611015611f17565b60209081029290920135835250810191909152604001600020805460ff1916911515919091179055600101610fad565b50866001600160a01b0316887fe4e108abe1d65a55b2c49a1586fb2afa6c3d79732947e37f71a6c23a5b08ff82888888886040516110869493929190611f2d565b60405180910390a35050505050505050565b60007f73e3af67f35f30fb72bbaaf6cc07b987364ed643c93ba201702e213464e877ee5b6001600160a01b039290921660009081526020928352604080822094825293909252502090565b60007efc986db700c71340c673de619c46ee721167fc4ea17804bb535c4c196aa7d76110bc565b60008061111785856115fb565b91509150808362ffffff1611156111405760405162461bcd60e51b815260040161052790611fab565b818362ffffff1610156111655760405162461bcd60e51b815260040161052790611fab565b60006111718686611098565b805462ffffff861685811463ffffffff19909216610100820260ff1916179190911782556040519081529091506001600160a01b0386169087907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e2379060200160405180910390a3505050505050565b6000806111ed8484611098565b5460ff16949350505050565b60008061120684846115fb565b9150915060006112168585611098565b805484841463ffffffff1990911661010062ffffff86160260ff1916171781556040518381529091506001600160a01b0385169086907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e2379060200160405180910390a35050505050565b82811461129f5760405162461bcd60e51b815260040161052790611ed6565b60006112ab8787611389565b90508360005b8181101561134857600083818989858181106112cf576112cf611f17565b90506020020160208101906112e4919061199d565b6001600160a01b03166001600160a01b03168152602001908152602001600020600087878581811061131857611318611f17565b60209081029290920135835250810191909152604001600020805460ff19169115159190911790556001016112b1565b50866001600160a01b0316887f5728c49515724a90b87298ccfb6a8868ff0bfddf7e4fe298cea807dd815ced09888888886040516110869493929190611f2d565b60007f7805f013cae363c49df6acca2dcd8a8f0bd9005c2f87b85d8dbbce9098e4afd76110bc565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa1580156113f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141d9190611ea6565b6001600160a01b0316826001600160a01b03161490509392505050565b8160000361144757505050565b600061145282611679565b905060008060008060008060008088156114f057604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440161010060405180830381865afa1580156114b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d79190611fdc565b969e50949c50929a509098509650945092509050611570565b604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440160c060405180830381865afa15801561153c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115609190612064565b949c50929a509096509450925090505b8a828561157d898c6120bf565b61158791906120bf565b61159191906120bf565b146115dd5760405162461bcd60e51b815260206004820152601c60248201527b496e76616c696420726576656e75652073706c697420746f74616c7360201b6044820152606401610527565b6115ed86868a8a888888886116c7565b505050505050505050505050565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b03841690630ea5613f9060240160c060405180830381865afa158015611645573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166991906120d2565b5093989297509195505050505050565b600080611685836109ec565b8054909150610100900460ff16156116a1575460ff1692915050565b60006116ac84610a25565b825481151561ffff1990911617610100179092555092915050565b8715611772576000876001600160a01b03168960405160006040518083038185875af1925050503d806000811461171a576040519150601f19603f3d011682016040523d82523d6000602084013e61171f565b606091505b50509050806117705760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c65646044820152606401610527565b505b851561181d576000856001600160a01b03168760405160006040518083038185875af1925050503d80600081146117c5576040519150601f19603f3d011682016040523d82523d6000602084013e6117ca565b606091505b505090508061181b5760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c656400006044820152606401610527565b505b83156118c0576000836001600160a01b03168560405160006040518083038185875af1925050503d8060008114611870576040519150601f19603f3d011682016040523d82523d6000602084013e611875565b606091505b50509050806118be5760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b6044820152606401610527565b505b811561196b576000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114611913576040519150601f19603f3d011682016040523d82523d6000602084013e611918565b606091505b50509050806119695760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c6564006044820152606401610527565b505b5050505050505050565b6001600160a01b038116811461198a57600080fd5b50565b803561199881611975565b919050565b6000602082840312156119af57600080fd5b81356104a781611975565b60008083601f8401126119cc57600080fd5b5081356001600160401b038111156119e357600080fd5b6020830191508360208260051b85010111156119fe57600080fd5b9250929050565b60008060008060008060008060008060c08b8d031215611a2457600080fd5b8a359950611a3460208c0161198d565b985060408b01356001600160401b0380821115611a5057600080fd5b611a5c8e838f016119ba565b909a50985060608d0135915080821115611a7557600080fd5b611a818e838f016119ba565b909850965060808d0135915080821115611a9a57600080fd5b611aa68e838f016119ba565b909650945060a08d0135915080821115611abf57600080fd5b50611acc8d828e016119ba565b915080935050809150509295989b9194979a5092959850565b60008060008060008060c08789031215611afe57600080fd5b8635611b0981611975565b9550602087013594506040870135611b2081611975565b93506060870135611b3081611975565b92506080870135915060a0870135611b4781611975565b809150509295509295509295565b60008060008060808587031215611b6b57600080fd5b843593506020850135611b7d81611975565b92506040850135611b8d81611975565b9396929550929360600135925050565b60008060408385031215611bb057600080fd5b823591506020830135611bc281611975565b809150509250929050565b600080600060608486031215611be257600080fd5b833592506020840135611bf481611975565b915060408401356001600160f81b0381168114611c1057600080fd5b809150509250925092565b60008060008060008060808789031215611c3457600080fd5b863595506020870135611c4681611975565b945060408701356001600160401b0380821115611c6257600080fd5b611c6e8a838b016119ba565b90965094506060890135915080821115611c8757600080fd5b50611c9489828a016119ba565b979a9699509497509295939492505050565b600080600080600060a08688031215611cbe57600080fd5b8535611cc981611975565b9450602086013593506040860135611ce081611975565b92506060860135611cf081611975565b949793965091946080013592915050565b600080600060608486031215611d1657600080fd5b833592506020840135611d2881611975565b9150604084013562ffffff81168114611c1057600080fd5b60005b83811015611d5b578181015183820152602001611d43565b50506000910152565b60008151808452611d7c816020860160208601611d40565b601f01601f19169290920160200192915050565b6020815260006107e36020830184611d64565b8415158152836020820152608060408201526000611dc46080830185611d64565b905060018060a01b038316606083015295945050505050565b8051801515811461199857600080fd5b600060208284031215611dff57600080fd5b6107e382611ddd565b600060208284031215611e1a57600080fd5b5051919050565b60008251611e33818460208701611d40565b9190910192915050565b60208082526017908201527613585e081a5b9d9bd8d85d1a5bdb9cc81c995858da1959604a1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600082611ea157634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611eb857600080fd5b81516104a781611975565b818103818111156107e6576107e6611e6e565b60208082526021908201527f546f6b656e486f6c6465724c69623a20617272617973206e6571206c656e67746040820152600d60fb1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6040808252810184905260008560608301825b87811015611f70578235611f5381611975565b6001600160a01b0316825260209283019290910190600101611f40565b5083810360208501528481526001600160fb1b03851115611f9057600080fd5b8460051b915081866020830137016020019695505050505050565b602080825260179082015276496e76616c6964206d617820696e766f636174696f6e7360481b604082015260600190565b600080600080600080600080610100898b031215611ff957600080fd5b88519750602089015161200b81611975565b60408a015160608b0151919850965061202381611975565b60808a015160a08b0151919650945061203b81611975565b60c08a015160e08b0151919450925061205381611975565b809150509295985092959890939650565b60008060008060008060c0878903121561207d57600080fd5b86519550602087015161208f81611975565b6040880151606089015191965094506120a781611975565b608088015160a08901519194509250611b4781611975565b808201808211156107e6576107e6611e6e565b60008060008060008060c087890312156120eb57600080fd5b865195506020870151945061210260408801611ddd565b935061211060608801611ddd565b92506080870151915061212560a08801611ddd565b9050929550929550929556fea2646970667358221220d3f7d15c9bcbf61326924c1e353114251c694f5ea7c0922cd69100593ebe1ee464736f6c63430008130033",
1089
598
  "linkReferences": {},
1090
599
  "deployedLinkReferences": {}
1091
600
  }