@artblocks/contracts 0.0.1 → 1.0.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 (113) hide show
  1. package/README.md +27 -2
  2. package/artifacts/contracts/archive/GenArt721CoreV0.sol/Address.json +10 -0
  3. package/artifacts/contracts/archive/GenArt721CoreV0.sol/Counters.json +10 -0
  4. package/artifacts/contracts/archive/GenArt721CoreV0.sol/CustomERC721Metadata.json +425 -0
  5. package/artifacts/contracts/archive/GenArt721CoreV0.sol/ERC165.json +38 -0
  6. package/artifacts/contracts/archive/GenArt721CoreV0.sol/ERC721.json +322 -0
  7. package/artifacts/contracts/archive/GenArt721CoreV0.sol/ERC721Enumerable.json +384 -0
  8. package/artifacts/contracts/archive/GenArt721CoreV0.sol/ERC721ReceiverMock.json +101 -0
  9. package/artifacts/contracts/archive/GenArt721CoreV0.sol/GenArt721.json +1528 -0
  10. package/artifacts/contracts/archive/GenArt721CoreV0.sol/IERC165.json +32 -0
  11. package/artifacts/contracts/archive/GenArt721CoreV0.sol/IERC721.json +316 -0
  12. package/artifacts/contracts/archive/GenArt721CoreV0.sol/IERC721Enumerable.json +378 -0
  13. package/artifacts/contracts/archive/GenArt721CoreV0.sol/IERC721Receiver.json +47 -0
  14. package/artifacts/contracts/archive/GenArt721CoreV0.sol/SafeMath.json +10 -0
  15. package/artifacts/contracts/archive/GenArt721CoreV0.sol/Strings.json +10 -0
  16. package/artifacts/contracts/archive/GenArt721CoreV1.sol/Address.json +10 -0
  17. package/artifacts/contracts/archive/GenArt721CoreV1.sol/Counters.json +10 -0
  18. package/artifacts/contracts/archive/GenArt721CoreV1.sol/CustomERC721Metadata.json +425 -0
  19. package/artifacts/contracts/archive/GenArt721CoreV1.sol/ERC165.json +38 -0
  20. package/artifacts/contracts/archive/GenArt721CoreV1.sol/ERC721.json +322 -0
  21. package/artifacts/contracts/archive/GenArt721CoreV1.sol/ERC721Enumerable.json +384 -0
  22. package/artifacts/contracts/archive/GenArt721CoreV1.sol/GenArt721Core.json +1773 -0
  23. package/artifacts/contracts/archive/GenArt721CoreV1.sol/IERC165.json +32 -0
  24. package/artifacts/contracts/archive/GenArt721CoreV1.sol/IERC721.json +316 -0
  25. package/artifacts/contracts/archive/GenArt721CoreV1.sol/IERC721Enumerable.json +378 -0
  26. package/artifacts/contracts/archive/GenArt721CoreV1.sol/IERC721Receiver.json +47 -0
  27. package/artifacts/contracts/archive/GenArt721CoreV1.sol/Randomizer.json +26 -0
  28. package/artifacts/contracts/archive/GenArt721CoreV1.sol/SafeMath.json +10 -0
  29. package/artifacts/contracts/archive/GenArt721CoreV1.sol/Strings.json +10 -0
  30. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV0.sol/MinterDAExpV0.json +575 -0
  31. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV1.sol/MinterDAExpV1.json +463 -0
  32. package/artifacts/contracts/{minter-suite → archive/minter-suite}/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +3 -3
  33. package/artifacts/contracts/{minter-suite → archive/minter-suite}/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +3 -3
  34. package/artifacts/contracts/{minter-suite → archive/minter-suite}/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +15 -15
  35. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV0.sol/MinterDALinV0.json +551 -0
  36. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV1.sol/MinterDALinV1.json +439 -0
  37. package/artifacts/contracts/{minter-suite → archive/minter-suite}/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +3 -3
  38. package/artifacts/contracts/{minter-suite → archive/minter-suite}/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +3 -3
  39. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV0.sol/MinterHolderV0.json +622 -0
  40. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol/MinterHolderV1.json +719 -0
  41. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +794 -0
  42. package/artifacts/contracts/{minter-suite → archive/minter-suite}/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +3 -3
  43. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV0.sol/MinterMerkleV0.json +873 -0
  44. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol/MinterMerkleV1.json +932 -0
  45. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol/MinterMerkleV2.json +984 -0
  46. package/artifacts/contracts/{minter-suite → archive/minter-suite}/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +3 -3
  47. package/artifacts/contracts/{minter-suite → archive/minter-suite}/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +3 -3
  48. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV0.sol/MinterSetPriceV0.json +400 -0
  49. package/artifacts/contracts/{minter-suite/Minters/MinterSetPrice/deprecated → archive/minter-suite/Minters/MinterSetPrice}/MinterSetPriceV1.sol/MinterSetPriceV1.json +3 -3
  50. package/artifacts/contracts/{minter-suite → archive/minter-suite}/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +3 -3
  51. package/artifacts/contracts/{minter-suite → archive/minter-suite}/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +3 -3
  52. package/artifacts/contracts/{minter-suite/Minters/MinterSetPriceERC20/deprecated → archive/minter-suite/Minters/MinterSetPriceERC20}/MinterSetPriceERC20V0.sol/MinterSetPriceERC20V0.json +3 -3
  53. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol/MinterSetPriceERC20V1.json +349 -0
  54. package/artifacts/contracts/{minter-suite → archive/minter-suite}/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +3 -3
  55. package/artifacts/contracts/{minter-suite → archive/minter-suite}/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +3 -3
  56. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDAExpSettlementV0.sol/IFilteredMinterDAExpSettlementV0.json +12 -12
  57. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDAExpSettlement_Mixin.sol/IFilteredMinterDAExpSettlement_Mixin.json +161 -0
  58. package/artifacts/contracts/interfaces/0.8.x/IMinterBaseV0.sol/IMinterBaseV0.json +24 -0
  59. package/artifacts/contracts/interfaces/0.8.x/IMintingAPICoreV0.sol/IMintingAPICoreV0.json +185 -0
  60. package/artifacts/contracts/interfaces/0.8.x/IMintingAPIMinterV0.sol/IMintingAPIMinterV0.json +88 -0
  61. package/artifacts/contracts/minter-suite/Minters/MinterBase_v0_1_1.sol/MinterBase.json +24 -0
  62. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV1.sol/MinterDAExpSettlementV1.json +1066 -0
  63. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV4.sol/MinterDAExpV4.json +869 -0
  64. package/artifacts/contracts/minter-suite/Minters/MinterDALinV4.sol/MinterDALinV4.json +845 -0
  65. package/artifacts/contracts/minter-suite/Minters/MinterHolderV4.sol/MinterHolderV4.json +1113 -0
  66. package/artifacts/contracts/minter-suite/Minters/MinterMerkleV5.sol/MinterMerkleV5.json +1052 -0
  67. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +755 -0
  68. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV4.sol/MinterSetPriceV4.json +684 -0
  69. package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +1817 -0
  70. package/contracts/archive/GenArt721CoreV0.sol +1621 -0
  71. package/contracts/archive/GenArt721CoreV1.sol +1577 -0
  72. package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV0.sol +503 -0
  73. package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV1.sol +442 -0
  74. package/contracts/{minter-suite → archive/minter-suite}/Minters/MinterDAExp/MinterDAExpV2.sol +3 -3
  75. package/contracts/{minter-suite → archive/minter-suite}/Minters/MinterDAExp/MinterDAExpV3.sol +3 -3
  76. package/contracts/{minter-suite → archive/minter-suite}/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol +3 -3
  77. package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV0.sol +450 -0
  78. package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV1.sol +406 -0
  79. package/contracts/{minter-suite → archive/minter-suite}/Minters/MinterDALin/MinterDALinV2.sol +3 -3
  80. package/contracts/{minter-suite → archive/minter-suite}/Minters/MinterDALin/MinterDALinV3.sol +3 -3
  81. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV0.sol +540 -0
  82. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol +648 -0
  83. package/contracts/{minter-suite → archive/minter-suite}/Minters/MinterHolder/MinterHolderV2.sol +6 -6
  84. package/contracts/{minter-suite → archive/minter-suite}/Minters/MinterHolder/MinterHolderV3.sol +4 -4
  85. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV0.sol +523 -0
  86. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol +602 -0
  87. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol +679 -0
  88. package/contracts/{minter-suite → archive/minter-suite}/Minters/MinterMerkle/MinterMerkleV3.sol +4 -4
  89. package/contracts/{minter-suite → archive/minter-suite}/Minters/MinterMerkle/MinterMerkleV4.sol +4 -4
  90. package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV0.sol +333 -0
  91. package/contracts/{minter-suite/Minters/MinterSetPrice/deprecated → archive/minter-suite/Minters/MinterSetPrice}/MinterSetPriceV1.sol +0 -0
  92. package/contracts/{minter-suite → archive/minter-suite}/Minters/MinterSetPrice/MinterSetPriceV2.sol +3 -3
  93. package/contracts/{minter-suite → archive/minter-suite}/Minters/MinterSetPrice/MinterSetPriceV3.sol +3 -3
  94. package/contracts/{minter-suite/Minters/MinterSetPriceERC20/deprecated → archive/minter-suite/Minters/MinterSetPriceERC20}/MinterSetPriceERC20V0.sol +0 -0
  95. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol +411 -0
  96. package/contracts/{minter-suite → archive/minter-suite}/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol +3 -3
  97. package/contracts/{minter-suite → archive/minter-suite}/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol +3 -3
  98. package/contracts/interfaces/0.8.x/IFilteredMinterDAExpSettlementV0.sol +4 -53
  99. package/contracts/interfaces/0.8.x/IFilteredMinterDAExpSettlement_Mixin.sol +62 -0
  100. package/contracts/interfaces/0.8.x/IMinterBaseV0.sol +20 -0
  101. package/contracts/interfaces/0.8.x/IMintingAPICoreV0.sol +62 -0
  102. package/contracts/interfaces/0.8.x/IMintingAPIMinterV0.sol +31 -0
  103. package/contracts/minter-suite/Minters/MinterBase_v0_1_1.sol +293 -0
  104. package/contracts/minter-suite/Minters/MinterDAExpSettlementV1.sol +1026 -0
  105. package/contracts/minter-suite/Minters/MinterDAExpV4.sol +572 -0
  106. package/contracts/minter-suite/Minters/MinterDALinV4.sol +525 -0
  107. package/contracts/minter-suite/Minters/MinterHolderV4.sol +752 -0
  108. package/contracts/minter-suite/Minters/MinterMerkleV5.sol +688 -0
  109. package/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol +451 -0
  110. package/contracts/minter-suite/Minters/MinterSetPriceV4.sol +352 -0
  111. package/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol +1979 -0
  112. package/package.json +1 -1
  113. package/artifacts/contracts/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +0 -794
@@ -0,0 +1,1113 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "MinterHolderV4",
4
+ "sourceName": "contracts/minter-suite/Minters/MinterHolderV4.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_genArt721Address",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "_minterFilter",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "address",
20
+ "name": "_delegationRegistryAddress",
21
+ "type": "address"
22
+ }
23
+ ],
24
+ "stateMutability": "nonpayable",
25
+ "type": "constructor"
26
+ },
27
+ {
28
+ "anonymous": false,
29
+ "inputs": [
30
+ {
31
+ "indexed": true,
32
+ "internalType": "uint256",
33
+ "name": "_projectId",
34
+ "type": "uint256"
35
+ },
36
+ {
37
+ "indexed": false,
38
+ "internalType": "address[]",
39
+ "name": "_ownedNFTAddresses",
40
+ "type": "address[]"
41
+ },
42
+ {
43
+ "indexed": false,
44
+ "internalType": "uint256[]",
45
+ "name": "_ownedNFTProjectIds",
46
+ "type": "uint256[]"
47
+ }
48
+ ],
49
+ "name": "AllowedHoldersOfProjects",
50
+ "type": "event"
51
+ },
52
+ {
53
+ "anonymous": false,
54
+ "inputs": [
55
+ {
56
+ "indexed": true,
57
+ "internalType": "uint256",
58
+ "name": "_projectId",
59
+ "type": "uint256"
60
+ },
61
+ {
62
+ "indexed": false,
63
+ "internalType": "bytes32",
64
+ "name": "_key",
65
+ "type": "bytes32"
66
+ }
67
+ ],
68
+ "name": "ConfigKeyRemoved",
69
+ "type": "event"
70
+ },
71
+ {
72
+ "anonymous": false,
73
+ "inputs": [
74
+ {
75
+ "indexed": true,
76
+ "internalType": "uint256",
77
+ "name": "_projectId",
78
+ "type": "uint256"
79
+ },
80
+ {
81
+ "indexed": false,
82
+ "internalType": "bytes32",
83
+ "name": "_key",
84
+ "type": "bytes32"
85
+ },
86
+ {
87
+ "indexed": false,
88
+ "internalType": "uint256",
89
+ "name": "_value",
90
+ "type": "uint256"
91
+ }
92
+ ],
93
+ "name": "ConfigValueAddedToSet",
94
+ "type": "event"
95
+ },
96
+ {
97
+ "anonymous": false,
98
+ "inputs": [
99
+ {
100
+ "indexed": true,
101
+ "internalType": "uint256",
102
+ "name": "_projectId",
103
+ "type": "uint256"
104
+ },
105
+ {
106
+ "indexed": false,
107
+ "internalType": "bytes32",
108
+ "name": "_key",
109
+ "type": "bytes32"
110
+ },
111
+ {
112
+ "indexed": false,
113
+ "internalType": "address",
114
+ "name": "_value",
115
+ "type": "address"
116
+ }
117
+ ],
118
+ "name": "ConfigValueAddedToSet",
119
+ "type": "event"
120
+ },
121
+ {
122
+ "anonymous": false,
123
+ "inputs": [
124
+ {
125
+ "indexed": true,
126
+ "internalType": "uint256",
127
+ "name": "_projectId",
128
+ "type": "uint256"
129
+ },
130
+ {
131
+ "indexed": false,
132
+ "internalType": "bytes32",
133
+ "name": "_key",
134
+ "type": "bytes32"
135
+ },
136
+ {
137
+ "indexed": false,
138
+ "internalType": "bytes32",
139
+ "name": "_value",
140
+ "type": "bytes32"
141
+ }
142
+ ],
143
+ "name": "ConfigValueAddedToSet",
144
+ "type": "event"
145
+ },
146
+ {
147
+ "anonymous": false,
148
+ "inputs": [
149
+ {
150
+ "indexed": true,
151
+ "internalType": "uint256",
152
+ "name": "_projectId",
153
+ "type": "uint256"
154
+ },
155
+ {
156
+ "indexed": false,
157
+ "internalType": "bytes32",
158
+ "name": "_key",
159
+ "type": "bytes32"
160
+ },
161
+ {
162
+ "indexed": false,
163
+ "internalType": "uint256",
164
+ "name": "_value",
165
+ "type": "uint256"
166
+ }
167
+ ],
168
+ "name": "ConfigValueRemovedFromSet",
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": false,
182
+ "internalType": "bytes32",
183
+ "name": "_key",
184
+ "type": "bytes32"
185
+ },
186
+ {
187
+ "indexed": false,
188
+ "internalType": "address",
189
+ "name": "_value",
190
+ "type": "address"
191
+ }
192
+ ],
193
+ "name": "ConfigValueRemovedFromSet",
194
+ "type": "event"
195
+ },
196
+ {
197
+ "anonymous": false,
198
+ "inputs": [
199
+ {
200
+ "indexed": true,
201
+ "internalType": "uint256",
202
+ "name": "_projectId",
203
+ "type": "uint256"
204
+ },
205
+ {
206
+ "indexed": false,
207
+ "internalType": "bytes32",
208
+ "name": "_key",
209
+ "type": "bytes32"
210
+ },
211
+ {
212
+ "indexed": false,
213
+ "internalType": "bytes32",
214
+ "name": "_value",
215
+ "type": "bytes32"
216
+ }
217
+ ],
218
+ "name": "ConfigValueRemovedFromSet",
219
+ "type": "event"
220
+ },
221
+ {
222
+ "anonymous": false,
223
+ "inputs": [
224
+ {
225
+ "indexed": true,
226
+ "internalType": "uint256",
227
+ "name": "_projectId",
228
+ "type": "uint256"
229
+ },
230
+ {
231
+ "indexed": false,
232
+ "internalType": "bytes32",
233
+ "name": "_key",
234
+ "type": "bytes32"
235
+ },
236
+ {
237
+ "indexed": false,
238
+ "internalType": "bool",
239
+ "name": "_value",
240
+ "type": "bool"
241
+ }
242
+ ],
243
+ "name": "ConfigValueSet",
244
+ "type": "event"
245
+ },
246
+ {
247
+ "anonymous": false,
248
+ "inputs": [
249
+ {
250
+ "indexed": true,
251
+ "internalType": "uint256",
252
+ "name": "_projectId",
253
+ "type": "uint256"
254
+ },
255
+ {
256
+ "indexed": false,
257
+ "internalType": "bytes32",
258
+ "name": "_key",
259
+ "type": "bytes32"
260
+ },
261
+ {
262
+ "indexed": false,
263
+ "internalType": "uint256",
264
+ "name": "_value",
265
+ "type": "uint256"
266
+ }
267
+ ],
268
+ "name": "ConfigValueSet",
269
+ "type": "event"
270
+ },
271
+ {
272
+ "anonymous": false,
273
+ "inputs": [
274
+ {
275
+ "indexed": true,
276
+ "internalType": "uint256",
277
+ "name": "_projectId",
278
+ "type": "uint256"
279
+ },
280
+ {
281
+ "indexed": false,
282
+ "internalType": "bytes32",
283
+ "name": "_key",
284
+ "type": "bytes32"
285
+ },
286
+ {
287
+ "indexed": false,
288
+ "internalType": "address",
289
+ "name": "_value",
290
+ "type": "address"
291
+ }
292
+ ],
293
+ "name": "ConfigValueSet",
294
+ "type": "event"
295
+ },
296
+ {
297
+ "anonymous": false,
298
+ "inputs": [
299
+ {
300
+ "indexed": true,
301
+ "internalType": "uint256",
302
+ "name": "_projectId",
303
+ "type": "uint256"
304
+ },
305
+ {
306
+ "indexed": false,
307
+ "internalType": "bytes32",
308
+ "name": "_key",
309
+ "type": "bytes32"
310
+ },
311
+ {
312
+ "indexed": false,
313
+ "internalType": "bytes32",
314
+ "name": "_value",
315
+ "type": "bytes32"
316
+ }
317
+ ],
318
+ "name": "ConfigValueSet",
319
+ "type": "event"
320
+ },
321
+ {
322
+ "anonymous": false,
323
+ "inputs": [
324
+ {
325
+ "indexed": false,
326
+ "internalType": "address",
327
+ "name": "delegationRegistryAddress",
328
+ "type": "address"
329
+ }
330
+ ],
331
+ "name": "DelegationRegistryUpdated",
332
+ "type": "event"
333
+ },
334
+ {
335
+ "anonymous": false,
336
+ "inputs": [
337
+ {
338
+ "indexed": true,
339
+ "internalType": "uint256",
340
+ "name": "_projectId",
341
+ "type": "uint256"
342
+ },
343
+ {
344
+ "indexed": true,
345
+ "internalType": "uint256",
346
+ "name": "_pricePerTokenInWei",
347
+ "type": "uint256"
348
+ }
349
+ ],
350
+ "name": "PricePerTokenInWeiUpdated",
351
+ "type": "event"
352
+ },
353
+ {
354
+ "anonymous": false,
355
+ "inputs": [
356
+ {
357
+ "indexed": true,
358
+ "internalType": "uint256",
359
+ "name": "_projectId",
360
+ "type": "uint256"
361
+ },
362
+ {
363
+ "indexed": true,
364
+ "internalType": "address",
365
+ "name": "_currencyAddress",
366
+ "type": "address"
367
+ },
368
+ {
369
+ "indexed": false,
370
+ "internalType": "string",
371
+ "name": "_currencySymbol",
372
+ "type": "string"
373
+ }
374
+ ],
375
+ "name": "ProjectCurrencyInfoUpdated",
376
+ "type": "event"
377
+ },
378
+ {
379
+ "anonymous": false,
380
+ "inputs": [
381
+ {
382
+ "indexed": true,
383
+ "internalType": "uint256",
384
+ "name": "_projectId",
385
+ "type": "uint256"
386
+ },
387
+ {
388
+ "indexed": false,
389
+ "internalType": "uint256",
390
+ "name": "_maxInvocations",
391
+ "type": "uint256"
392
+ }
393
+ ],
394
+ "name": "ProjectMaxInvocationsLimitUpdated",
395
+ "type": "event"
396
+ },
397
+ {
398
+ "anonymous": false,
399
+ "inputs": [
400
+ {
401
+ "indexed": true,
402
+ "internalType": "uint256",
403
+ "name": "_projectId",
404
+ "type": "uint256"
405
+ },
406
+ {
407
+ "indexed": false,
408
+ "internalType": "bool",
409
+ "name": "_purchaseToDisabled",
410
+ "type": "bool"
411
+ }
412
+ ],
413
+ "name": "PurchaseToDisabledUpdated",
414
+ "type": "event"
415
+ },
416
+ {
417
+ "anonymous": false,
418
+ "inputs": [
419
+ {
420
+ "indexed": true,
421
+ "internalType": "address",
422
+ "name": "_NFTAddress",
423
+ "type": "address"
424
+ }
425
+ ],
426
+ "name": "RegisteredNFTAddress",
427
+ "type": "event"
428
+ },
429
+ {
430
+ "anonymous": false,
431
+ "inputs": [
432
+ {
433
+ "indexed": true,
434
+ "internalType": "uint256",
435
+ "name": "_projectId",
436
+ "type": "uint256"
437
+ },
438
+ {
439
+ "indexed": false,
440
+ "internalType": "address[]",
441
+ "name": "_ownedNFTAddresses",
442
+ "type": "address[]"
443
+ },
444
+ {
445
+ "indexed": false,
446
+ "internalType": "uint256[]",
447
+ "name": "_ownedNFTProjectIds",
448
+ "type": "uint256[]"
449
+ }
450
+ ],
451
+ "name": "RemovedHoldersOfProjects",
452
+ "type": "event"
453
+ },
454
+ {
455
+ "anonymous": false,
456
+ "inputs": [
457
+ {
458
+ "indexed": true,
459
+ "internalType": "address",
460
+ "name": "_NFTAddress",
461
+ "type": "address"
462
+ }
463
+ ],
464
+ "name": "UnregisteredNFTAddress",
465
+ "type": "event"
466
+ },
467
+ {
468
+ "inputs": [
469
+ {
470
+ "internalType": "uint256",
471
+ "name": "_projectId",
472
+ "type": "uint256"
473
+ },
474
+ {
475
+ "internalType": "address[]",
476
+ "name": "_ownedNFTAddresses",
477
+ "type": "address[]"
478
+ },
479
+ {
480
+ "internalType": "uint256[]",
481
+ "name": "_ownedNFTProjectIds",
482
+ "type": "uint256[]"
483
+ }
484
+ ],
485
+ "name": "allowHoldersOfProjects",
486
+ "outputs": [],
487
+ "stateMutability": "nonpayable",
488
+ "type": "function"
489
+ },
490
+ {
491
+ "inputs": [
492
+ {
493
+ "internalType": "uint256",
494
+ "name": "_projectId",
495
+ "type": "uint256"
496
+ },
497
+ {
498
+ "internalType": "address[]",
499
+ "name": "_ownedNFTAddressesAdd",
500
+ "type": "address[]"
501
+ },
502
+ {
503
+ "internalType": "uint256[]",
504
+ "name": "_ownedNFTProjectIdsAdd",
505
+ "type": "uint256[]"
506
+ },
507
+ {
508
+ "internalType": "address[]",
509
+ "name": "_ownedNFTAddressesRemove",
510
+ "type": "address[]"
511
+ },
512
+ {
513
+ "internalType": "uint256[]",
514
+ "name": "_ownedNFTProjectIdsRemove",
515
+ "type": "uint256[]"
516
+ }
517
+ ],
518
+ "name": "allowRemoveHoldersOfProjects",
519
+ "outputs": [],
520
+ "stateMutability": "nonpayable",
521
+ "type": "function"
522
+ },
523
+ {
524
+ "inputs": [
525
+ {
526
+ "internalType": "uint256",
527
+ "name": "",
528
+ "type": "uint256"
529
+ },
530
+ {
531
+ "internalType": "address",
532
+ "name": "",
533
+ "type": "address"
534
+ },
535
+ {
536
+ "internalType": "uint256",
537
+ "name": "",
538
+ "type": "uint256"
539
+ }
540
+ ],
541
+ "name": "allowedProjectHolders",
542
+ "outputs": [
543
+ {
544
+ "internalType": "bool",
545
+ "name": "",
546
+ "type": "bool"
547
+ }
548
+ ],
549
+ "stateMutability": "view",
550
+ "type": "function"
551
+ },
552
+ {
553
+ "inputs": [],
554
+ "name": "delegationRegistryAddress",
555
+ "outputs": [
556
+ {
557
+ "internalType": "address",
558
+ "name": "",
559
+ "type": "address"
560
+ }
561
+ ],
562
+ "stateMutability": "view",
563
+ "type": "function"
564
+ },
565
+ {
566
+ "inputs": [],
567
+ "name": "genArt721CoreAddress",
568
+ "outputs": [
569
+ {
570
+ "internalType": "address",
571
+ "name": "",
572
+ "type": "address"
573
+ }
574
+ ],
575
+ "stateMutability": "view",
576
+ "type": "function"
577
+ },
578
+ {
579
+ "inputs": [],
580
+ "name": "getNumRegisteredNFTAddresses",
581
+ "outputs": [
582
+ {
583
+ "internalType": "uint256",
584
+ "name": "",
585
+ "type": "uint256"
586
+ }
587
+ ],
588
+ "stateMutability": "view",
589
+ "type": "function"
590
+ },
591
+ {
592
+ "inputs": [
593
+ {
594
+ "internalType": "uint256",
595
+ "name": "_projectId",
596
+ "type": "uint256"
597
+ }
598
+ ],
599
+ "name": "getPriceInfo",
600
+ "outputs": [
601
+ {
602
+ "internalType": "bool",
603
+ "name": "isConfigured",
604
+ "type": "bool"
605
+ },
606
+ {
607
+ "internalType": "uint256",
608
+ "name": "tokenPriceInWei",
609
+ "type": "uint256"
610
+ },
611
+ {
612
+ "internalType": "string",
613
+ "name": "currencySymbol",
614
+ "type": "string"
615
+ },
616
+ {
617
+ "internalType": "address",
618
+ "name": "currencyAddress",
619
+ "type": "address"
620
+ }
621
+ ],
622
+ "stateMutability": "view",
623
+ "type": "function"
624
+ },
625
+ {
626
+ "inputs": [
627
+ {
628
+ "internalType": "uint256",
629
+ "name": "_index",
630
+ "type": "uint256"
631
+ }
632
+ ],
633
+ "name": "getRegisteredNFTAddressAt",
634
+ "outputs": [
635
+ {
636
+ "internalType": "address",
637
+ "name": "NFTAddress",
638
+ "type": "address"
639
+ }
640
+ ],
641
+ "stateMutability": "view",
642
+ "type": "function"
643
+ },
644
+ {
645
+ "inputs": [
646
+ {
647
+ "internalType": "uint256",
648
+ "name": "_projectId",
649
+ "type": "uint256"
650
+ },
651
+ {
652
+ "internalType": "address",
653
+ "name": "_ownedNFTAddress",
654
+ "type": "address"
655
+ },
656
+ {
657
+ "internalType": "uint256",
658
+ "name": "_ownedNFTTokenId",
659
+ "type": "uint256"
660
+ }
661
+ ],
662
+ "name": "isAllowlistedNFT",
663
+ "outputs": [
664
+ {
665
+ "internalType": "bool",
666
+ "name": "",
667
+ "type": "bool"
668
+ }
669
+ ],
670
+ "stateMutability": "view",
671
+ "type": "function"
672
+ },
673
+ {
674
+ "inputs": [],
675
+ "name": "isEngine",
676
+ "outputs": [
677
+ {
678
+ "internalType": "bool",
679
+ "name": "",
680
+ "type": "bool"
681
+ }
682
+ ],
683
+ "stateMutability": "view",
684
+ "type": "function"
685
+ },
686
+ {
687
+ "inputs": [
688
+ {
689
+ "internalType": "uint256",
690
+ "name": "_projectId",
691
+ "type": "uint256"
692
+ },
693
+ {
694
+ "internalType": "uint256",
695
+ "name": "_maxInvocations",
696
+ "type": "uint256"
697
+ }
698
+ ],
699
+ "name": "manuallyLimitProjectMaxInvocations",
700
+ "outputs": [],
701
+ "stateMutability": "nonpayable",
702
+ "type": "function"
703
+ },
704
+ {
705
+ "inputs": [],
706
+ "name": "minterFilterAddress",
707
+ "outputs": [
708
+ {
709
+ "internalType": "address",
710
+ "name": "",
711
+ "type": "address"
712
+ }
713
+ ],
714
+ "stateMutability": "view",
715
+ "type": "function"
716
+ },
717
+ {
718
+ "inputs": [],
719
+ "name": "minterType",
720
+ "outputs": [
721
+ {
722
+ "internalType": "string",
723
+ "name": "",
724
+ "type": "string"
725
+ }
726
+ ],
727
+ "stateMutability": "view",
728
+ "type": "function"
729
+ },
730
+ {
731
+ "inputs": [
732
+ {
733
+ "internalType": "uint256",
734
+ "name": "",
735
+ "type": "uint256"
736
+ }
737
+ ],
738
+ "name": "projectConfig",
739
+ "outputs": [
740
+ {
741
+ "internalType": "bool",
742
+ "name": "maxHasBeenInvoked",
743
+ "type": "bool"
744
+ },
745
+ {
746
+ "internalType": "bool",
747
+ "name": "priceIsConfigured",
748
+ "type": "bool"
749
+ },
750
+ {
751
+ "internalType": "uint24",
752
+ "name": "maxInvocations",
753
+ "type": "uint24"
754
+ },
755
+ {
756
+ "internalType": "uint256",
757
+ "name": "pricePerTokenInWei",
758
+ "type": "uint256"
759
+ }
760
+ ],
761
+ "stateMutability": "view",
762
+ "type": "function"
763
+ },
764
+ {
765
+ "inputs": [
766
+ {
767
+ "internalType": "uint256",
768
+ "name": "_projectId",
769
+ "type": "uint256"
770
+ }
771
+ ],
772
+ "name": "projectMaxHasBeenInvoked",
773
+ "outputs": [
774
+ {
775
+ "internalType": "bool",
776
+ "name": "",
777
+ "type": "bool"
778
+ }
779
+ ],
780
+ "stateMutability": "view",
781
+ "type": "function"
782
+ },
783
+ {
784
+ "inputs": [
785
+ {
786
+ "internalType": "uint256",
787
+ "name": "_projectId",
788
+ "type": "uint256"
789
+ }
790
+ ],
791
+ "name": "projectMaxInvocations",
792
+ "outputs": [
793
+ {
794
+ "internalType": "uint256",
795
+ "name": "",
796
+ "type": "uint256"
797
+ }
798
+ ],
799
+ "stateMutability": "view",
800
+ "type": "function"
801
+ },
802
+ {
803
+ "inputs": [
804
+ {
805
+ "internalType": "uint256",
806
+ "name": "_projectId",
807
+ "type": "uint256"
808
+ },
809
+ {
810
+ "internalType": "address",
811
+ "name": "_ownedNFTAddress",
812
+ "type": "address"
813
+ },
814
+ {
815
+ "internalType": "uint256",
816
+ "name": "_ownedNFTTokenId",
817
+ "type": "uint256"
818
+ }
819
+ ],
820
+ "name": "purchase",
821
+ "outputs": [
822
+ {
823
+ "internalType": "uint256",
824
+ "name": "tokenId",
825
+ "type": "uint256"
826
+ }
827
+ ],
828
+ "stateMutability": "payable",
829
+ "type": "function"
830
+ },
831
+ {
832
+ "inputs": [
833
+ {
834
+ "internalType": "uint256",
835
+ "name": "",
836
+ "type": "uint256"
837
+ }
838
+ ],
839
+ "name": "purchase",
840
+ "outputs": [
841
+ {
842
+ "internalType": "uint256",
843
+ "name": "",
844
+ "type": "uint256"
845
+ }
846
+ ],
847
+ "stateMutability": "payable",
848
+ "type": "function"
849
+ },
850
+ {
851
+ "inputs": [
852
+ {
853
+ "internalType": "address",
854
+ "name": "_to",
855
+ "type": "address"
856
+ },
857
+ {
858
+ "internalType": "uint256",
859
+ "name": "_projectId",
860
+ "type": "uint256"
861
+ },
862
+ {
863
+ "internalType": "address",
864
+ "name": "_ownedNFTAddress",
865
+ "type": "address"
866
+ },
867
+ {
868
+ "internalType": "uint256",
869
+ "name": "_ownedNFTTokenId",
870
+ "type": "uint256"
871
+ },
872
+ {
873
+ "internalType": "address",
874
+ "name": "_vault",
875
+ "type": "address"
876
+ }
877
+ ],
878
+ "name": "purchaseTo",
879
+ "outputs": [
880
+ {
881
+ "internalType": "uint256",
882
+ "name": "tokenId",
883
+ "type": "uint256"
884
+ }
885
+ ],
886
+ "stateMutability": "payable",
887
+ "type": "function"
888
+ },
889
+ {
890
+ "inputs": [
891
+ {
892
+ "internalType": "address",
893
+ "name": "",
894
+ "type": "address"
895
+ },
896
+ {
897
+ "internalType": "uint256",
898
+ "name": "",
899
+ "type": "uint256"
900
+ }
901
+ ],
902
+ "name": "purchaseTo",
903
+ "outputs": [
904
+ {
905
+ "internalType": "uint256",
906
+ "name": "",
907
+ "type": "uint256"
908
+ }
909
+ ],
910
+ "stateMutability": "payable",
911
+ "type": "function"
912
+ },
913
+ {
914
+ "inputs": [
915
+ {
916
+ "internalType": "address",
917
+ "name": "_to",
918
+ "type": "address"
919
+ },
920
+ {
921
+ "internalType": "uint256",
922
+ "name": "_projectId",
923
+ "type": "uint256"
924
+ },
925
+ {
926
+ "internalType": "address",
927
+ "name": "_ownedNFTAddress",
928
+ "type": "address"
929
+ },
930
+ {
931
+ "internalType": "uint256",
932
+ "name": "_ownedNFTTokenId",
933
+ "type": "uint256"
934
+ }
935
+ ],
936
+ "name": "purchaseTo",
937
+ "outputs": [
938
+ {
939
+ "internalType": "uint256",
940
+ "name": "tokenId",
941
+ "type": "uint256"
942
+ }
943
+ ],
944
+ "stateMutability": "payable",
945
+ "type": "function"
946
+ },
947
+ {
948
+ "inputs": [
949
+ {
950
+ "internalType": "address",
951
+ "name": "_to",
952
+ "type": "address"
953
+ },
954
+ {
955
+ "internalType": "uint256",
956
+ "name": "_projectId",
957
+ "type": "uint256"
958
+ },
959
+ {
960
+ "internalType": "address",
961
+ "name": "_ownedNFTAddress",
962
+ "type": "address"
963
+ },
964
+ {
965
+ "internalType": "uint256",
966
+ "name": "_ownedNFTTokenId",
967
+ "type": "uint256"
968
+ },
969
+ {
970
+ "internalType": "address",
971
+ "name": "_vault",
972
+ "type": "address"
973
+ }
974
+ ],
975
+ "name": "purchaseTo_dlc",
976
+ "outputs": [
977
+ {
978
+ "internalType": "uint256",
979
+ "name": "tokenId",
980
+ "type": "uint256"
981
+ }
982
+ ],
983
+ "stateMutability": "payable",
984
+ "type": "function"
985
+ },
986
+ {
987
+ "inputs": [
988
+ {
989
+ "internalType": "uint256",
990
+ "name": "_projectId",
991
+ "type": "uint256"
992
+ },
993
+ {
994
+ "internalType": "address",
995
+ "name": "_ownedNFTAddress",
996
+ "type": "address"
997
+ },
998
+ {
999
+ "internalType": "uint256",
1000
+ "name": "_ownedNFTTokenId",
1001
+ "type": "uint256"
1002
+ }
1003
+ ],
1004
+ "name": "purchase_nnf",
1005
+ "outputs": [
1006
+ {
1007
+ "internalType": "uint256",
1008
+ "name": "tokenId",
1009
+ "type": "uint256"
1010
+ }
1011
+ ],
1012
+ "stateMutability": "payable",
1013
+ "type": "function"
1014
+ },
1015
+ {
1016
+ "inputs": [
1017
+ {
1018
+ "internalType": "address",
1019
+ "name": "_NFTAddress",
1020
+ "type": "address"
1021
+ }
1022
+ ],
1023
+ "name": "registerNFTAddress",
1024
+ "outputs": [],
1025
+ "stateMutability": "nonpayable",
1026
+ "type": "function"
1027
+ },
1028
+ {
1029
+ "inputs": [
1030
+ {
1031
+ "internalType": "uint256",
1032
+ "name": "_projectId",
1033
+ "type": "uint256"
1034
+ },
1035
+ {
1036
+ "internalType": "address[]",
1037
+ "name": "_ownedNFTAddresses",
1038
+ "type": "address[]"
1039
+ },
1040
+ {
1041
+ "internalType": "uint256[]",
1042
+ "name": "_ownedNFTProjectIds",
1043
+ "type": "uint256[]"
1044
+ }
1045
+ ],
1046
+ "name": "removeHoldersOfProjects",
1047
+ "outputs": [],
1048
+ "stateMutability": "nonpayable",
1049
+ "type": "function"
1050
+ },
1051
+ {
1052
+ "inputs": [
1053
+ {
1054
+ "internalType": "uint256",
1055
+ "name": "_projectId",
1056
+ "type": "uint256"
1057
+ }
1058
+ ],
1059
+ "name": "setProjectMaxInvocations",
1060
+ "outputs": [],
1061
+ "stateMutability": "nonpayable",
1062
+ "type": "function"
1063
+ },
1064
+ {
1065
+ "inputs": [
1066
+ {
1067
+ "internalType": "uint256",
1068
+ "name": "_projectId",
1069
+ "type": "uint256"
1070
+ }
1071
+ ],
1072
+ "name": "togglePurchaseToDisabled",
1073
+ "outputs": [],
1074
+ "stateMutability": "view",
1075
+ "type": "function"
1076
+ },
1077
+ {
1078
+ "inputs": [
1079
+ {
1080
+ "internalType": "address",
1081
+ "name": "_NFTAddress",
1082
+ "type": "address"
1083
+ }
1084
+ ],
1085
+ "name": "unregisterNFTAddress",
1086
+ "outputs": [],
1087
+ "stateMutability": "nonpayable",
1088
+ "type": "function"
1089
+ },
1090
+ {
1091
+ "inputs": [
1092
+ {
1093
+ "internalType": "uint256",
1094
+ "name": "_projectId",
1095
+ "type": "uint256"
1096
+ },
1097
+ {
1098
+ "internalType": "uint256",
1099
+ "name": "_pricePerTokenInWei",
1100
+ "type": "uint256"
1101
+ }
1102
+ ],
1103
+ "name": "updatePricePerTokenInWei",
1104
+ "outputs": [],
1105
+ "stateMutability": "nonpayable",
1106
+ "type": "function"
1107
+ }
1108
+ ],
1109
+ "bytecode": "0x6101606040523480156200001257600080fd5b5060405162002bc938038062002bc9833981016040819052620000359162000322565b600160005582620000468162000184565b1515608052506001600160a01b0383811660e081905261010052811660a08190526040519081527f836360d1b094a7de3c3eab3d1185f3a5939467c23d4a12709dbdbf8c8d7e2f3b9060200160405180910390a16001600160a01b0380821660c052828116610120819052610140819052604080516392a10f8360e01b81529051928616926392a10f839160048082019260209290919082900301816000875af1158015620000f9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200011f91906200036c565b6001600160a01b0316146200017b5760405162461bcd60e51b815260206004820152601860248201527f496c6c6567616c20636f6e74726163742070616972696e67000000000000000060448201526064015b60405180910390fd5b505050620003c2565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03861690620001e890859062000391565b6000604051808303816000865af19150503d806000811462000227576040519150601f19603f3d011682016040523d82523d6000602084013e6200022c565b606091505b5091509150816200028e5760405162461bcd60e51b815260206004820152602560248201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604482015264185a5b195960da1b606482015260840162000172565b805160c0819003620002a65750600095945050505050565b8061010003620002bc5750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c69742062797465730000604482015260640162000172565b80516001600160a01b03811681146200031d57600080fd5b919050565b6000806000606084860312156200033857600080fd5b620003438462000305565b9250620003536020850162000305565b9150620003636040850162000305565b90509250925092565b6000602082840312156200037f57600080fd5b6200038a8262000305565b9392505050565b6000825160005b81811015620003b4576020818601810151858301520162000398565b506000920191825250919050565b60805160a05160c05160e05161010051610120516101405161275862000471600039600061093c01526000610572015260008181610b0301528181610bf701528181610cbd01528181610eee01528181610fe8015281816110c9015281816111bd015281816112cb0152818161159601526118080152600081816103d90152818161081b0152610a960152600061084d0152600061048d01526000818161053e0152611a2701526127586000f3fe60806040526004361061015e5760003560e01c8063891407c0116100c7578063891407c01461037357806390d355b71461038657806392a10f83146103c757806399c0bbdc14610413578063a647300c14610428578063b00abb6414610448578063bc8ff0011461045b578063bf5bf5f81461047b578063c71b1b71146104af578063db6921b21461052c578063dd85582f14610560578063e2849bd514610594578063e9d1e8ac146105b4578063efef39a1146105fb578063f7bd4b881461060957600080fd5b806111cd14610163578061aa52146101895780630ed79c4e1461019c5780631607c995146101be57806328c5c4e5146101de57806340d1397e146101f1578063462add46146102115780634fd1b70e146102515780634ff5759d1461027157806356690aaf14610291578063650e5d6d146101895780636cb9b7ff146102c9578063774159c6146102e95780637994db0914610353575b600080fd5b610176610171366004611f82565b610629565b6040519081526020015b60405180910390f35b610176610197366004611fe1565b610acb565b3480156101a857600080fd5b506101bc6101b7366004612019565b610ae3565b005b3480156101ca57600080fd5b506101bc6101d9366004612036565b610bdf565b6101766101ec366004611f82565b610ebd565b3480156101fd57600080fd5b506101bc61020c366004612058565b610ed6565b34801561021d57600080fd5b5061024161022c366004612058565b60009081526001602052604090205460ff1690565b6040519015158152602001610180565b34801561025d57600080fd5b506101bc61026c3660046121a9565b610fd0565b34801561027d57600080fd5b506101bc61028c366004612019565b6110a9565b34801561029d57600080fd5b506101766102ac366004612058565b60009081526001602052604090205462010000900462ffffff1690565b3480156102d557600080fd5b506101bc6102e4366004612036565b6111a5565b3480156102f557600080fd5b50610343610304366004612058565b600090815260016020818152604080842080549301548151808301909252600382526208aa8960eb1b9282019290925261010090920460ff1693909290565b60405161018094939291906122a5565b34801561035f57600080fd5b506101bc61036e3660046122df565b6112b3565b61017661038136600461234b565b611527565b34801561039257600080fd5b506102416103a1366004611fe1565b600460209081526000938452604080852082529284528284209052825290205460ff1681565b3480156103d357600080fd5b506103fb7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610180565b34801561041f57600080fd5b5061017661156d565b34801561043457600080fd5b506101bc6104433660046122df565b61157e565b610176610456366004612377565b611774565b34801561046757600080fd5b506103fb610476366004612058565b61178d565b34801561048757600080fd5b506103fb7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104bb57600080fd5b506104ff6104ca366004612058565b6001602081905260009182526040909120805491015460ff808316926101008104909116916201000090910462ffffff169084565b60405161018094939291909315158452911515602084015262ffffff166040830152606082015260800190565b34801561053857600080fd5b506102417f000000000000000000000000000000000000000000000000000000000000000081565b34801561056c57600080fd5b506103fb7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105a057600080fd5b506102416105af366004611fe1565b6117a0565b3480156105c057600080fd5b506105ee6040518060400160405280600e81526020016d135a5b9d195c921bdb19195c958d60921b81525081565b60405161018091906123bf565b610176610381366004612058565b34801561061557600080fd5b506101bc610624366004612058565b6117e5565b60006002600054036106825760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000908155858152600160205260409020805460ff16156106f55760405162461bcd60e51b815260206004820152602560248201527f4d6178696d756d206e756d626572206f6620696e766f636174696f6e732072656044820152641858da195960da1b6064820152608401610679565b60018101543481111561074a5760405162461bcd60e51b815260206004820181905260248201527f4d7573742073656e64206d696e696d756d2076616c756520746f206d696e74216044820152606401610679565b8154610100900460ff166107975760405162461bcd60e51b8152602060048201526014602482015273141c9a58d9481b9bdd0818dbdb999a59dd5c995960621b6044820152606401610679565b6107a28787876117a0565b6107e65760405162461bcd60e51b81526020600482015260156024820152744f6e6c7920616c6c6f776c6973746564204e46547360581b6044820152606401610679565b336001600160a01b0385161561090e57604051631574d39f60e31b81523360048201526001600160a01b0386811660248301527f000000000000000000000000000000000000000000000000000000000000000081166044830152606482018890526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aba69cf890608401602060405180830381865afa158015610896573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ba91906123e7565b9050806109095760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642064656c65676174652d7661756c742070616972696e6700006044820152606401610679565b859150505b604051630d4d151360e01b81526001600160a01b038a81166004830152602482018a905282811660448301527f00000000000000000000000000000000000000000000000000000000000000001690630d4d1513906064016020604051808303816000875af1158015610985573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a99190612402565b835490945060001962ffffff6201000090920482160116620f42408506036109d757825460ff191660011783555b6040516331a9108f60e11b8152600481018790526001600160a01b038083169190891690636352211e90602401602060405180830381865afa158015610a21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a45919061241b565b6001600160a01b031614610a8f5760405162461bcd60e51b815260206004820152601160248201527013db9b1e481bdddb995c881bd988139195607a1b6044820152606401610679565b610aba88837f00000000000000000000000000000000000000000000000000000000000000006118ee565b505050600160005595945050505050565b6000610adb338585856000610629565b949350505050565b60405163230448b160e01b815263076bce2760e11b906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063230448b190610b3c90339030908690600401612438565b6020604051808303816000875af1158015610b5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7f91906123e7565b610b9b5760405162461bcd60e51b815260040161067990612465565b610ba66002836119a4565b506040516001600160a01b038316907f7475e948f72f2714b1984b09949d13da2ddbae9f91e31da0faa380c0095b971c90600090a25050565b60405163a47d29cb60e01b81526004810183905282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa158015610c46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6a919061241b565b6001600160a01b0316336001600160a01b031614610c9a5760405162461bcd60e51b815260040161067990612499565b604051630ea5613f60e01b81526004810184905260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630ea5613f9060240160c060405180830381865afa158015610d04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2891906124be565b5092955092935050505081841115610dc85760405162461bcd60e51b815260206004820152605760248201527f43616e6e6f7420696e6372656173652070726f6a656374206d617820696e766f60448201527f636174696f6e732061626f766520636f726520636f6e7472616374207365742060648201527670726f6a656374206d617820696e766f636174696f6e7360481b608482015260a401610679565b80841015610e4a5760405162461bcd60e51b815260206004820152604360248201527f43616e6e6f74207365742070726f6a656374206d617820696e766f636174696f60448201527f6e7320746f206c657373207468616e2063757272656e7420696e766f636174696064820152626f6e7360e81b608482015260a401610679565b60008581526001602052604090819020805460ff1962ffffff881662010000021664ffffff00ff19909116178387141790555185907f8445d32a2ee05956c6c842357ca16ee41e92657b1cbcbf1c94f500672e48c3b190610eae9087815260200190565b60405180910390a25050505050565b6000610ecc8686868686610629565b9695505050505050565b60405163a47d29cb60e01b81526004810182905281907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa158015610f3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f61919061241b565b6001600160a01b0316336001600160a01b031614610f915760405162461bcd60e51b815260040161067990612499565b60405162461bcd60e51b81526020600482015260146024820152731058dd1a5bdb881b9bdd081cdd5c1c1bdc9d195960621b6044820152606401610679565b60405163a47d29cb60e01b81526004810186905285907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa158015611037573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105b919061241b565b6001600160a01b0316336001600160a01b03161461108b5760405162461bcd60e51b815260040161067990612499565b6110968686866112b3565b6110a186848461157e565b505050505050565b60405163230448b160e01b8152634ff5759d60e01b906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063230448b19061110290339030908690600401612438565b6020604051808303816000875af1158015611121573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114591906123e7565b6111615760405162461bcd60e51b815260040161067990612465565b61116c6002836119c0565b506040516001600160a01b038316907f16e28d6cac0e892c58cee90af3dc883220abe36e25201d7117c4f3aaabf1c3f090600090a25050565b60405163a47d29cb60e01b81526004810183905282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa15801561120c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611230919061241b565b6001600160a01b0316336001600160a01b0316146112605760405162461bcd60e51b815260040161067990612499565b6000838152600160208190526040808320918201859055815461ff0019166101001790915551839185917f26118a27aca826f829f3bfe21b140b4455c00b434849bd0da50d1e1a9720fb5c9190a3505050565b60405163a47d29cb60e01b81526004810184905283907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa15801561131a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133e919061241b565b6001600160a01b0316336001600160a01b03161461136e5760405162461bcd60e51b815260040161067990612499565b81518351146113bf5760405162461bcd60e51b815260206004820152601f60248201527f4c656e677468206f662061646420617272617973206d757374206d61746368006044820152606401610679565b60005b83518110156114e6576113f88482815181106113e0576113e061251d565b602002602001015160026119d590919063ffffffff16565b6114445760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c792052656769737465726564204e4654204164647265737365730000006044820152606401610679565b600085815260046020526040812085516001929087908590811061146a5761146a61251d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008584815181106114a6576114a661251d565b6020026020010151815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114de90612549565b9150506113c2565b50837fba2ec6d92cd62364c8e443b484b3e1f72f1ee9e161c1f871de1a60d83c89558b8484604051611519929190612562565b60405180910390a250505050565b60405162461bcd60e51b815260206004820152601860248201527704d75737420636c61696d204e4654206f776e6572736869760441b6044820152600090606401610679565b600061157960026119f7565b905090565b60405163a47d29cb60e01b81526004810184905283907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa1580156115e5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611609919061241b565b6001600160a01b0316336001600160a01b0316146116395760405162461bcd60e51b815260040161067990612499565b81518351146116955760405162461bcd60e51b815260206004820152602260248201527f4c656e677468206f662072656d6f766520617272617973206d757374206d61746044820152610c6d60f31b6064820152608401610679565b60005b8351811015611741576000858152600460205260408120855182908790859081106116c5576116c561251d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008584815181106117015761170161251d565b6020026020010151815260200190815260200160002060006101000a81548160ff021916908315150217905550808061173990612549565b915050611698565b50837f2e3dced83b61aee20d72f4bdc7e6997a0f8616af4067d3aa92afe2b9b0532d1c8484604051611519929190612562565b6000611784858585856000610629565b95945050505050565b600061179a600283611a01565b92915050565b6000806117b0620f4240846125e6565b60009586526004602090815260408088206001600160a01b039790971688529581528587209187525250505090205460ff1690565b604051630ea5613f60e01b81526004810182905260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630ea5613f9060240160c060405180830381865afa15801561184f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187391906124be565b50505060008681526001602052604090819020805460ff1962ffffff861662010000021664ffffff00ff1990911617858514179055519194509192508491507f8445d32a2ee05956c6c842357ca16ee41e92657b1cbcbf1c94f500672e48c3b1906118e19085815260200190565b60405180910390a2505050565b341561199f576000806119018434612608565b905080156119915760405133908290600081818185875af1925050503d8060008114611949576040519150601f19603f3d011682016040523d82523d6000602084013e61194e565b606091505b505080925050816119915760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b6044820152606401610679565b61199c858585611a0d565b50505b505050565b60006119b9836001600160a01b038416611dfe565b9392505050565b60006119b9836001600160a01b038416611e4d565b6001600160a01b038116600090815260018301602052604081205415156119b9565b600061179a825490565b60006119b98383611f40565b60008211611a1a57505050565b60008060008060008060007f000000000000000000000000000000000000000000000000000000000000000015611b8557604051638639415b60e01b8152600481018b9052602481018a905260009081906001600160a01b038b1690638639415b9060440161010060405180830381865afa158015611a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac1919061261b565b969e50949c50909a50985091965091945090925090508115611b7e576040516001600160a01b038216908390600081818185875af1925050503d8060008114611b26576040519150601f19603f3d011682016040523d82523d6000602084013e611b2b565b606091505b50508099505088611b7e5760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c65646044820152606401610679565b5050611c05565b604051638639415b60e01b8152600481018b9052602481018a90526001600160a01b03891690638639415b9060440160c060405180830381865afa158015611bd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf591906126a3565b949a509298509096509450925090505b8515611cac576040516001600160a01b038616908790600081818185875af1925050503d8060008114611c54576040519150601f19603f3d011682016040523d82523d6000602084013e611c59565b606091505b50508097505086611cac5760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c656400006044820152606401610679565b8315611d4b576040516001600160a01b038416908590600081818185875af1925050503d8060008114611cfb576040519150601f19603f3d011682016040523d82523d6000602084013e611d00565b606091505b50508097505086611d4b5760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b6044820152606401610679565b8115611df2576040516001600160a01b038216908390600081818185875af1925050503d8060008114611d9a576040519150601f19603f3d011682016040523d82523d6000602084013e611d9f565b606091505b50508097505086611df25760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c6564006044820152606401610679565b50505050505050505050565b6000818152600183016020526040812054611e455750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561179a565b50600061179a565b60008181526001830160205260408120548015611f36576000611e71600183612608565b8554909150600090611e8590600190612608565b9050818114611eea576000866000018281548110611ea557611ea561251d565b9060005260206000200154905080876000018481548110611ec857611ec861251d565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611efb57611efb61270c565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061179a565b600091505061179a565b6000826000018281548110611f5757611f5761251d565b9060005260206000200154905092915050565b6001600160a01b0381168114611f7f57600080fd5b50565b600080600080600060a08688031215611f9a57600080fd5b8535611fa581611f6a565b9450602086013593506040860135611fbc81611f6a565b9250606086013591506080860135611fd381611f6a565b809150509295509295909350565b600080600060608486031215611ff657600080fd5b83359250602084013561200881611f6a565b929592945050506040919091013590565b60006020828403121561202b57600080fd5b81356119b981611f6a565b6000806040838503121561204957600080fd5b50508035926020909101359150565b60006020828403121561206a57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156120af576120af612071565b604052919050565b60006001600160401b038211156120d0576120d0612071565b5060051b60200190565b600082601f8301126120eb57600080fd5b813560206121006120fb836120b7565b612087565b82815260059290921b8401810191818101908684111561211f57600080fd5b8286015b8481101561214357803561213681611f6a565b8352918301918301612123565b509695505050505050565b600082601f83011261215f57600080fd5b8135602061216f6120fb836120b7565b82815260059290921b8401810191818101908684111561218e57600080fd5b8286015b848110156121435780358352918301918301612192565b600080600080600060a086880312156121c157600080fd5b8535945060208601356001600160401b03808211156121df57600080fd5b6121eb89838a016120da565b9550604088013591508082111561220157600080fd5b61220d89838a0161214e565b9450606088013591508082111561222357600080fd5b61222f89838a016120da565b9350608088013591508082111561224557600080fd5b506122528882890161214e565b9150509295509295909350565b6000815180845260005b8181101561228557602081850181015186830182015201612269565b506000602082860101526020601f19601f83011685010191505092915050565b84151581528360208201526080604082015260006122c6608083018561225f565b905060018060a01b038316606083015295945050505050565b6000806000606084860312156122f457600080fd5b8335925060208401356001600160401b038082111561231257600080fd5b61231e878388016120da565b9350604086013591508082111561233457600080fd5b506123418682870161214e565b9150509250925092565b6000806040838503121561235e57600080fd5b823561236981611f6a565b946020939093013593505050565b6000806000806080858703121561238d57600080fd5b843561239881611f6a565b93506020850135925060408501356123af81611f6a565b9396929550929360600135925050565b6020815260006119b9602083018461225f565b805180151581146123e257600080fd5b919050565b6000602082840312156123f957600080fd5b6119b9826123d2565b60006020828403121561241457600080fd5b5051919050565b60006020828403121561242d57600080fd5b81516119b981611f6a565b6001600160a01b0393841681529190921660208201526001600160e01b0319909116604082015260600190565b6020808252601a908201527913db9b1e4810dbdc994810591b5a5b9050d308185b1b1bddd95960321b604082015260600190565b6020808252600b908201526a13db9b1e48105c9d1a5cdd60aa1b604082015260600190565b60008060008060008060c087890312156124d757600080fd5b86519550602087015194506124ee604088016123d2565b93506124fc606088016123d2565b92506080870151915061251160a088016123d2565b90509295509295509295565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161255b5761255b612533565b5060010190565b604080825283519082018190526000906020906060840190828701845b828110156125a45781516001600160a01b03168452928401929084019060010161257f565b5050508381038285015284518082528583019183019060005b818110156125d9578351835292840192918401916001016125bd565b5090979650505050505050565b60008261260357634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561179a5761179a612533565b600080600080600080600080610100898b03121561263857600080fd5b88519750602089015161264a81611f6a565b60408a015160608b0151919850965061266281611f6a565b60808a015160a08b0151919650945061267a81611f6a565b60c08a015160e08b0151919450925061269281611f6a565b809150509295985092959890939650565b60008060008060008060c087890312156126bc57600080fd5b8651955060208701516126ce81611f6a565b6040880151606089015191965094506126e681611f6a565b608088015160a089015191945092506126fe81611f6a565b809150509295509295509295565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220efa69a6d1f0a910285aa624754766fd5f81b172964170ca71edcb38794b4078c64736f6c63430008110033",
1110
+ "deployedBytecode": "0x60806040526004361061015e5760003560e01c8063891407c0116100c7578063891407c01461037357806390d355b71461038657806392a10f83146103c757806399c0bbdc14610413578063a647300c14610428578063b00abb6414610448578063bc8ff0011461045b578063bf5bf5f81461047b578063c71b1b71146104af578063db6921b21461052c578063dd85582f14610560578063e2849bd514610594578063e9d1e8ac146105b4578063efef39a1146105fb578063f7bd4b881461060957600080fd5b806111cd14610163578061aa52146101895780630ed79c4e1461019c5780631607c995146101be57806328c5c4e5146101de57806340d1397e146101f1578063462add46146102115780634fd1b70e146102515780634ff5759d1461027157806356690aaf14610291578063650e5d6d146101895780636cb9b7ff146102c9578063774159c6146102e95780637994db0914610353575b600080fd5b610176610171366004611f82565b610629565b6040519081526020015b60405180910390f35b610176610197366004611fe1565b610acb565b3480156101a857600080fd5b506101bc6101b7366004612019565b610ae3565b005b3480156101ca57600080fd5b506101bc6101d9366004612036565b610bdf565b6101766101ec366004611f82565b610ebd565b3480156101fd57600080fd5b506101bc61020c366004612058565b610ed6565b34801561021d57600080fd5b5061024161022c366004612058565b60009081526001602052604090205460ff1690565b6040519015158152602001610180565b34801561025d57600080fd5b506101bc61026c3660046121a9565b610fd0565b34801561027d57600080fd5b506101bc61028c366004612019565b6110a9565b34801561029d57600080fd5b506101766102ac366004612058565b60009081526001602052604090205462010000900462ffffff1690565b3480156102d557600080fd5b506101bc6102e4366004612036565b6111a5565b3480156102f557600080fd5b50610343610304366004612058565b600090815260016020818152604080842080549301548151808301909252600382526208aa8960eb1b9282019290925261010090920460ff1693909290565b60405161018094939291906122a5565b34801561035f57600080fd5b506101bc61036e3660046122df565b6112b3565b61017661038136600461234b565b611527565b34801561039257600080fd5b506102416103a1366004611fe1565b600460209081526000938452604080852082529284528284209052825290205460ff1681565b3480156103d357600080fd5b506103fb7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610180565b34801561041f57600080fd5b5061017661156d565b34801561043457600080fd5b506101bc6104433660046122df565b61157e565b610176610456366004612377565b611774565b34801561046757600080fd5b506103fb610476366004612058565b61178d565b34801561048757600080fd5b506103fb7f000000000000000000000000000000000000000000000000000000000000000081565b3480156104bb57600080fd5b506104ff6104ca366004612058565b6001602081905260009182526040909120805491015460ff808316926101008104909116916201000090910462ffffff169084565b60405161018094939291909315158452911515602084015262ffffff166040830152606082015260800190565b34801561053857600080fd5b506102417f000000000000000000000000000000000000000000000000000000000000000081565b34801561056c57600080fd5b506103fb7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105a057600080fd5b506102416105af366004611fe1565b6117a0565b3480156105c057600080fd5b506105ee6040518060400160405280600e81526020016d135a5b9d195c921bdb19195c958d60921b81525081565b60405161018091906123bf565b610176610381366004612058565b34801561061557600080fd5b506101bc610624366004612058565b6117e5565b60006002600054036106825760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000908155858152600160205260409020805460ff16156106f55760405162461bcd60e51b815260206004820152602560248201527f4d6178696d756d206e756d626572206f6620696e766f636174696f6e732072656044820152641858da195960da1b6064820152608401610679565b60018101543481111561074a5760405162461bcd60e51b815260206004820181905260248201527f4d7573742073656e64206d696e696d756d2076616c756520746f206d696e74216044820152606401610679565b8154610100900460ff166107975760405162461bcd60e51b8152602060048201526014602482015273141c9a58d9481b9bdd0818dbdb999a59dd5c995960621b6044820152606401610679565b6107a28787876117a0565b6107e65760405162461bcd60e51b81526020600482015260156024820152744f6e6c7920616c6c6f776c6973746564204e46547360581b6044820152606401610679565b336001600160a01b0385161561090e57604051631574d39f60e31b81523360048201526001600160a01b0386811660248301527f000000000000000000000000000000000000000000000000000000000000000081166044830152606482018890526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aba69cf890608401602060405180830381865afa158015610896573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ba91906123e7565b9050806109095760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642064656c65676174652d7661756c742070616972696e6700006044820152606401610679565b859150505b604051630d4d151360e01b81526001600160a01b038a81166004830152602482018a905282811660448301527f00000000000000000000000000000000000000000000000000000000000000001690630d4d1513906064016020604051808303816000875af1158015610985573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a99190612402565b835490945060001962ffffff6201000090920482160116620f42408506036109d757825460ff191660011783555b6040516331a9108f60e11b8152600481018790526001600160a01b038083169190891690636352211e90602401602060405180830381865afa158015610a21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a45919061241b565b6001600160a01b031614610a8f5760405162461bcd60e51b815260206004820152601160248201527013db9b1e481bdddb995c881bd988139195607a1b6044820152606401610679565b610aba88837f00000000000000000000000000000000000000000000000000000000000000006118ee565b505050600160005595945050505050565b6000610adb338585856000610629565b949350505050565b60405163230448b160e01b815263076bce2760e11b906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063230448b190610b3c90339030908690600401612438565b6020604051808303816000875af1158015610b5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7f91906123e7565b610b9b5760405162461bcd60e51b815260040161067990612465565b610ba66002836119a4565b506040516001600160a01b038316907f7475e948f72f2714b1984b09949d13da2ddbae9f91e31da0faa380c0095b971c90600090a25050565b60405163a47d29cb60e01b81526004810183905282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa158015610c46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6a919061241b565b6001600160a01b0316336001600160a01b031614610c9a5760405162461bcd60e51b815260040161067990612499565b604051630ea5613f60e01b81526004810184905260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630ea5613f9060240160c060405180830381865afa158015610d04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2891906124be565b5092955092935050505081841115610dc85760405162461bcd60e51b815260206004820152605760248201527f43616e6e6f7420696e6372656173652070726f6a656374206d617820696e766f60448201527f636174696f6e732061626f766520636f726520636f6e7472616374207365742060648201527670726f6a656374206d617820696e766f636174696f6e7360481b608482015260a401610679565b80841015610e4a5760405162461bcd60e51b815260206004820152604360248201527f43616e6e6f74207365742070726f6a656374206d617820696e766f636174696f60448201527f6e7320746f206c657373207468616e2063757272656e7420696e766f636174696064820152626f6e7360e81b608482015260a401610679565b60008581526001602052604090819020805460ff1962ffffff881662010000021664ffffff00ff19909116178387141790555185907f8445d32a2ee05956c6c842357ca16ee41e92657b1cbcbf1c94f500672e48c3b190610eae9087815260200190565b60405180910390a25050505050565b6000610ecc8686868686610629565b9695505050505050565b60405163a47d29cb60e01b81526004810182905281907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa158015610f3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f61919061241b565b6001600160a01b0316336001600160a01b031614610f915760405162461bcd60e51b815260040161067990612499565b60405162461bcd60e51b81526020600482015260146024820152731058dd1a5bdb881b9bdd081cdd5c1c1bdc9d195960621b6044820152606401610679565b60405163a47d29cb60e01b81526004810186905285907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa158015611037573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061105b919061241b565b6001600160a01b0316336001600160a01b03161461108b5760405162461bcd60e51b815260040161067990612499565b6110968686866112b3565b6110a186848461157e565b505050505050565b60405163230448b160e01b8152634ff5759d60e01b906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063230448b19061110290339030908690600401612438565b6020604051808303816000875af1158015611121573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114591906123e7565b6111615760405162461bcd60e51b815260040161067990612465565b61116c6002836119c0565b506040516001600160a01b038316907f16e28d6cac0e892c58cee90af3dc883220abe36e25201d7117c4f3aaabf1c3f090600090a25050565b60405163a47d29cb60e01b81526004810183905282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa15801561120c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611230919061241b565b6001600160a01b0316336001600160a01b0316146112605760405162461bcd60e51b815260040161067990612499565b6000838152600160208190526040808320918201859055815461ff0019166101001790915551839185917f26118a27aca826f829f3bfe21b140b4455c00b434849bd0da50d1e1a9720fb5c9190a3505050565b60405163a47d29cb60e01b81526004810184905283907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa15801561131a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133e919061241b565b6001600160a01b0316336001600160a01b03161461136e5760405162461bcd60e51b815260040161067990612499565b81518351146113bf5760405162461bcd60e51b815260206004820152601f60248201527f4c656e677468206f662061646420617272617973206d757374206d61746368006044820152606401610679565b60005b83518110156114e6576113f88482815181106113e0576113e061251d565b602002602001015160026119d590919063ffffffff16565b6114445760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c792052656769737465726564204e4654204164647265737365730000006044820152606401610679565b600085815260046020526040812085516001929087908590811061146a5761146a61251d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008584815181106114a6576114a661251d565b6020026020010151815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114de90612549565b9150506113c2565b50837fba2ec6d92cd62364c8e443b484b3e1f72f1ee9e161c1f871de1a60d83c89558b8484604051611519929190612562565b60405180910390a250505050565b60405162461bcd60e51b815260206004820152601860248201527704d75737420636c61696d204e4654206f776e6572736869760441b6044820152600090606401610679565b600061157960026119f7565b905090565b60405163a47d29cb60e01b81526004810184905283907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa1580156115e5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611609919061241b565b6001600160a01b0316336001600160a01b0316146116395760405162461bcd60e51b815260040161067990612499565b81518351146116955760405162461bcd60e51b815260206004820152602260248201527f4c656e677468206f662072656d6f766520617272617973206d757374206d61746044820152610c6d60f31b6064820152608401610679565b60005b8351811015611741576000858152600460205260408120855182908790859081106116c5576116c561251d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008584815181106117015761170161251d565b6020026020010151815260200190815260200160002060006101000a81548160ff021916908315150217905550808061173990612549565b915050611698565b50837f2e3dced83b61aee20d72f4bdc7e6997a0f8616af4067d3aa92afe2b9b0532d1c8484604051611519929190612562565b6000611784858585856000610629565b95945050505050565b600061179a600283611a01565b92915050565b6000806117b0620f4240846125e6565b60009586526004602090815260408088206001600160a01b039790971688529581528587209187525250505090205460ff1690565b604051630ea5613f60e01b81526004810182905260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630ea5613f9060240160c060405180830381865afa15801561184f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187391906124be565b50505060008681526001602052604090819020805460ff1962ffffff861662010000021664ffffff00ff1990911617858514179055519194509192508491507f8445d32a2ee05956c6c842357ca16ee41e92657b1cbcbf1c94f500672e48c3b1906118e19085815260200190565b60405180910390a2505050565b341561199f576000806119018434612608565b905080156119915760405133908290600081818185875af1925050503d8060008114611949576040519150601f19603f3d011682016040523d82523d6000602084013e61194e565b606091505b505080925050816119915760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b6044820152606401610679565b61199c858585611a0d565b50505b505050565b60006119b9836001600160a01b038416611dfe565b9392505050565b60006119b9836001600160a01b038416611e4d565b6001600160a01b038116600090815260018301602052604081205415156119b9565b600061179a825490565b60006119b98383611f40565b60008211611a1a57505050565b60008060008060008060007f000000000000000000000000000000000000000000000000000000000000000015611b8557604051638639415b60e01b8152600481018b9052602481018a905260009081906001600160a01b038b1690638639415b9060440161010060405180830381865afa158015611a9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ac1919061261b565b969e50949c50909a50985091965091945090925090508115611b7e576040516001600160a01b038216908390600081818185875af1925050503d8060008114611b26576040519150601f19603f3d011682016040523d82523d6000602084013e611b2b565b606091505b50508099505088611b7e5760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c65646044820152606401610679565b5050611c05565b604051638639415b60e01b8152600481018b9052602481018a90526001600160a01b03891690638639415b9060440160c060405180830381865afa158015611bd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf591906126a3565b949a509298509096509450925090505b8515611cac576040516001600160a01b038616908790600081818185875af1925050503d8060008114611c54576040519150601f19603f3d011682016040523d82523d6000602084013e611c59565b606091505b50508097505086611cac5760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c656400006044820152606401610679565b8315611d4b576040516001600160a01b038416908590600081818185875af1925050503d8060008114611cfb576040519150601f19603f3d011682016040523d82523d6000602084013e611d00565b606091505b50508097505086611d4b5760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b6044820152606401610679565b8115611df2576040516001600160a01b038216908390600081818185875af1925050503d8060008114611d9a576040519150601f19603f3d011682016040523d82523d6000602084013e611d9f565b606091505b50508097505086611df25760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c6564006044820152606401610679565b50505050505050505050565b6000818152600183016020526040812054611e455750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561179a565b50600061179a565b60008181526001830160205260408120548015611f36576000611e71600183612608565b8554909150600090611e8590600190612608565b9050818114611eea576000866000018281548110611ea557611ea561251d565b9060005260206000200154905080876000018481548110611ec857611ec861251d565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080611efb57611efb61270c565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061179a565b600091505061179a565b6000826000018281548110611f5757611f5761251d565b9060005260206000200154905092915050565b6001600160a01b0381168114611f7f57600080fd5b50565b600080600080600060a08688031215611f9a57600080fd5b8535611fa581611f6a565b9450602086013593506040860135611fbc81611f6a565b9250606086013591506080860135611fd381611f6a565b809150509295509295909350565b600080600060608486031215611ff657600080fd5b83359250602084013561200881611f6a565b929592945050506040919091013590565b60006020828403121561202b57600080fd5b81356119b981611f6a565b6000806040838503121561204957600080fd5b50508035926020909101359150565b60006020828403121561206a57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156120af576120af612071565b604052919050565b60006001600160401b038211156120d0576120d0612071565b5060051b60200190565b600082601f8301126120eb57600080fd5b813560206121006120fb836120b7565b612087565b82815260059290921b8401810191818101908684111561211f57600080fd5b8286015b8481101561214357803561213681611f6a565b8352918301918301612123565b509695505050505050565b600082601f83011261215f57600080fd5b8135602061216f6120fb836120b7565b82815260059290921b8401810191818101908684111561218e57600080fd5b8286015b848110156121435780358352918301918301612192565b600080600080600060a086880312156121c157600080fd5b8535945060208601356001600160401b03808211156121df57600080fd5b6121eb89838a016120da565b9550604088013591508082111561220157600080fd5b61220d89838a0161214e565b9450606088013591508082111561222357600080fd5b61222f89838a016120da565b9350608088013591508082111561224557600080fd5b506122528882890161214e565b9150509295509295909350565b6000815180845260005b8181101561228557602081850181015186830182015201612269565b506000602082860101526020601f19601f83011685010191505092915050565b84151581528360208201526080604082015260006122c6608083018561225f565b905060018060a01b038316606083015295945050505050565b6000806000606084860312156122f457600080fd5b8335925060208401356001600160401b038082111561231257600080fd5b61231e878388016120da565b9350604086013591508082111561233457600080fd5b506123418682870161214e565b9150509250925092565b6000806040838503121561235e57600080fd5b823561236981611f6a565b946020939093013593505050565b6000806000806080858703121561238d57600080fd5b843561239881611f6a565b93506020850135925060408501356123af81611f6a565b9396929550929360600135925050565b6020815260006119b9602083018461225f565b805180151581146123e257600080fd5b919050565b6000602082840312156123f957600080fd5b6119b9826123d2565b60006020828403121561241457600080fd5b5051919050565b60006020828403121561242d57600080fd5b81516119b981611f6a565b6001600160a01b0393841681529190921660208201526001600160e01b0319909116604082015260600190565b6020808252601a908201527913db9b1e4810dbdc994810591b5a5b9050d308185b1b1bddd95960321b604082015260600190565b6020808252600b908201526a13db9b1e48105c9d1a5cdd60aa1b604082015260600190565b60008060008060008060c087890312156124d757600080fd5b86519550602087015194506124ee604088016123d2565b93506124fc606088016123d2565b92506080870151915061251160a088016123d2565b90509295509295509295565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161255b5761255b612533565b5060010190565b604080825283519082018190526000906020906060840190828701845b828110156125a45781516001600160a01b03168452928401929084019060010161257f565b5050508381038285015284518082528583019183019060005b818110156125d9578351835292840192918401916001016125bd565b5090979650505050505050565b60008261260357634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561179a5761179a612533565b600080600080600080600080610100898b03121561263857600080fd5b88519750602089015161264a81611f6a565b60408a015160608b0151919850965061266281611f6a565b60808a015160a08b0151919650945061267a81611f6a565b60c08a015160e08b0151919450925061269281611f6a565b809150509295985092959890939650565b60008060008060008060c087890312156126bc57600080fd5b8651955060208701516126ce81611f6a565b6040880151606089015191965094506126e681611f6a565b608088015160a089015191945092506126fe81611f6a565b809150509295509295509295565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220efa69a6d1f0a910285aa624754766fd5f81b172964170ca71edcb38794b4078c64736f6c63430008110033",
1111
+ "linkReferences": {},
1112
+ "deployedLinkReferences": {}
1113
+ }