@artblocks/contracts 1.0.4 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (289) hide show
  1. package/README.md +75 -7
  2. package/artifacts/contracts/AdminACLV0.sol/AdminACLV0.json +2 -2
  3. package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +2 -2
  4. package/artifacts/contracts/DependencyRegistryV0.sol/DependencyRegistryV0.json +336 -131
  5. package/artifacts/contracts/archive/GenArt721CoreV3.sol/GenArt721CoreV3.json +2047 -0
  6. package/artifacts/contracts/archive/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +2021 -0
  7. package/artifacts/contracts/{minter-suite → archive/minter-suite}/Minters/MinterBase_v0_1_1.sol/MinterBase.json +1 -1
  8. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +2 -2
  9. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +2 -2
  10. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExp}/MinterDAExpV4.sol/MinterDAExpV4.json +3 -3
  11. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +2 -2
  12. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol/MinterDAExpSettlementV1.json +2 -2
  13. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +1109 -0
  14. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +2 -2
  15. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +2 -2
  16. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDALin}/MinterDALinV4.sol/MinterDALinV4.json +3 -3
  17. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol/MinterHolderV1.json +2 -2
  18. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +2 -2
  19. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +2 -2
  20. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterHolder}/MinterHolderV4.sol/MinterHolderV4.json +3 -3
  21. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol/MinterMerkleV1.json +2 -2
  22. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol/MinterMerkleV2.json +2 -2
  23. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +2 -2
  24. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +2 -2
  25. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterMerkle}/MinterMerkleV5.sol/MinterMerkleV5.json +3 -3
  26. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterPolyptych}/MinterPolyptychV0.sol/IGenArt721CoreContractV3WithRandomizer.json +31 -63
  27. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterPolyptych}/MinterPolyptychV0.sol/MinterPolyptychV0.json +3 -3
  28. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSEA}/MinterSEAV0.sol/MinterSEAV0.json +3 -3
  29. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +2 -2
  30. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +2 -2
  31. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSetPrice}/MinterSetPriceV4.sol/MinterSetPriceV4.json +3 -3
  32. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol/MinterSetPriceERC20V0.json +65 -2
  33. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol/MinterSetPriceERC20V1.json +65 -2
  34. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +2 -2
  35. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +2 -2
  36. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +807 -0
  37. package/artifacts/contracts/engine/V2/GenArt721MinterBurner_PBAB.sol/GenArt721MinterBurner_PBAB.json +65 -2
  38. package/artifacts/contracts/engine/V2/GenArt721Minter_PBAB.sol/GenArt721Minter_PBAB.json +65 -2
  39. package/artifacts/contracts/engine/V3/EngineFactoryV0.sol/EngineFactoryV0.json +606 -0
  40. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +565 -209
  41. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +785 -227
  42. package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +40 -15
  43. package/artifacts/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol/AdminACLV0_PROHIBITION.json +2 -2
  44. package/artifacts/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol/GenArt721CoreV3_Engine_Flex_PROHIBITION.json +40 -15
  45. package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.json +36 -68
  46. package/artifacts/contracts/engine-registry/CoreRegistryV1.sol/CoreRegistryV1.json +12 -12
  47. package/artifacts/contracts/interfaces/v0.8.x/IAdminACLV0_Extended.sol/IAdminACLV0_Extended.json +140 -0
  48. package/artifacts/contracts/interfaces/v0.8.x/IBytecodeStorageReaderV2.sol/IBytecodeStorageReaderV2.json +130 -0
  49. package/artifacts/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol/ICoreRegistryV1.json +6 -6
  50. package/artifacts/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +71 -39
  51. package/artifacts/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol/IEngineFactoryV0.json +283 -0
  52. package/artifacts/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV0.sol/IFilteredMinterDAExpSettlementV0.json +12 -12
  53. package/artifacts/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV1.sol/IFilteredMinterDAExpSettlementV1.json +12 -12
  54. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +30 -62
  55. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +30 -62
  56. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +170 -104
  57. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +170 -104
  58. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.json +1028 -0
  59. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol/IGenArt721CoreContractV3_Engine_PreV3p2.json +741 -0
  60. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_ProjectFinance.sol/IGenArt721CoreContractV3_ProjectFinance.json +87 -0
  61. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721Minter_PBAB.sol/IGenArt721Minter_PBAB.json +279 -0
  62. package/artifacts/contracts/interfaces/v0.8.x/IMinterFilterV1.sol/IMinterFilterV1.json +22 -22
  63. package/artifacts/contracts/interfaces/v0.8.x/IPseudorandomAtomic.sol/IPseudorandomAtomic.json +1 -1
  64. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol/ISharedMinterDAExpSettlementV0.json +26 -101
  65. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpV0.sol/ISharedMinterDAExpV0.json +1 -57
  66. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDALinV0.sol/ISharedMinterDALinV0.json +1 -57
  67. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAV0.sol/ISharedMinterDAV0.json +2 -21
  68. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterHolderERC20V0.sol/ISharedMinterHolderERC20V0.json +158 -0
  69. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterHolderV0.sol/ISharedMinterHolderV0.json +15 -90
  70. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterMerkleV0.sol/ISharedMinterMerkleV0.json +10 -36
  71. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterRAMV0.sol/ISharedMinterRAMV0.json +62 -0
  72. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterRequired.sol/ISharedMinterRequired.json +37 -0
  73. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol/ISharedMinterSEAV0.json +4 -236
  74. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSimplePurchaseV0.sol/ISharedMinterSimplePurchaseV0.json +5 -5
  75. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterV0.sol/ISharedMinterV0.json +7 -423
  76. package/artifacts/contracts/interfaces/v0.8.x/ISharedRandomizerV0.sol/ISharedRandomizerV0.json +17 -17
  77. package/artifacts/contracts/interfaces/v0.8.x/ISplitAtomicFactoryV0.sol/ISplitAtomicFactoryV0.json +170 -0
  78. package/artifacts/contracts/interfaces/v0.8.x/ISplitAtomicV0.sol/ISplitAtomicV0.json +126 -0
  79. package/artifacts/contracts/interfaces/v0.8.x/ISplitProviderV0.sol/ISplitProviderV0.json +98 -0
  80. package/artifacts/contracts/interfaces/v0.8.x/integration-refs/splits-0x-v2/ISplitFactoryV2.sol/ISplitFactoryV2.json +123 -0
  81. package/artifacts/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol/DelegationRegistry.json +2 -2
  82. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeMock.sol/GnosisSafeMock.json +2 -2
  83. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeProxyFactoryMock.sol/GnosisSafeProxyFactoryMock.json +2 -2
  84. package/artifacts/contracts/libs/integration-refs/gnosis-safe/MultiSendMock.sol/MultiSendMock.json +2 -2
  85. package/artifacts/contracts/libs/integration-refs/weth9/weth9.sol/WETH9_.json +2 -2
  86. package/artifacts/contracts/libs/v0.8.x/ABHelpers.sol/ABHelpers.json +2 -2
  87. package/artifacts/contracts/libs/v0.8.x/AuthLib.sol/AuthLib.json +2 -2
  88. package/artifacts/contracts/libs/v0.8.x/BitMap.sol/BitMaps256.json +10 -0
  89. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV0.sol/BytecodeStorage.json +2 -2
  90. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV1.sol/BytecodeStorageReader.json +2 -2
  91. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV1.sol/BytecodeStorageWriter.json +2 -2
  92. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageReader.json +214 -0
  93. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageWriter.json +10 -0
  94. package/artifacts/contracts/libs/v0.8.x/Bytes32Strings.sol/Bytes32Strings.json +2 -2
  95. package/artifacts/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol/DependencyRegistryStorageLib.json +10 -0
  96. package/artifacts/contracts/libs/v0.8.x/ERC721_PackedHashSeed.sol/ERC721_PackedHashSeed.json +2 -2
  97. package/artifacts/contracts/libs/v0.8.x/ERC721_PackedHashSeedV1.sol/ERC721_PackedHashSeedV1.json +444 -0
  98. package/artifacts/contracts/libs/v0.8.x/PackedBools.sol/PackedBools.json +10 -0
  99. package/artifacts/contracts/libs/v0.8.x/SSTORE2.sol/SSTORE2.json +2 -2
  100. package/artifacts/contracts/libs/v0.8.x/V3FlexLib.sol/V3FlexLib.json +208 -0
  101. package/artifacts/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol/DAExpLib.json +60 -3
  102. package/artifacts/contracts/libs/v0.8.x/minter-libs/DALib.sol/DALib.json +30 -0
  103. package/artifacts/contracts/libs/v0.8.x/minter-libs/DALinLib.sol/DALinLib.json +60 -3
  104. package/artifacts/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol/GenericMinterEventsLib.json +346 -0
  105. package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.json +29 -3
  106. package/artifacts/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol/MerkleLib.json +30 -3
  107. package/artifacts/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol/PolyptychLib.json +2 -2
  108. package/artifacts/contracts/libs/v0.8.x/minter-libs/RAMLib.sol/RAMLib.json +398 -0
  109. package/artifacts/contracts/libs/v0.8.x/minter-libs/SEALib.sol/SEALib.json +254 -3
  110. package/artifacts/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol/SetPriceLib.json +48 -3
  111. package/artifacts/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol/SettlementExpLib.json +41 -3
  112. package/artifacts/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol/SplitFundsLib.json +35 -3
  113. package/artifacts/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol/TokenHolderLib.json +79 -3
  114. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
  115. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +41 -41
  116. package/artifacts/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol/MinterDAExpHolderV5.json +66 -632
  117. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol/MinterDAExpSettlementV3.json +67 -594
  118. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV5.sol/MinterDAExpV5.json +33 -524
  119. package/artifacts/contracts/minter-suite/Minters/MinterDALinHolderV5.sol/MinterDALinHolderV5.json +66 -632
  120. package/artifacts/contracts/minter-suite/Minters/MinterDALinV5.sol/MinterDALinV5.json +33 -524
  121. package/artifacts/contracts/minter-suite/Minters/MinterRAMV0.sol/MinterRAMV0.json +1374 -0
  122. package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +56 -722
  123. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol/MinterSetPriceERC20V5.json +58 -454
  124. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol/MinterSetPriceHolderV5.json +61 -552
  125. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol/MinterSetPriceMerkleV5.json +55 -497
  126. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol/MinterSetPricePolyptychERC20V5.json +110 -571
  127. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol/MinterSetPricePolyptychV5.json +69 -560
  128. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV5.sol/MinterSetPriceV5.json +28 -444
  129. package/artifacts/contracts/minter-suite/Minters/one-off/MinterSetPriceV5_SingleCore.sol/MinterSetPriceV5_SingleCore.json +417 -0
  130. package/artifacts/contracts/mock/BytecodeV2LibCallsMock.sol/BytecodeV2LibCallsMock.json +154 -0
  131. package/artifacts/contracts/mock/BytecodeV2TextCR_DMock.sol/BytecodeV2TextCR_DMock.json +428 -0
  132. package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +2 -2
  133. package/artifacts/contracts/mock/ERC20Mock.sol/ERC20Mock.json +2 -2
  134. package/artifacts/contracts/mock/ForceSendMock.sol/ForceSendMock.json +24 -0
  135. package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +4 -9
  136. package/artifacts/contracts/mock/Mock0xSplitsV2PullFactory.sol/Mock0xSplitsV2PullFactory.json +149 -0
  137. package/artifacts/contracts/mock/Mock0xSplitsV2Splitter.sol/Mock0xSplitsV2Splitter.json +99 -0
  138. package/artifacts/contracts/mock/MockAdminACLV0.sol/MockAdminACLV0Events.json +20 -2
  139. package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +20 -2
  140. package/artifacts/contracts/mock/OriginRegisterMock.sol/OriginRegisterMock.json +2 -2
  141. package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +2 -2
  142. package/artifacts/contracts/mock/ReentrancyGenArt721MinterMock.sol/ReentrancyGenArt721MinterMock.json +100 -0
  143. package/artifacts/contracts/mock/ReentrancyHolderMock.sol/ReentrancyHolderMock.json +2 -2
  144. package/artifacts/contracts/mock/ReentrancyHolderMockShared.sol/ReentrancyHolderMockShared.json +136 -0
  145. package/artifacts/contracts/mock/ReentrancyMerkleMock.sol/ReentrancyMerkleMock.json +2 -2
  146. package/artifacts/contracts/mock/ReentrancyMerkleMockShared.sol/ReentrancyMerkleMockShared.json +105 -0
  147. package/artifacts/contracts/mock/ReentrancyMock.sol/ReentrancyMock.json +2 -2
  148. package/artifacts/contracts/mock/ReentrancyMockShared.sol/ReentrancyMockShared.json +100 -0
  149. package/artifacts/contracts/mock/ReentrancySEAMock.sol/ReentrancySEAAutoBidderMock.json +2 -2
  150. package/artifacts/contracts/mock/ReentrancySEAMockShared.sol/ReentrancySEAAutoBidderMockShared.json +69 -0
  151. package/artifacts/contracts/mock/ReentrancySplitterMocks.sol/ReentrancySplitterDrainETHMock.json +54 -0
  152. package/artifacts/contracts/mock/ReentrancySplitterMocks.sol/ReentrancySplitterSendETHMock.json +54 -0
  153. package/artifacts/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +2 -2
  154. package/artifacts/contracts/randomizer/deprecated/RandomizerV2.sol/BasicRandomizerV2.json +2 -2
  155. package/artifacts/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol/PseudorandomAtomic.json +2 -2
  156. package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +19 -19
  157. package/artifacts/contracts/split/SplitAtomicFactoryV0.sol/SplitAtomicFactoryV0.json +203 -0
  158. package/artifacts/contracts/split/SplitAtomicV0.sol/SplitAtomicV0.json +168 -0
  159. package/artifacts/contracts/split/split-provider/SplitProviderV0.sol/SplitProviderV0.json +141 -0
  160. package/contracts/AdminACLV0.sol +6 -2
  161. package/contracts/AdminACLV1.sol +2 -2
  162. package/contracts/DependencyRegistryV0.sol +737 -390
  163. package/contracts/{GenArt721CoreV3.sol → archive/GenArt721CoreV3.sol} +56 -20
  164. package/contracts/{explorations → archive}/GenArt721CoreV3_Explorations.sol +49 -13
  165. package/contracts/{minter-suite → archive/minter-suite}/Minters/MinterBase_v0_1_1.sol +4 -4
  166. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExp}/MinterDAExpV4.sol +4 -4
  167. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol +4 -4
  168. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol +5 -5
  169. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExpSettlement}/MinterDAExpSettlementV2.sol +9 -62
  170. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDALin}/MinterDALinV4.sol +4 -4
  171. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterHolder}/MinterHolderV4.sol +5 -5
  172. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterMerkle}/MinterMerkleV5.sol +5 -5
  173. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterPolyptych}/MinterPolyptychV0.sol +7 -7
  174. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSEA}/MinterSEAV0.sol +13 -13
  175. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSetPrice}/MinterSetPriceV4.sol +4 -4
  176. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol +82 -10
  177. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol +82 -10
  178. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSetPriceERC20}/MinterSetPriceERC20V4.sol +88 -21
  179. package/contracts/engine/V2/GenArt721MinterBurner_PBAB.sol +81 -22
  180. package/contracts/engine/V2/GenArt721Minter_PBAB.sol +80 -22
  181. package/contracts/engine/V3/EngineFactoryV0.sol +419 -0
  182. package/contracts/engine/V3/GenArt721CoreV3_Engine.sol +893 -493
  183. package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +1053 -655
  184. package/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol +7 -13
  185. package/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol +5 -11
  186. package/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol +2 -2
  187. package/contracts/engine-registry/CoreRegistryV1.sol +58 -65
  188. package/contracts/interfaces/v0.8.x/IAdminACLV0_Extended.sol +20 -0
  189. package/contracts/interfaces/v0.8.x/IBytecodeStorageReaderV2.sol +23 -0
  190. package/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol +6 -8
  191. package/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol +48 -43
  192. package/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol +124 -0
  193. package/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV0.sol +1 -3
  194. package/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV1.sol +1 -3
  195. package/contracts/interfaces/v0.8.x/IFilteredMinterDAExpV1.sol +1 -3
  196. package/contracts/interfaces/v0.8.x/IFilteredMinterDALinV1.sol +1 -3
  197. package/contracts/interfaces/v0.8.x/IFilteredMinterHolderV2.sol +1 -3
  198. package/contracts/interfaces/v0.8.x/IFilteredMinterMerkleV2.sol +1 -3
  199. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol +115 -11
  200. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol +84 -8
  201. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol +26 -8
  202. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol +141 -0
  203. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol +78 -0
  204. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_ProjectFinance.sol +47 -0
  205. package/contracts/interfaces/v0.8.x/IGenArt721Minter_PBAB.sol +91 -0
  206. package/contracts/interfaces/v0.8.x/IMinterFilterV1.sol +25 -25
  207. package/contracts/interfaces/v0.8.x/IPseudorandomAtomic.sol +1 -3
  208. package/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol +30 -20
  209. package/contracts/interfaces/v0.8.x/ISharedMinterDAExpV0.sol +1 -14
  210. package/contracts/interfaces/v0.8.x/ISharedMinterDALinV0.sol +1 -15
  211. package/contracts/interfaces/v0.8.x/ISharedMinterDAV0.sol +2 -8
  212. package/contracts/interfaces/v0.8.x/ISharedMinterHolderERC20V0.sol +47 -0
  213. package/contracts/interfaces/v0.8.x/ISharedMinterHolderV0.sol +15 -43
  214. package/contracts/interfaces/v0.8.x/ISharedMinterMerkleV0.sol +10 -20
  215. package/contracts/interfaces/v0.8.x/ISharedMinterRAMV0.sol +23 -0
  216. package/contracts/interfaces/v0.8.x/ISharedMinterRequired.sol +20 -0
  217. package/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol +1 -67
  218. package/contracts/interfaces/v0.8.x/ISharedMinterSimplePurchaseV0.sol +5 -5
  219. package/contracts/interfaces/v0.8.x/ISharedMinterV0.sol +18 -160
  220. package/contracts/interfaces/v0.8.x/ISharedRandomizerV0.sol +37 -37
  221. package/contracts/interfaces/v0.8.x/ISplitAtomicFactoryV0.sol +81 -0
  222. package/contracts/interfaces/v0.8.x/ISplitAtomicV0.sol +72 -0
  223. package/contracts/interfaces/v0.8.x/ISplitProviderV0.sol +49 -0
  224. package/contracts/interfaces/v0.8.x/integration-refs/splits-0x-v2/ISplitFactoryV2.sol +62 -0
  225. package/contracts/libs/v0.8.x/ABHelpers.sol +31 -17
  226. package/contracts/libs/v0.8.x/AuthLib.sol +101 -102
  227. package/contracts/libs/v0.8.x/BitMap.sol +112 -0
  228. package/contracts/libs/v0.8.x/BytecodeStorageV2.sol +593 -0
  229. package/contracts/libs/v0.8.x/Bytes32Strings.sol +5 -5
  230. package/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol +90 -0
  231. package/contracts/libs/v0.8.x/ERC721_PackedHashSeedV1.sol +591 -0
  232. package/contracts/libs/v0.8.x/PackedBools.sol +42 -0
  233. package/contracts/libs/v0.8.x/V3FlexLib.sol +591 -0
  234. package/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol +162 -39
  235. package/contracts/libs/v0.8.x/minter-libs/DALib.sol +26 -0
  236. package/contracts/libs/v0.8.x/minter-libs/DALinLib.sol +139 -37
  237. package/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol +171 -0
  238. package/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol +299 -158
  239. package/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol +268 -55
  240. package/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol +138 -58
  241. package/contracts/libs/v0.8.x/minter-libs/RAMLib.sol +2927 -0
  242. package/contracts/libs/v0.8.x/minter-libs/SEALib.sol +796 -123
  243. package/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol +131 -13
  244. package/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol +607 -224
  245. package/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol +494 -330
  246. package/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol +217 -78
  247. package/contracts/minter-suite/MinterFilter/MinterFilterV2.sol +358 -309
  248. package/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol +391 -491
  249. package/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol +396 -632
  250. package/contracts/minter-suite/Minters/MinterDAExpV5.sol +212 -273
  251. package/contracts/minter-suite/Minters/MinterDALinHolderV5.sol +393 -488
  252. package/contracts/minter-suite/Minters/MinterDALinV5.sol +220 -277
  253. package/contracts/minter-suite/Minters/MinterRAMV0.sol +1205 -0
  254. package/contracts/minter-suite/Minters/MinterSEAV1.sol +329 -677
  255. package/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol +287 -303
  256. package/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol +355 -446
  257. package/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol +328 -416
  258. package/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol +552 -622
  259. package/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol +429 -553
  260. package/contracts/minter-suite/Minters/MinterSetPriceV5.sol +180 -227
  261. package/contracts/minter-suite/Minters/one-off/MinterSetPriceV5_SingleCore.sol +446 -0
  262. package/contracts/mock/BytecodeV2LibCallsMock.sol +128 -0
  263. package/contracts/mock/BytecodeV2TextCR_DMock.sol +316 -0
  264. package/contracts/mock/ForceSendMock.sol +22 -0
  265. package/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol +3 -10
  266. package/contracts/mock/Mock0xSplitsV2PullFactory.sol +75 -0
  267. package/contracts/mock/Mock0xSplitsV2Splitter.sol +47 -0
  268. package/contracts/mock/MockAdminACLV0.sol +21 -0
  269. package/contracts/mock/MockAdminACLV0_PROHIBITION.sol +21 -0
  270. package/contracts/mock/ReentrancyGenArt721MinterMock.sol +47 -0
  271. package/contracts/mock/ReentrancyHolderMockShared.sol +59 -0
  272. package/contracts/mock/ReentrancyMerkleMockShared.sol +58 -0
  273. package/contracts/mock/ReentrancyMockShared.sol +48 -0
  274. package/contracts/mock/ReentrancySEAMockShared.sol +40 -0
  275. package/contracts/mock/ReentrancySplitterMocks.sol +67 -0
  276. package/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol +1 -1
  277. package/contracts/randomizer/shared/SharedRandomizerV0.sol +79 -71
  278. package/contracts/split/SplitAtomicFactoryV0.sol +121 -0
  279. package/contracts/split/SplitAtomicV0.sol +265 -0
  280. package/contracts/split/split-provider/SplitProviderV0.sol +201 -0
  281. package/package.json +79 -45
  282. package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +0 -1965
  283. package/artifacts/contracts/explorations/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +0 -1939
  284. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +0 -1127
  285. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +0 -768
  286. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride.sol/GenArt721RoyaltyOverride.json +0 -208
  287. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol/GenArt721RoyaltyOverride_PBAB.json +0 -301
  288. package/contracts/royalty-registry/GenArt721RoyaltyOverride.sol +0 -168
  289. package/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol +0 -221
@@ -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,601 +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",
41
+ "name": "ownedNFTProjectIdsAdd",
47
42
  "type": "uint256[]"
48
- }
49
- ],
50
- "name": "AllowedHoldersOfProjects",
51
- "type": "event"
52
- },
53
- {
54
- "anonymous": false,
55
- "inputs": [
56
- {
57
- "indexed": false,
58
- "internalType": "uint256",
59
- "name": "_minimumAuctionLengthSeconds",
60
- "type": "uint256"
61
- }
62
- ],
63
- "name": "AuctionMinimumLengthSecondsUpdated",
64
- "type": "event"
65
- },
66
- {
67
- "anonymous": false,
68
- "inputs": [
69
- {
70
- "indexed": true,
71
- "internalType": "uint256",
72
- "name": "_projectId",
73
- "type": "uint256"
74
- },
75
- {
76
- "indexed": true,
77
- "internalType": "address",
78
- "name": "_coreContract",
79
- "type": "address"
80
- },
81
- {
82
- "indexed": false,
83
- "internalType": "bytes32",
84
- "name": "_key",
85
- "type": "bytes32"
86
- }
87
- ],
88
- "name": "ConfigKeyRemoved",
89
- "type": "event"
90
- },
91
- {
92
- "anonymous": false,
93
- "inputs": [
94
- {
95
- "indexed": true,
96
- "internalType": "uint256",
97
- "name": "_projectId",
98
- "type": "uint256"
99
- },
100
- {
101
- "indexed": true,
102
- "internalType": "address",
103
- "name": "_coreContract",
104
- "type": "address"
105
- },
106
- {
107
- "indexed": false,
108
- "internalType": "bytes32",
109
- "name": "_key",
110
- "type": "bytes32"
111
- },
112
- {
113
- "indexed": false,
114
- "internalType": "uint256",
115
- "name": "_value",
116
- "type": "uint256"
117
- }
118
- ],
119
- "name": "ConfigValueAddedToSet",
120
- "type": "event"
121
- },
122
- {
123
- "anonymous": false,
124
- "inputs": [
125
- {
126
- "indexed": true,
127
- "internalType": "uint256",
128
- "name": "_projectId",
129
- "type": "uint256"
130
- },
131
- {
132
- "indexed": true,
133
- "internalType": "address",
134
- "name": "_coreContract",
135
- "type": "address"
136
- },
137
- {
138
- "indexed": false,
139
- "internalType": "bytes32",
140
- "name": "_key",
141
- "type": "bytes32"
142
- },
143
- {
144
- "indexed": false,
145
- "internalType": "address",
146
- "name": "_value",
147
- "type": "address"
148
- }
149
- ],
150
- "name": "ConfigValueAddedToSet",
151
- "type": "event"
152
- },
153
- {
154
- "anonymous": false,
155
- "inputs": [
156
- {
157
- "indexed": true,
158
- "internalType": "uint256",
159
- "name": "_projectId",
160
- "type": "uint256"
161
- },
162
- {
163
- "indexed": true,
164
- "internalType": "address",
165
- "name": "_coreContract",
166
- "type": "address"
167
- },
168
- {
169
- "indexed": false,
170
- "internalType": "bytes32",
171
- "name": "_key",
172
- "type": "bytes32"
173
- },
174
- {
175
- "indexed": false,
176
- "internalType": "bytes32",
177
- "name": "_value",
178
- "type": "bytes32"
179
- }
180
- ],
181
- "name": "ConfigValueAddedToSet",
182
- "type": "event"
183
- },
184
- {
185
- "anonymous": false,
186
- "inputs": [
187
- {
188
- "indexed": true,
189
- "internalType": "uint256",
190
- "name": "_projectId",
191
- "type": "uint256"
192
- },
193
- {
194
- "indexed": true,
195
- "internalType": "address",
196
- "name": "_coreContract",
197
- "type": "address"
198
- },
199
- {
200
- "indexed": false,
201
- "internalType": "bytes32",
202
- "name": "_key",
203
- "type": "bytes32"
204
- },
205
- {
206
- "indexed": false,
207
- "internalType": "uint256",
208
- "name": "_value",
209
- "type": "uint256"
210
- }
211
- ],
212
- "name": "ConfigValueRemovedFromSet",
213
- "type": "event"
214
- },
215
- {
216
- "anonymous": false,
217
- "inputs": [
218
- {
219
- "indexed": true,
220
- "internalType": "uint256",
221
- "name": "_projectId",
222
- "type": "uint256"
223
- },
224
- {
225
- "indexed": true,
226
- "internalType": "address",
227
- "name": "_coreContract",
228
- "type": "address"
229
- },
230
- {
231
- "indexed": false,
232
- "internalType": "bytes32",
233
- "name": "_key",
234
- "type": "bytes32"
235
- },
236
- {
237
- "indexed": false,
238
- "internalType": "address",
239
- "name": "_value",
240
- "type": "address"
241
- }
242
- ],
243
- "name": "ConfigValueRemovedFromSet",
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": true,
257
- "internalType": "address",
258
- "name": "_coreContract",
259
- "type": "address"
260
- },
261
- {
262
- "indexed": false,
263
- "internalType": "bytes32",
264
- "name": "_key",
265
- "type": "bytes32"
266
- },
267
- {
268
- "indexed": false,
269
- "internalType": "bytes32",
270
- "name": "_value",
271
- "type": "bytes32"
272
- }
273
- ],
274
- "name": "ConfigValueRemovedFromSet",
275
- "type": "event"
276
- },
277
- {
278
- "anonymous": false,
279
- "inputs": [
280
- {
281
- "indexed": true,
282
- "internalType": "uint256",
283
- "name": "_projectId",
284
- "type": "uint256"
285
- },
286
- {
287
- "indexed": true,
288
- "internalType": "address",
289
- "name": "_coreContract",
290
- "type": "address"
291
- },
292
- {
293
- "indexed": false,
294
- "internalType": "bytes32",
295
- "name": "_key",
296
- "type": "bytes32"
297
- },
298
- {
299
- "indexed": false,
300
- "internalType": "bool",
301
- "name": "_value",
302
- "type": "bool"
303
- }
304
- ],
305
- "name": "ConfigValueSet",
306
- "type": "event"
307
- },
308
- {
309
- "anonymous": false,
310
- "inputs": [
311
- {
312
- "indexed": true,
313
- "internalType": "uint256",
314
- "name": "_projectId",
315
- "type": "uint256"
316
- },
317
- {
318
- "indexed": true,
319
- "internalType": "address",
320
- "name": "_coreContract",
321
- "type": "address"
322
- },
323
- {
324
- "indexed": false,
325
- "internalType": "bytes32",
326
- "name": "_key",
327
- "type": "bytes32"
328
- },
329
- {
330
- "indexed": false,
331
- "internalType": "uint256",
332
- "name": "_value",
333
- "type": "uint256"
334
- }
335
- ],
336
- "name": "ConfigValueSet",
337
- "type": "event"
338
- },
339
- {
340
- "anonymous": false,
341
- "inputs": [
342
- {
343
- "indexed": true,
344
- "internalType": "uint256",
345
- "name": "_projectId",
346
- "type": "uint256"
347
- },
348
- {
349
- "indexed": true,
350
- "internalType": "address",
351
- "name": "_coreContract",
352
- "type": "address"
353
- },
354
- {
355
- "indexed": false,
356
- "internalType": "bytes32",
357
- "name": "_key",
358
- "type": "bytes32"
359
- },
360
- {
361
- "indexed": false,
362
- "internalType": "address",
363
- "name": "_value",
364
- "type": "address"
365
- }
366
- ],
367
- "name": "ConfigValueSet",
368
- "type": "event"
369
- },
370
- {
371
- "anonymous": false,
372
- "inputs": [
373
- {
374
- "indexed": true,
375
- "internalType": "uint256",
376
- "name": "_projectId",
377
- "type": "uint256"
378
- },
379
- {
380
- "indexed": true,
381
- "internalType": "address",
382
- "name": "_coreContract",
383
- "type": "address"
384
- },
385
- {
386
- "indexed": false,
387
- "internalType": "bytes32",
388
- "name": "_key",
389
- "type": "bytes32"
390
- },
391
- {
392
- "indexed": false,
393
- "internalType": "bytes32",
394
- "name": "_value",
395
- "type": "bytes32"
396
- }
397
- ],
398
- "name": "ConfigValueSet",
399
- "type": "event"
400
- },
401
- {
402
- "anonymous": false,
403
- "inputs": [
404
- {
405
- "indexed": false,
406
- "internalType": "address",
407
- "name": "delegationRegistry",
408
- "type": "address"
409
- }
410
- ],
411
- "name": "DelegationRegistryUpdated",
412
- "type": "event"
413
- },
414
- {
415
- "anonymous": false,
416
- "inputs": [
417
- {
418
- "indexed": true,
419
- "internalType": "uint256",
420
- "name": "_projectId",
421
- "type": "uint256"
422
- },
423
- {
424
- "indexed": true,
425
- "internalType": "address",
426
- "name": "_coreContract",
427
- "type": "address"
428
- },
429
- {
430
- "indexed": true,
431
- "internalType": "uint256",
432
- "name": "_pricePerTokenInWei",
433
- "type": "uint256"
434
- }
435
- ],
436
- "name": "PricePerTokenInWeiUpdated",
437
- "type": "event"
438
- },
439
- {
440
- "anonymous": false,
441
- "inputs": [
442
- {
443
- "indexed": true,
444
- "internalType": "uint256",
445
- "name": "_projectId",
446
- "type": "uint256"
447
- },
448
- {
449
- "indexed": true,
450
- "internalType": "address",
451
- "name": "_coreContract",
452
- "type": "address"
453
- },
454
- {
455
- "indexed": true,
456
- "internalType": "address",
457
- "name": "_currencyAddress",
458
- "type": "address"
459
- },
460
- {
461
- "indexed": false,
462
- "internalType": "string",
463
- "name": "_currencySymbol",
464
- "type": "string"
465
- }
466
- ],
467
- "name": "ProjectCurrencyInfoUpdated",
468
- "type": "event"
469
- },
470
- {
471
- "anonymous": false,
472
- "inputs": [
473
- {
474
- "indexed": true,
475
- "internalType": "uint256",
476
- "name": "_projectId",
477
- "type": "uint256"
478
- },
479
- {
480
- "indexed": true,
481
- "internalType": "address",
482
- "name": "_coreContract",
483
- "type": "address"
484
- },
485
- {
486
- "indexed": false,
487
- "internalType": "uint256",
488
- "name": "_maxInvocations",
489
- "type": "uint256"
490
- }
491
- ],
492
- "name": "ProjectMaxInvocationsLimitUpdated",
493
- "type": "event"
494
- },
495
- {
496
- "anonymous": false,
497
- "inputs": [
498
- {
499
- "indexed": true,
500
- "internalType": "uint256",
501
- "name": "_projectId",
502
- "type": "uint256"
503
- },
504
- {
505
- "indexed": true,
506
- "internalType": "address",
507
- "name": "_coreContract",
508
- "type": "address"
509
- },
510
- {
511
- "indexed": false,
512
- "internalType": "address[]",
513
- "name": "_ownedNFTAddresses",
514
- "type": "address[]"
515
- },
516
- {
517
- "indexed": false,
518
- "internalType": "uint256[]",
519
- "name": "_ownedNFTProjectIds",
520
- "type": "uint256[]"
521
- }
522
- ],
523
- "name": "RemovedHoldersOfProjects",
524
- "type": "event"
525
- },
526
- {
527
- "anonymous": false,
528
- "inputs": [
529
- {
530
- "indexed": true,
531
- "internalType": "uint256",
532
- "name": "_projectId",
533
- "type": "uint256"
534
- },
535
- {
536
- "indexed": true,
537
- "internalType": "address",
538
- "name": "_coreContract",
539
- "type": "address"
540
- }
541
- ],
542
- "name": "ResetAuctionDetails",
543
- "type": "event"
544
- },
545
- {
546
- "anonymous": false,
547
- "inputs": [
548
- {
549
- "indexed": true,
550
- "internalType": "uint256",
551
- "name": "_projectId",
552
- "type": "uint256"
553
- },
554
- {
555
- "indexed": true,
556
- "internalType": "address",
557
- "name": "_coreContract",
558
- "type": "address"
559
- },
560
- {
561
- "indexed": false,
562
- "internalType": "uint40",
563
- "name": "_auctionTimestampStart",
564
- "type": "uint40"
565
- },
566
- {
567
- "indexed": false,
568
- "internalType": "uint40",
569
- "name": "_auctionTimestampEnd",
570
- "type": "uint40"
571
- },
572
- {
573
- "indexed": false,
574
- "internalType": "uint256",
575
- "name": "_startPrice",
576
- "type": "uint256"
577
- },
578
- {
579
- "indexed": false,
580
- "internalType": "uint256",
581
- "name": "_basePrice",
582
- "type": "uint256"
583
- }
584
- ],
585
- "name": "SetAuctionDetailsLin",
586
- "type": "event"
587
- },
588
- {
589
- "inputs": [
590
- {
591
- "internalType": "uint256",
592
- "name": "_projectId",
593
- "type": "uint256"
594
- },
595
- {
596
- "internalType": "address",
597
- "name": "_coreContract",
598
- "type": "address"
599
43
  },
600
44
  {
601
45
  "internalType": "address[]",
602
- "name": "_ownedNFTAddressesAdd",
46
+ "name": "ownedNFTAddressesRemove",
603
47
  "type": "address[]"
604
48
  },
605
49
  {
606
50
  "internalType": "uint256[]",
607
- "name": "_ownedNFTProjectIdsAdd",
608
- "type": "uint256[]"
609
- },
610
- {
611
- "internalType": "address[]",
612
- "name": "_ownedNFTAddressesRemove",
613
- "type": "address[]"
614
- },
615
- {
616
- "internalType": "uint256[]",
617
- "name": "_ownedNFTProjectIdsRemove",
51
+ "name": "ownedNFTProjectIdsRemove",
618
52
  "type": "uint256[]"
619
53
  }
620
54
  ],
@@ -627,22 +61,22 @@
627
61
  "inputs": [
628
62
  {
629
63
  "internalType": "uint256",
630
- "name": "_projectId",
64
+ "name": "projectId",
631
65
  "type": "uint256"
632
66
  },
633
67
  {
634
68
  "internalType": "address",
635
- "name": "_coreContract",
69
+ "name": "coreContract",
636
70
  "type": "address"
637
71
  },
638
72
  {
639
73
  "internalType": "address[]",
640
- "name": "_ownedNFTAddresses",
74
+ "name": "ownedNFTAddresses",
641
75
  "type": "address[]"
642
76
  },
643
77
  {
644
78
  "internalType": "uint256[]",
645
- "name": "_ownedNFTProjectIds",
79
+ "name": "ownedNFTProjectIds",
646
80
  "type": "uint256[]"
647
81
  }
648
82
  ],
@@ -655,22 +89,22 @@
655
89
  "inputs": [
656
90
  {
657
91
  "internalType": "uint256",
658
- "name": "_projectId",
92
+ "name": "projectId",
659
93
  "type": "uint256"
660
94
  },
661
95
  {
662
96
  "internalType": "address",
663
- "name": "_coreContract",
97
+ "name": "coreContract",
664
98
  "type": "address"
665
99
  },
666
100
  {
667
101
  "internalType": "address",
668
- "name": "_ownedNFTAddress",
102
+ "name": "ownedNFTAddress",
669
103
  "type": "address"
670
104
  },
671
105
  {
672
106
  "internalType": "uint256",
673
- "name": "_ownedNFTProjectId",
107
+ "name": "ownedNFTProjectId",
674
108
  "type": "uint256"
675
109
  }
676
110
  ],
@@ -702,12 +136,12 @@
702
136
  "inputs": [
703
137
  {
704
138
  "internalType": "uint256",
705
- "name": "_projectId",
139
+ "name": "projectId",
706
140
  "type": "uint256"
707
141
  },
708
142
  {
709
143
  "internalType": "address",
710
- "name": "_coreContract",
144
+ "name": "coreContract",
711
145
  "type": "address"
712
146
  }
713
147
  ],
@@ -741,22 +175,22 @@
741
175
  "inputs": [
742
176
  {
743
177
  "internalType": "uint256",
744
- "name": "_projectId",
178
+ "name": "projectId",
745
179
  "type": "uint256"
746
180
  },
747
181
  {
748
182
  "internalType": "address",
749
- "name": "_coreContract",
183
+ "name": "coreContract",
750
184
  "type": "address"
751
185
  },
752
186
  {
753
187
  "internalType": "address",
754
- "name": "_ownedNFTAddress",
188
+ "name": "ownedNFTAddress",
755
189
  "type": "address"
756
190
  },
757
191
  {
758
192
  "internalType": "uint256",
759
- "name": "_ownedNFTTokenId",
193
+ "name": "ownedNFTTokenId",
760
194
  "type": "uint256"
761
195
  }
762
196
  ],
@@ -775,7 +209,7 @@
775
209
  "inputs": [
776
210
  {
777
211
  "internalType": "address",
778
- "name": "_coreContract",
212
+ "name": "coreContract",
779
213
  "type": "address"
780
214
  }
781
215
  ],
@@ -794,17 +228,17 @@
794
228
  "inputs": [
795
229
  {
796
230
  "internalType": "uint256",
797
- "name": "_projectId",
231
+ "name": "projectId",
798
232
  "type": "uint256"
799
233
  },
800
234
  {
801
235
  "internalType": "address",
802
- "name": "_coreContract",
236
+ "name": "coreContract",
803
237
  "type": "address"
804
238
  },
805
239
  {
806
240
  "internalType": "uint24",
807
- "name": "_maxInvocations",
241
+ "name": "maxInvocations",
808
242
  "type": "uint24"
809
243
  }
810
244
  ],
@@ -817,12 +251,12 @@
817
251
  "inputs": [
818
252
  {
819
253
  "internalType": "uint256",
820
- "name": "_projectId",
254
+ "name": "projectId",
821
255
  "type": "uint256"
822
256
  },
823
257
  {
824
258
  "internalType": "address",
825
- "name": "_coreContract",
259
+ "name": "coreContract",
826
260
  "type": "address"
827
261
  }
828
262
  ],
@@ -905,12 +339,12 @@
905
339
  "inputs": [
906
340
  {
907
341
  "internalType": "uint256",
908
- "name": "_projectId",
342
+ "name": "projectId",
909
343
  "type": "uint256"
910
344
  },
911
345
  {
912
346
  "internalType": "address",
913
- "name": "_coreContract",
347
+ "name": "coreContract",
914
348
  "type": "address"
915
349
  }
916
350
  ],
@@ -944,12 +378,12 @@
944
378
  "inputs": [
945
379
  {
946
380
  "internalType": "uint256",
947
- "name": "_projectId",
381
+ "name": "projectId",
948
382
  "type": "uint256"
949
383
  },
950
384
  {
951
385
  "internalType": "address",
952
- "name": "_coreContract",
386
+ "name": "coreContract",
953
387
  "type": "address"
954
388
  }
955
389
  ],
@@ -968,12 +402,12 @@
968
402
  "inputs": [
969
403
  {
970
404
  "internalType": "uint256",
971
- "name": "_projectId",
405
+ "name": "projectId",
972
406
  "type": "uint256"
973
407
  },
974
408
  {
975
409
  "internalType": "address",
976
- "name": "_coreContract",
410
+ "name": "coreContract",
977
411
  "type": "address"
978
412
  }
979
413
  ],
@@ -992,22 +426,22 @@
992
426
  "inputs": [
993
427
  {
994
428
  "internalType": "uint256",
995
- "name": "_projectId",
429
+ "name": "projectId",
996
430
  "type": "uint256"
997
431
  },
998
432
  {
999
433
  "internalType": "address",
1000
- "name": "_coreContract",
434
+ "name": "coreContract",
1001
435
  "type": "address"
1002
436
  },
1003
437
  {
1004
438
  "internalType": "address",
1005
- "name": "_ownedNFTAddress",
439
+ "name": "ownedNFTAddress",
1006
440
  "type": "address"
1007
441
  },
1008
442
  {
1009
443
  "internalType": "uint256",
1010
- "name": "_ownedNFTTokenId",
444
+ "name": "ownedNFTTokenId",
1011
445
  "type": "uint256"
1012
446
  }
1013
447
  ],
@@ -1026,32 +460,32 @@
1026
460
  "inputs": [
1027
461
  {
1028
462
  "internalType": "address",
1029
- "name": "_to",
463
+ "name": "to",
1030
464
  "type": "address"
1031
465
  },
1032
466
  {
1033
467
  "internalType": "uint256",
1034
- "name": "_projectId",
468
+ "name": "projectId",
1035
469
  "type": "uint256"
1036
470
  },
1037
471
  {
1038
472
  "internalType": "address",
1039
- "name": "_coreContract",
473
+ "name": "coreContract",
1040
474
  "type": "address"
1041
475
  },
1042
476
  {
1043
477
  "internalType": "address",
1044
- "name": "_ownedNFTAddress",
478
+ "name": "ownedNFTAddress",
1045
479
  "type": "address"
1046
480
  },
1047
481
  {
1048
482
  "internalType": "uint256",
1049
- "name": "_ownedNFTTokenId",
483
+ "name": "ownedNFTTokenId",
1050
484
  "type": "uint256"
1051
485
  },
1052
486
  {
1053
487
  "internalType": "address",
1054
- "name": "_vault",
488
+ "name": "vault",
1055
489
  "type": "address"
1056
490
  }
1057
491
  ],
@@ -1070,27 +504,27 @@
1070
504
  "inputs": [
1071
505
  {
1072
506
  "internalType": "address",
1073
- "name": "_to",
507
+ "name": "to",
1074
508
  "type": "address"
1075
509
  },
1076
510
  {
1077
511
  "internalType": "uint256",
1078
- "name": "_projectId",
512
+ "name": "projectId",
1079
513
  "type": "uint256"
1080
514
  },
1081
515
  {
1082
516
  "internalType": "address",
1083
- "name": "_coreContract",
517
+ "name": "coreContract",
1084
518
  "type": "address"
1085
519
  },
1086
520
  {
1087
521
  "internalType": "address",
1088
- "name": "_ownedNFTAddress",
522
+ "name": "ownedNFTAddress",
1089
523
  "type": "address"
1090
524
  },
1091
525
  {
1092
526
  "internalType": "uint256",
1093
- "name": "_ownedNFTTokenId",
527
+ "name": "ownedNFTTokenId",
1094
528
  "type": "uint256"
1095
529
  }
1096
530
  ],
@@ -1109,22 +543,22 @@
1109
543
  "inputs": [
1110
544
  {
1111
545
  "internalType": "uint256",
1112
- "name": "_projectId",
546
+ "name": "projectId",
1113
547
  "type": "uint256"
1114
548
  },
1115
549
  {
1116
550
  "internalType": "address",
1117
- "name": "_coreContract",
551
+ "name": "coreContract",
1118
552
  "type": "address"
1119
553
  },
1120
554
  {
1121
555
  "internalType": "address[]",
1122
- "name": "_ownedNFTAddresses",
556
+ "name": "ownedNFTAddresses",
1123
557
  "type": "address[]"
1124
558
  },
1125
559
  {
1126
560
  "internalType": "uint256[]",
1127
- "name": "_ownedNFTProjectIds",
561
+ "name": "ownedNFTProjectIds",
1128
562
  "type": "uint256[]"
1129
563
  }
1130
564
  ],
@@ -1137,12 +571,12 @@
1137
571
  "inputs": [
1138
572
  {
1139
573
  "internalType": "uint256",
1140
- "name": "_projectId",
574
+ "name": "projectId",
1141
575
  "type": "uint256"
1142
576
  },
1143
577
  {
1144
578
  "internalType": "address",
1145
- "name": "_coreContract",
579
+ "name": "coreContract",
1146
580
  "type": "address"
1147
581
  }
1148
582
  ],
@@ -1155,32 +589,32 @@
1155
589
  "inputs": [
1156
590
  {
1157
591
  "internalType": "uint256",
1158
- "name": "_projectId",
592
+ "name": "projectId",
1159
593
  "type": "uint256"
1160
594
  },
1161
595
  {
1162
596
  "internalType": "address",
1163
- "name": "_coreContract",
597
+ "name": "coreContract",
1164
598
  "type": "address"
1165
599
  },
1166
600
  {
1167
601
  "internalType": "uint40",
1168
- "name": "_auctionTimestampStart",
602
+ "name": "auctionTimestampStart",
1169
603
  "type": "uint40"
1170
604
  },
1171
605
  {
1172
606
  "internalType": "uint40",
1173
- "name": "_auctionTimestampEnd",
607
+ "name": "auctionTimestampEnd",
1174
608
  "type": "uint40"
1175
609
  },
1176
610
  {
1177
611
  "internalType": "uint256",
1178
- "name": "_startPrice",
612
+ "name": "startPrice",
1179
613
  "type": "uint256"
1180
614
  },
1181
615
  {
1182
616
  "internalType": "uint256",
1183
- "name": "_basePrice",
617
+ "name": "basePrice",
1184
618
  "type": "uint256"
1185
619
  }
1186
620
  ],
@@ -1193,7 +627,7 @@
1193
627
  "inputs": [
1194
628
  {
1195
629
  "internalType": "uint256",
1196
- "name": "_minimumAuctionLengthSeconds",
630
+ "name": "minimumAuctionLengthSeconds_",
1197
631
  "type": "uint256"
1198
632
  }
1199
633
  ],
@@ -1206,12 +640,12 @@
1206
640
  "inputs": [
1207
641
  {
1208
642
  "internalType": "uint256",
1209
- "name": "_projectId",
643
+ "name": "projectId",
1210
644
  "type": "uint256"
1211
645
  },
1212
646
  {
1213
647
  "internalType": "address",
1214
- "name": "_coreContract",
648
+ "name": "coreContract",
1215
649
  "type": "address"
1216
650
  }
1217
651
  ],
@@ -1221,8 +655,8 @@
1221
655
  "type": "function"
1222
656
  }
1223
657
  ],
1224
- "bytecode": "0x6101006040526102586001553480156200001857600080fd5b5060405162002bc338038062002bc38339810160408190526200003b91620000f3565b60016000556001600160a01b03828116608081905260a052811660c081905260e08190526040519081527f836360d1b094a7de3c3eab3d1185f3a5939467c23d4a12709dbdbf8c8d7e2f3b9060200160405180910390a17f60faa7f980566852d75d660aa6b4fed89d6ec2b2137d08e2f12dbe34028b7030600154604051620000c691815260200190565b60405180910390a150506200012b565b80516001600160a01b0381168114620000ee57600080fd5b919050565b600080604083850312156200010757600080fd5b6200011283620000d6565b91506200012260208401620000d6565b90509250929050565b60805160a05160c05160e051612a576200016c60003960006108850152600061033e0152600061097a0152600081816104390152610a460152612a576000f3fe60806040526004361061011b5760003560e01c806301000da7146101205780630c49ef311461015557806319d29d7e146101775780632fc37ef11461019857806339b87cf8146101b85780634869f3df146101d85780637fbbc005146101f85780638a605b511461020b57806395c575fa1461022b5780639a94488a1461024b5780639d923dff146102e3578063b000e334146102f6578063b2d30ac714610316578063bf5bf5f81461032c578063cce7c90914610378578063d3ddabe614610398578063d9bffbce146103d7578063d9eb16db146103f7578063dd85582f14610427578063e9d1e8ac1461045b578063f7f5e9d01461049a578063fca23f4e146104ba578063fdca4cb814610514578063fea1d7b414610534575b600080fd5b34801561012c57600080fd5b5061014061013b3660046120d9565b6105b4565b60405190151581526020015b60405180910390f35b34801561016157600080fd5b5061017561017036600461222e565b6105f5565b005b61018a6101853660046122f3565b6106c0565b60405190815260200161014c565b3480156101a457600080fd5b506101756101b3366004612363565b610a41565b3480156101c457600080fd5b506101406101d336600461237c565b610aaf565b3480156101e457600080fd5b5061018a6101f33660046123c4565b610ae6565b61018a61020636600461237c565b610b1e565b34801561021757600080fd5b506101756102263660046123f4565b610b2f565b34801561023757600080fd5b506101756102463660046123c4565b610bb2565b34801561025757600080fd5b506102c16102663660046123c4565b6040805180820190915260008082526020820152506001600160a01b031660009081526004602090815260408083209383529281529082902082518084019093525460ff811615158352610100900462ffffff169082015290565b6040805182511515815260209283015162ffffff16928101929092520161014c565b61018a6102f1366004612473565b610c16565b34801561030257600080fd5b506101756103113660046124ce565b610c31565b34801561032257600080fd5b5061018a60015481565b34801561033857600080fd5b506103607f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161014c565b34801561038457600080fd5b506101406103933660046123c4565b610cb9565b3480156103a457600080fd5b506103ca60405180604001604052806006815260200165076352e302e360d41b81525081565b60405161014c9190612568565b3480156103e357600080fd5b506101756103f23660046123c4565b610ce5565b34801561040357600080fd5b506104176104123660046123c4565b610d5e565b60405161014c949392919061257b565b34801561043357600080fd5b506103607f000000000000000000000000000000000000000000000000000000000000000081565b34801561046757600080fd5b506103ca604051806040016040528060138152602001724d696e74657244414c696e486f6c646572563560681b81525081565b3480156104a657600080fd5b506101756104b53660046123f4565b610e0a565b3480156104c657600080fd5b506101406104d536600461237c565b6001600160a01b039283166000908152600560209081526040808320968352958152858220939094168152918352838220908252909152205460ff1690565b34801561052057600080fd5b5061017561052f3660046125ca565b610e7f565b34801561054057600080fd5b506105a461054f3660046123c4565b6001600160a01b03166000908152600360209081526040808320938352929052205464ffffffffff80821692600160281b8304909116916001600160581b03600160501b8204811692600160a81b9092041690565b60405161014c949392919061262b565b6001600160a01b03811660009081526002602052604081208054610100900460ff16156105e5575460ff1692915050565b6105ee83610fe5565b9392505050565b61060086863361111d565b6001600160a01b038516600090815260056020908152604080832089845290915290206106309085858585611167565b846001600160a01b0316867fe4e108abe1d65a55b2c49a1586fb2afa6c3d79732947e37f71a6c23a5b08ff82868660405161066c929190612652565b60405180910390a3846001600160a01b0316867f5728c49515724a90b87298ccfb6a8868ff0bfddf7e4fe298cea807dd815ced0984846040516106b0929190612652565b60405180910390a3505050505050565b60006002600054036107195760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b600260009081556001600160a01b0386168082526004602090815260408084208a85528252808420928452600382528084208a8552909152909120815460ff16156107765760405162461bcd60e51b8152600401610710906126d6565b600061078182611184565b9050803410156107cc5760405162461bcd60e51b815260206004820152601660248201527526b4b7103b30b63ab2903a379036b4b73a103932b89760511b6044820152606401610710565b6001600160a01b03881660009081526005602090815260408083208c845290915290206107fa908888611289565b61083e5760405162461bcd60e51b81526020600482015260156024820152744f6e6c7920616c6c6f776c6973746564204e46547360581b6044820152606401610710565b336001600160a01b0386161561094657604051631574d39f60e31b81523360048201526001600160a01b0387811660248301528a81166044830152606482018990526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aba69cf890608401602060405180830381865afa1580156108ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f29190612717565b9050806109415760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642064656c65676174652d7661756c742070616972696e6700006044820152606401610710565b869150505b6040516117cd60e21b81526001600160a01b038c81166004830152602482018c90528a8116604483015282811660648301527f00000000000000000000000000000000000000000000000000000000000000001690615f34906084016020604051808303816000875af11580156109c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e59190612732565b94506109f185856112c7565b6109fc888883611316565b6001600160a01b0389166000908152600260205260408120610a1f908b906113d9565b9050610a2d8b848c8461140b565b505050505060016000559695505050505050565b610a747f00000000000000000000000000000000000000000000000000000000000000003330632fc37ef160e01b6114c2565b60018190556040518181527f60faa7f980566852d75d660aa6b4fed89d6ec2b2137d08e2f12dbe34028b70309060200160405180910390a150565b6001600160a01b03831660009081526005602090815260408083208784529091528120610add908484611289565b95945050505050565b6001600160a01b0381166000908152600460209081526040808320858452909152812054610100900462ffffff165b90505b92915050565b6000610add338686868660006106c0565b610b3a84843361111d565b6001600160a01b03831660009081526005602090815260408083208784529091529020610b68908383611517565b826001600160a01b0316847fe4e108abe1d65a55b2c49a1586fb2afa6c3d79732947e37f71a6c23a5b08ff828484604051610ba4929190612652565b60405180910390a350505050565b610bc5813330634ae2bafd60e11b6115da565b6001600160a01b03811660008181526003602090815260408083208684529091528082208290555184917f865169678476a498ca03f184818d6bd6217dd57b754577a944c19d6d75587c8091a35050565b6000610c27868686868660006106c0565b9695505050505050565b610c3c83833361111d565b6001600160a01b03821660009081526004602090815260408083208684529091529020610c6e9084908490849061162f565b60405162ffffff821681526001600160a01b0383169084907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e237906020015b60405180910390a3505050565b6001600160a01b038116600090815260046020908152604080832085845290915281205460ff16610b15565b610cf082823361111d565b6001600160a01b03811660009081526004602090815260408083208584529091528120610d2090849084906116b6565b9050816001600160a01b0316837f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e23783604051610cac91815260200190565b6001600160a01b038116600090815260036020908152604080832085845290915281208054600160501b90046001600160581b031615159190606090829084610daa5760009350610dde565b805464ffffffffff164211610dd2578054600160501b90046001600160581b03169350610dde565b610ddb81611184565b93505b6040518060400160405280600381526020016208aa8960eb1b8152509250600091505092959194509250565b610e1584843361111d565b6001600160a01b03831660009081526005602090815260408083208784529091529020610e4390838361175b565b826001600160a01b0316847f5728c49515724a90b87298ccfb6a8868ff0bfddf7e4fe298cea807dd815ced098484604051610ba4929190612652565b610e8a86863361111d565b6001600160a01b03851660008181526003602090815260408083208a84528252808320938352600482528083208a84529091529020600154610ed39064ffffffffff8816612761565b8564ffffffffff161015610f4d5760405162461bcd60e51b815260206004820152603b60248201527f41756374696f6e206c656e677468206d757374206265206174206c656173742060448201527a6d696e696d756d41756374696f6e4c656e6774685365636f6e647360281b6064820152608401610710565b6000610f5a825460ff1690565b9050610f7a838888610f6b8961181e565b610f748961181e565b8661188a565b876001600160a01b0316897f6d30de23b433ca9d1b35a23dbad7d163697515522cc04a716ce7c5cbde84e8c789898989604051610fba949392919061262b565b60405180910390a3610fcb82611a27565b15610fda57610fda8989610ce5565b505050505050505050565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03861690611047908590612774565b600060405180830381855afa9150503d8060008114611082576040519150601f19603f3d011682016040523d82523d6000602084013e611087565b606091505b5091509150816110a95760405162461bcd60e51b815260040161071090612790565b805160c08190036110c05750600095945050505050565b80610100036110d55750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c697420627974657300006044820152606401610710565b611128838383611a47565b6111625760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b6044820152606401610710565b505050565b611172858585611517565b61117d85838361175b565b5050505050565b805460009064ffffffffff80821691600160281b8104909116906001600160581b03600160501b8204811691600160a81b9004164284106112015760405162461bcd60e51b8152602060048201526017602482015276105d58dd1a5bdb881b9bdd081e595d081cdd185c9d1959604a1b6044820152606401610710565b8242106112535760008311610add5760405162461bcd60e51b81526020600482015260186024820152774f6e6c7920636f6e666967757265642061756374696f6e7360401b6044820152606401610710565b428490038484038284038161126882856127d5565b61127291906127ec565b61127c908661280e565b9998505050505050505050565b600080611299620f4240846127ec565b6001600160a01b038516600090815260208781526040808320938352929052205460ff169150509392505050565b8054620f4240830660010190610100900462ffffff16808211156112fd5760405162461bcd60e51b8152600401610710906126d6565b80820361131057825460ff191660011783555b50505050565b6040516331a9108f60e11b8152600481018390526000906001600160a01b03851690636352211e90602401602060405180830381865afa15801561135e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113829190612821565b9050816001600160a01b0316816001600160a01b0316146113105760405162461bcd60e51b815260206004820152601160248201527013db9b1e481bdddb995c881bd988139195607a1b6044820152606401610710565b8054600090610100900460ff16156113f65750805460ff16610b18565b60006114028484611ad0565b9150610b189050565b34156113105760008061141e853461280e565b905080156114ae5760405133908290600081818185875af1925050503d8060008114611466576040519150601f19603f3d011682016040523d82523d6000602084013e61146b565b606091505b505080925050816114ae5760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b6044820152606401610710565b6114ba86868686611be0565b505050505050565b6114ce84848484611fab565b6113105760405162461bcd60e51b815260206004820152601a60248201527913db9b1e48135a5b9d195c919a5b1d195c8810591b5a5b9050d360321b6044820152606401610710565b80518251146115385760405162461bcd60e51b81526004016107109061283e565b60005b825181101561131057600184600001600085848151811061155e5761155e61287f565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600084848151811061159a5761159a61287f565b6020026020010151815260200190815260200160002060006101000a81548160ff02191690831515021790555080806115d290612895565b91505061153b565b6115e684848484611fab565b6113105760405162461bcd60e51b815260206004820152601a60248201527913db9b1e4810dbdc994810591b5a5b9050d308185b1b1bddd95960321b6044820152606401610710565b60008061163c8686612033565b91509150808462ffffff1611156116655760405162461bcd60e51b8152600401610710906128ae565b818462ffffff16101561168a5760405162461bcd60e51b8152600401610710906128ae565b50815460ff1962ffffff90941661010081029490941663ffffffff199091161792149190911790555050565b6000806000846001600160a01b0316630ea5613f876040518263ffffffff1660e01b81526004016116e991815260200190565b60c060405180830381865afa158015611706573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172a91906128df565b5050875493831463ffffffff1990941661010062ffffff85160260ff19161793909317909655979650505050505050565b805182511461177c5760405162461bcd60e51b81526004016107109061283e565b60005b82518110156113105760008460000160008584815181106117a2576117a261287f565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008484815181106117de576117de61287f565b6020026020010151815260200190815260200160002060006101000a81548160ff021916908315150217905550808061181690612895565b91505061177f565b60006001600160581b038211156118865760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203860448201526538206269747360d01b6064820152608401610710565b5090565b855464ffffffffff1615806118a65750855464ffffffffff1642105b806118ae5750805b6118f95760405162461bcd60e51b815260206004820152601c60248201527b27379036b7b234b334b1b0ba34b7b7399036b4b216b0bab1ba34b7b760211b6044820152606401610710565b8464ffffffffff1642106119465760405162461bcd60e51b81526020600482015260146024820152734f6e6c79206675747572652061756374696f6e7360601b6044820152606401610710565b816001600160581b0316836001600160581b0316116119ca5760405162461bcd60e51b815260206004820152603a60248201527f41756374696f6e207374617274207072696365206d7573742062652067726561604482015279746572207468616e2061756374696f6e20656e6420707269636560301b6064820152608401610710565b50845464ffffffffff9485166001600160501b031990911617600160281b9390941692909202929092176001600160501b0316600160501b6001600160581b03938416026001600160a81b031617600160a81b9190921602179055565b8054600090610100900462ffffff16158015610b185750505460ff161590565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa158015611a8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab39190612821565b6001600160a01b0316826001600160a01b03161490509392505050565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03871690611b32908590612774565b6000604051808303816000865af19150503d8060008114611b6f576040519150601f19603f3d011682016040523d82523d6000602084013e611b74565b606091505b509150915081611b965760405162461bcd60e51b815260040161071090612790565b805160c0819003611bbc575050835461ffff19166101001784555060009150610b189050565b80610100036110d5575050835461ffff19166101011784555060019150610b189050565b82156113105760008060008060008060008715611d3157604051638639415b60e01b8152600481018c9052602481018b905260009081906001600160a01b038c1690638639415b9060440161010060405180830381865afa158015611c49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c6d919061293e565b969e50949c50909a50985091965091945090925090508115611d2a576040516001600160a01b038216908390600081818185875af1925050503d8060008114611cd2576040519150601f19603f3d011682016040523d82523d6000602084013e611cd7565b606091505b50508099505088611d2a5760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c65646044820152606401610710565b5050611db1565b604051638639415b60e01b8152600481018c9052602481018b90526001600160a01b038a1690638639415b9060440160c060405180830381865afa158015611d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da191906129c6565b949a509298509096509450925090505b8515611e58576040516001600160a01b038616908790600081818185875af1925050503d8060008114611e00576040519150601f19603f3d011682016040523d82523d6000602084013e611e05565b606091505b50508097505086611e585760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c656400006044820152606401610710565b8315611ef7576040516001600160a01b038416908590600081818185875af1925050503d8060008114611ea7576040519150601f19603f3d011682016040523d82523d6000602084013e611eac565b606091505b50508097505086611ef75760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b6044820152606401610710565b8115611f9e576040516001600160a01b038216908390600081818185875af1925050503d8060008114611f46576040519150601f19603f3d011682016040523d82523d6000602084013e611f4b565b606091505b50508097505086611f9e5760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c6564006044820152606401610710565b5050505050505050505050565b60405163230448b160e01b81526001600160a01b03848116600483015283811660248301526001600160e01b0319831660448301526000919086169063230448b1906064016020604051808303816000875af115801561200f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610add9190612717565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b03841690630ea5613f9060240160c060405180830381865afa15801561207d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a191906128df565b5093989297509195505050505050565b6001600160a01b03811681146120c657600080fd5b50565b80356120d4816120b1565b919050565b6000602082840312156120eb57600080fd5b81356105ee816120b1565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612134576121346120f6565b604052919050565b60006001600160401b03821115612155576121556120f6565b5060051b60200190565b600082601f83011261217057600080fd5b813560206121856121808361213c565b61210c565b82815260059290921b840181019181810190868411156121a457600080fd5b8286015b848110156121c85780356121bb816120b1565b83529183019183016121a8565b509695505050505050565b600082601f8301126121e457600080fd5b813560206121f46121808361213c565b82815260059290921b8401810191818101908684111561221357600080fd5b8286015b848110156121c85780358352918301918301612217565b60008060008060008060c0878903121561224757600080fd5b86359550612257602088016120c9565b945060408701356001600160401b038082111561227357600080fd5b61227f8a838b0161215f565b9550606089013591508082111561229557600080fd5b6122a18a838b016121d3565b945060808901359150808211156122b757600080fd5b6122c38a838b0161215f565b935060a08901359150808211156122d957600080fd5b506122e689828a016121d3565b9150509295509295509295565b60008060008060008060c0878903121561230c57600080fd5b8635612317816120b1565b955060208701359450604087013561232e816120b1565b9350606087013561233e816120b1565b92506080870135915060a0870135612355816120b1565b809150509295509295509295565b60006020828403121561237557600080fd5b5035919050565b6000806000806080858703121561239257600080fd5b8435935060208501356123a4816120b1565b925060408501356123b4816120b1565b9396929550929360600135925050565b600080604083850312156123d757600080fd5b8235915060208301356123e9816120b1565b809150509250929050565b6000806000806080858703121561240a57600080fd5b84359350602085013561241c816120b1565b925060408501356001600160401b038082111561243857600080fd5b6124448883890161215f565b9350606087013591508082111561245a57600080fd5b50612467878288016121d3565b91505092959194509250565b600080600080600060a0868803121561248b57600080fd5b8535612496816120b1565b94506020860135935060408601356124ad816120b1565b925060608601356124bd816120b1565b949793965091946080013592915050565b6000806000606084860312156124e357600080fd5b8335925060208401356124f5816120b1565b9150604084013562ffffff8116811461250d57600080fd5b809150509250925092565b60005b8381101561253357818101518382015260200161251b565b50506000910152565b60008151808452612554816020860160208601612518565b601f01601f19169290920160200192915050565b602081526000610b15602083018461253c565b841515815283602082015260806040820152600061259c608083018561253c565b905060018060a01b038316606083015295945050505050565b803564ffffffffff811681146120d457600080fd5b60008060008060008060c087890312156125e357600080fd5b8635955060208701356125f5816120b1565b9450612603604088016125b5565b9350612611606088016125b5565b92506080870135915060a087013590509295509295509295565b64ffffffffff94851681529290931660208301526040820152606081019190915260800190565b604080825283519082018190526000906020906060840190828701845b828110156126945781516001600160a01b03168452928401929084019060010161266f565b5050508381038285015284518082528583019183019060005b818110156126c9578351835292840192918401916001016126ad565b5090979650505050505050565b60208082526017908201527613585e081a5b9d9bd8d85d1a5bdb9cc81c995858da1959604a1b604082015260600190565b805180151581146120d457600080fd5b60006020828403121561272957600080fd5b610b1582612707565b60006020828403121561274457600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610b1857610b1861274b565b60008251612786818460208701612518565b9190910192915050565b60208082526025908201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604082015264185a5b195960da1b606082015260800190565b8082028115828204841417610b1857610b1861274b565b60008261280957634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610b1857610b1861274b565b60006020828403121561283357600080fd5b81516105ee816120b1565b60208082526021908201527f546f6b656e486f6c6465724c69623a20617272617973206e6571206c656e67746040820152600d60fb1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000600182016128a7576128a761274b565b5060010190565b602080825260179082015276496e76616c6964206d617820696e766f636174696f6e7360481b604082015260600190565b60008060008060008060c087890312156128f857600080fd5b865195506020870151945061290f60408801612707565b935061291d60608801612707565b92506080870151915061293260a08801612707565b90509295509295509295565b600080600080600080600080610100898b03121561295b57600080fd5b88519750602089015161296d816120b1565b60408a015160608b01519198509650612985816120b1565b60808a015160a08b0151919650945061299d816120b1565b60c08a015160e08b015191945092506129b5816120b1565b809150509295985092959890939650565b60008060008060008060c087890312156129df57600080fd5b8651955060208701516129f1816120b1565b604088015160608901519196509450612a09816120b1565b608088015160a08901519194509250612355816120b156fea26469706673582212209f1a76e286bd4eb5fba1f3b232254312716573bc2f5a993fb70d85a6c80e309464736f6c63430008130033",
1225
- "deployedBytecode": "0x60806040526004361061011b5760003560e01c806301000da7146101205780630c49ef311461015557806319d29d7e146101775780632fc37ef11461019857806339b87cf8146101b85780634869f3df146101d85780637fbbc005146101f85780638a605b511461020b57806395c575fa1461022b5780639a94488a1461024b5780639d923dff146102e3578063b000e334146102f6578063b2d30ac714610316578063bf5bf5f81461032c578063cce7c90914610378578063d3ddabe614610398578063d9bffbce146103d7578063d9eb16db146103f7578063dd85582f14610427578063e9d1e8ac1461045b578063f7f5e9d01461049a578063fca23f4e146104ba578063fdca4cb814610514578063fea1d7b414610534575b600080fd5b34801561012c57600080fd5b5061014061013b3660046120d9565b6105b4565b60405190151581526020015b60405180910390f35b34801561016157600080fd5b5061017561017036600461222e565b6105f5565b005b61018a6101853660046122f3565b6106c0565b60405190815260200161014c565b3480156101a457600080fd5b506101756101b3366004612363565b610a41565b3480156101c457600080fd5b506101406101d336600461237c565b610aaf565b3480156101e457600080fd5b5061018a6101f33660046123c4565b610ae6565b61018a61020636600461237c565b610b1e565b34801561021757600080fd5b506101756102263660046123f4565b610b2f565b34801561023757600080fd5b506101756102463660046123c4565b610bb2565b34801561025757600080fd5b506102c16102663660046123c4565b6040805180820190915260008082526020820152506001600160a01b031660009081526004602090815260408083209383529281529082902082518084019093525460ff811615158352610100900462ffffff169082015290565b6040805182511515815260209283015162ffffff16928101929092520161014c565b61018a6102f1366004612473565b610c16565b34801561030257600080fd5b506101756103113660046124ce565b610c31565b34801561032257600080fd5b5061018a60015481565b34801561033857600080fd5b506103607f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161014c565b34801561038457600080fd5b506101406103933660046123c4565b610cb9565b3480156103a457600080fd5b506103ca60405180604001604052806006815260200165076352e302e360d41b81525081565b60405161014c9190612568565b3480156103e357600080fd5b506101756103f23660046123c4565b610ce5565b34801561040357600080fd5b506104176104123660046123c4565b610d5e565b60405161014c949392919061257b565b34801561043357600080fd5b506103607f000000000000000000000000000000000000000000000000000000000000000081565b34801561046757600080fd5b506103ca604051806040016040528060138152602001724d696e74657244414c696e486f6c646572563560681b81525081565b3480156104a657600080fd5b506101756104b53660046123f4565b610e0a565b3480156104c657600080fd5b506101406104d536600461237c565b6001600160a01b039283166000908152600560209081526040808320968352958152858220939094168152918352838220908252909152205460ff1690565b34801561052057600080fd5b5061017561052f3660046125ca565b610e7f565b34801561054057600080fd5b506105a461054f3660046123c4565b6001600160a01b03166000908152600360209081526040808320938352929052205464ffffffffff80821692600160281b8304909116916001600160581b03600160501b8204811692600160a81b9092041690565b60405161014c949392919061262b565b6001600160a01b03811660009081526002602052604081208054610100900460ff16156105e5575460ff1692915050565b6105ee83610fe5565b9392505050565b61060086863361111d565b6001600160a01b038516600090815260056020908152604080832089845290915290206106309085858585611167565b846001600160a01b0316867fe4e108abe1d65a55b2c49a1586fb2afa6c3d79732947e37f71a6c23a5b08ff82868660405161066c929190612652565b60405180910390a3846001600160a01b0316867f5728c49515724a90b87298ccfb6a8868ff0bfddf7e4fe298cea807dd815ced0984846040516106b0929190612652565b60405180910390a3505050505050565b60006002600054036107195760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b600260009081556001600160a01b0386168082526004602090815260408084208a85528252808420928452600382528084208a8552909152909120815460ff16156107765760405162461bcd60e51b8152600401610710906126d6565b600061078182611184565b9050803410156107cc5760405162461bcd60e51b815260206004820152601660248201527526b4b7103b30b63ab2903a379036b4b73a103932b89760511b6044820152606401610710565b6001600160a01b03881660009081526005602090815260408083208c845290915290206107fa908888611289565b61083e5760405162461bcd60e51b81526020600482015260156024820152744f6e6c7920616c6c6f776c6973746564204e46547360581b6044820152606401610710565b336001600160a01b0386161561094657604051631574d39f60e31b81523360048201526001600160a01b0387811660248301528a81166044830152606482018990526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aba69cf890608401602060405180830381865afa1580156108ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f29190612717565b9050806109415760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642064656c65676174652d7661756c742070616972696e6700006044820152606401610710565b869150505b6040516117cd60e21b81526001600160a01b038c81166004830152602482018c90528a8116604483015282811660648301527f00000000000000000000000000000000000000000000000000000000000000001690615f34906084016020604051808303816000875af11580156109c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e59190612732565b94506109f185856112c7565b6109fc888883611316565b6001600160a01b0389166000908152600260205260408120610a1f908b906113d9565b9050610a2d8b848c8461140b565b505050505060016000559695505050505050565b610a747f00000000000000000000000000000000000000000000000000000000000000003330632fc37ef160e01b6114c2565b60018190556040518181527f60faa7f980566852d75d660aa6b4fed89d6ec2b2137d08e2f12dbe34028b70309060200160405180910390a150565b6001600160a01b03831660009081526005602090815260408083208784529091528120610add908484611289565b95945050505050565b6001600160a01b0381166000908152600460209081526040808320858452909152812054610100900462ffffff165b90505b92915050565b6000610add338686868660006106c0565b610b3a84843361111d565b6001600160a01b03831660009081526005602090815260408083208784529091529020610b68908383611517565b826001600160a01b0316847fe4e108abe1d65a55b2c49a1586fb2afa6c3d79732947e37f71a6c23a5b08ff828484604051610ba4929190612652565b60405180910390a350505050565b610bc5813330634ae2bafd60e11b6115da565b6001600160a01b03811660008181526003602090815260408083208684529091528082208290555184917f865169678476a498ca03f184818d6bd6217dd57b754577a944c19d6d75587c8091a35050565b6000610c27868686868660006106c0565b9695505050505050565b610c3c83833361111d565b6001600160a01b03821660009081526004602090815260408083208684529091529020610c6e9084908490849061162f565b60405162ffffff821681526001600160a01b0383169084907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e237906020015b60405180910390a3505050565b6001600160a01b038116600090815260046020908152604080832085845290915281205460ff16610b15565b610cf082823361111d565b6001600160a01b03811660009081526004602090815260408083208584529091528120610d2090849084906116b6565b9050816001600160a01b0316837f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e23783604051610cac91815260200190565b6001600160a01b038116600090815260036020908152604080832085845290915281208054600160501b90046001600160581b031615159190606090829084610daa5760009350610dde565b805464ffffffffff164211610dd2578054600160501b90046001600160581b03169350610dde565b610ddb81611184565b93505b6040518060400160405280600381526020016208aa8960eb1b8152509250600091505092959194509250565b610e1584843361111d565b6001600160a01b03831660009081526005602090815260408083208784529091529020610e4390838361175b565b826001600160a01b0316847f5728c49515724a90b87298ccfb6a8868ff0bfddf7e4fe298cea807dd815ced098484604051610ba4929190612652565b610e8a86863361111d565b6001600160a01b03851660008181526003602090815260408083208a84528252808320938352600482528083208a84529091529020600154610ed39064ffffffffff8816612761565b8564ffffffffff161015610f4d5760405162461bcd60e51b815260206004820152603b60248201527f41756374696f6e206c656e677468206d757374206265206174206c656173742060448201527a6d696e696d756d41756374696f6e4c656e6774685365636f6e647360281b6064820152608401610710565b6000610f5a825460ff1690565b9050610f7a838888610f6b8961181e565b610f748961181e565b8661188a565b876001600160a01b0316897f6d30de23b433ca9d1b35a23dbad7d163697515522cc04a716ce7c5cbde84e8c789898989604051610fba949392919061262b565b60405180910390a3610fcb82611a27565b15610fda57610fda8989610ce5565b505050505050505050565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03861690611047908590612774565b600060405180830381855afa9150503d8060008114611082576040519150601f19603f3d011682016040523d82523d6000602084013e611087565b606091505b5091509150816110a95760405162461bcd60e51b815260040161071090612790565b805160c08190036110c05750600095945050505050565b80610100036110d55750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c697420627974657300006044820152606401610710565b611128838383611a47565b6111625760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b6044820152606401610710565b505050565b611172858585611517565b61117d85838361175b565b5050505050565b805460009064ffffffffff80821691600160281b8104909116906001600160581b03600160501b8204811691600160a81b9004164284106112015760405162461bcd60e51b8152602060048201526017602482015276105d58dd1a5bdb881b9bdd081e595d081cdd185c9d1959604a1b6044820152606401610710565b8242106112535760008311610add5760405162461bcd60e51b81526020600482015260186024820152774f6e6c7920636f6e666967757265642061756374696f6e7360401b6044820152606401610710565b428490038484038284038161126882856127d5565b61127291906127ec565b61127c908661280e565b9998505050505050505050565b600080611299620f4240846127ec565b6001600160a01b038516600090815260208781526040808320938352929052205460ff169150509392505050565b8054620f4240830660010190610100900462ffffff16808211156112fd5760405162461bcd60e51b8152600401610710906126d6565b80820361131057825460ff191660011783555b50505050565b6040516331a9108f60e11b8152600481018390526000906001600160a01b03851690636352211e90602401602060405180830381865afa15801561135e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113829190612821565b9050816001600160a01b0316816001600160a01b0316146113105760405162461bcd60e51b815260206004820152601160248201527013db9b1e481bdddb995c881bd988139195607a1b6044820152606401610710565b8054600090610100900460ff16156113f65750805460ff16610b18565b60006114028484611ad0565b9150610b189050565b34156113105760008061141e853461280e565b905080156114ae5760405133908290600081818185875af1925050503d8060008114611466576040519150601f19603f3d011682016040523d82523d6000602084013e61146b565b606091505b505080925050816114ae5760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b6044820152606401610710565b6114ba86868686611be0565b505050505050565b6114ce84848484611fab565b6113105760405162461bcd60e51b815260206004820152601a60248201527913db9b1e48135a5b9d195c919a5b1d195c8810591b5a5b9050d360321b6044820152606401610710565b80518251146115385760405162461bcd60e51b81526004016107109061283e565b60005b825181101561131057600184600001600085848151811061155e5761155e61287f565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600084848151811061159a5761159a61287f565b6020026020010151815260200190815260200160002060006101000a81548160ff02191690831515021790555080806115d290612895565b91505061153b565b6115e684848484611fab565b6113105760405162461bcd60e51b815260206004820152601a60248201527913db9b1e4810dbdc994810591b5a5b9050d308185b1b1bddd95960321b6044820152606401610710565b60008061163c8686612033565b91509150808462ffffff1611156116655760405162461bcd60e51b8152600401610710906128ae565b818462ffffff16101561168a5760405162461bcd60e51b8152600401610710906128ae565b50815460ff1962ffffff90941661010081029490941663ffffffff199091161792149190911790555050565b6000806000846001600160a01b0316630ea5613f876040518263ffffffff1660e01b81526004016116e991815260200190565b60c060405180830381865afa158015611706573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061172a91906128df565b5050875493831463ffffffff1990941661010062ffffff85160260ff19161793909317909655979650505050505050565b805182511461177c5760405162461bcd60e51b81526004016107109061283e565b60005b82518110156113105760008460000160008584815181106117a2576117a261287f565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008484815181106117de576117de61287f565b6020026020010151815260200190815260200160002060006101000a81548160ff021916908315150217905550808061181690612895565b91505061177f565b60006001600160581b038211156118865760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203860448201526538206269747360d01b6064820152608401610710565b5090565b855464ffffffffff1615806118a65750855464ffffffffff1642105b806118ae5750805b6118f95760405162461bcd60e51b815260206004820152601c60248201527b27379036b7b234b334b1b0ba34b7b7399036b4b216b0bab1ba34b7b760211b6044820152606401610710565b8464ffffffffff1642106119465760405162461bcd60e51b81526020600482015260146024820152734f6e6c79206675747572652061756374696f6e7360601b6044820152606401610710565b816001600160581b0316836001600160581b0316116119ca5760405162461bcd60e51b815260206004820152603a60248201527f41756374696f6e207374617274207072696365206d7573742062652067726561604482015279746572207468616e2061756374696f6e20656e6420707269636560301b6064820152608401610710565b50845464ffffffffff9485166001600160501b031990911617600160281b9390941692909202929092176001600160501b0316600160501b6001600160581b03938416026001600160a81b031617600160a81b9190921602179055565b8054600090610100900462ffffff16158015610b185750505460ff161590565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa158015611a8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab39190612821565b6001600160a01b0316826001600160a01b03161490509392505050565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03871690611b32908590612774565b6000604051808303816000865af19150503d8060008114611b6f576040519150601f19603f3d011682016040523d82523d6000602084013e611b74565b606091505b509150915081611b965760405162461bcd60e51b815260040161071090612790565b805160c0819003611bbc575050835461ffff19166101001784555060009150610b189050565b80610100036110d5575050835461ffff19166101011784555060019150610b189050565b82156113105760008060008060008060008715611d3157604051638639415b60e01b8152600481018c9052602481018b905260009081906001600160a01b038c1690638639415b9060440161010060405180830381865afa158015611c49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c6d919061293e565b969e50949c50909a50985091965091945090925090508115611d2a576040516001600160a01b038216908390600081818185875af1925050503d8060008114611cd2576040519150601f19603f3d011682016040523d82523d6000602084013e611cd7565b606091505b50508099505088611d2a5760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c65646044820152606401610710565b5050611db1565b604051638639415b60e01b8152600481018c9052602481018b90526001600160a01b038a1690638639415b9060440160c060405180830381865afa158015611d7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da191906129c6565b949a509298509096509450925090505b8515611e58576040516001600160a01b038616908790600081818185875af1925050503d8060008114611e00576040519150601f19603f3d011682016040523d82523d6000602084013e611e05565b606091505b50508097505086611e585760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c656400006044820152606401610710565b8315611ef7576040516001600160a01b038416908590600081818185875af1925050503d8060008114611ea7576040519150601f19603f3d011682016040523d82523d6000602084013e611eac565b606091505b50508097505086611ef75760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b6044820152606401610710565b8115611f9e576040516001600160a01b038216908390600081818185875af1925050503d8060008114611f46576040519150601f19603f3d011682016040523d82523d6000602084013e611f4b565b606091505b50508097505086611f9e5760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c6564006044820152606401610710565b5050505050505050505050565b60405163230448b160e01b81526001600160a01b03848116600483015283811660248301526001600160e01b0319831660448301526000919086169063230448b1906064016020604051808303816000875af115801561200f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610add9190612717565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b03841690630ea5613f9060240160c060405180830381865afa15801561207d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a191906128df565b5093989297509195505050505050565b6001600160a01b03811681146120c657600080fd5b50565b80356120d4816120b1565b919050565b6000602082840312156120eb57600080fd5b81356105ee816120b1565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612134576121346120f6565b604052919050565b60006001600160401b03821115612155576121556120f6565b5060051b60200190565b600082601f83011261217057600080fd5b813560206121856121808361213c565b61210c565b82815260059290921b840181019181810190868411156121a457600080fd5b8286015b848110156121c85780356121bb816120b1565b83529183019183016121a8565b509695505050505050565b600082601f8301126121e457600080fd5b813560206121f46121808361213c565b82815260059290921b8401810191818101908684111561221357600080fd5b8286015b848110156121c85780358352918301918301612217565b60008060008060008060c0878903121561224757600080fd5b86359550612257602088016120c9565b945060408701356001600160401b038082111561227357600080fd5b61227f8a838b0161215f565b9550606089013591508082111561229557600080fd5b6122a18a838b016121d3565b945060808901359150808211156122b757600080fd5b6122c38a838b0161215f565b935060a08901359150808211156122d957600080fd5b506122e689828a016121d3565b9150509295509295509295565b60008060008060008060c0878903121561230c57600080fd5b8635612317816120b1565b955060208701359450604087013561232e816120b1565b9350606087013561233e816120b1565b92506080870135915060a0870135612355816120b1565b809150509295509295509295565b60006020828403121561237557600080fd5b5035919050565b6000806000806080858703121561239257600080fd5b8435935060208501356123a4816120b1565b925060408501356123b4816120b1565b9396929550929360600135925050565b600080604083850312156123d757600080fd5b8235915060208301356123e9816120b1565b809150509250929050565b6000806000806080858703121561240a57600080fd5b84359350602085013561241c816120b1565b925060408501356001600160401b038082111561243857600080fd5b6124448883890161215f565b9350606087013591508082111561245a57600080fd5b50612467878288016121d3565b91505092959194509250565b600080600080600060a0868803121561248b57600080fd5b8535612496816120b1565b94506020860135935060408601356124ad816120b1565b925060608601356124bd816120b1565b949793965091946080013592915050565b6000806000606084860312156124e357600080fd5b8335925060208401356124f5816120b1565b9150604084013562ffffff8116811461250d57600080fd5b809150509250925092565b60005b8381101561253357818101518382015260200161251b565b50506000910152565b60008151808452612554816020860160208601612518565b601f01601f19169290920160200192915050565b602081526000610b15602083018461253c565b841515815283602082015260806040820152600061259c608083018561253c565b905060018060a01b038316606083015295945050505050565b803564ffffffffff811681146120d457600080fd5b60008060008060008060c087890312156125e357600080fd5b8635955060208701356125f5816120b1565b9450612603604088016125b5565b9350612611606088016125b5565b92506080870135915060a087013590509295509295509295565b64ffffffffff94851681529290931660208301526040820152606081019190915260800190565b604080825283519082018190526000906020906060840190828701845b828110156126945781516001600160a01b03168452928401929084019060010161266f565b5050508381038285015284518082528583019183019060005b818110156126c9578351835292840192918401916001016126ad565b5090979650505050505050565b60208082526017908201527613585e081a5b9d9bd8d85d1a5bdb9cc81c995858da1959604a1b604082015260600190565b805180151581146120d457600080fd5b60006020828403121561272957600080fd5b610b1582612707565b60006020828403121561274457600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610b1857610b1861274b565b60008251612786818460208701612518565b9190910192915050565b60208082526025908201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604082015264185a5b195960da1b606082015260800190565b8082028115828204841417610b1857610b1861274b565b60008261280957634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610b1857610b1861274b565b60006020828403121561283357600080fd5b81516105ee816120b1565b60208082526021908201527f546f6b656e486f6c6465724c69623a20617272617973206e6571206c656e67746040820152600d60fb1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000600182016128a7576128a761274b565b5060010190565b602080825260179082015276496e76616c6964206d617820696e766f636174696f6e7360481b604082015260600190565b60008060008060008060c087890312156128f857600080fd5b865195506020870151945061290f60408801612707565b935061291d60608801612707565b92506080870151915061293260a08801612707565b90509295509295509295565b600080600080600080600080610100898b03121561295b57600080fd5b88519750602089015161296d816120b1565b60408a015160608b01519198509650612985816120b1565b60808a015160a08b0151919650945061299d816120b1565b60c08a015160e08b015191945092506129b5816120b1565b809150509295985092959890939650565b60008060008060008060c087890312156129df57600080fd5b8651955060208701516129f1816120b1565b604088015160608901519196509450612a09816120b1565b608088015160a08901519194509250612355816120b156fea26469706673582212209f1a76e286bd4eb5fba1f3b232254312716573bc2f5a993fb70d85a6c80e309464736f6c63430008130033",
658
+ "bytecode": "0x6101006040526102586001553480156200001857600080fd5b5060405162002a0938038062002a098339810160408190526200003b91620000f3565b60016000556001600160a01b03828116608081905260a052811660c081905260e08190526040519081527f836360d1b094a7de3c3eab3d1185f3a5939467c23d4a12709dbdbf8c8d7e2f3b9060200160405180910390a17f60faa7f980566852d75d660aa6b4fed89d6ec2b2137d08e2f12dbe34028b7030600154604051620000c691815260200190565b60405180910390a150506200012b565b80516001600160a01b0381168114620000ee57600080fd5b919050565b600080604083850312156200010757600080fd5b6200011283620000d6565b91506200012260208401620000d6565b90509250929050565b60805160a05160c05160e05161289d6200016c60003960006106a4015260006102e8015260006107990152600081816103e3015261083c015261289d6000f3fe60806040526004361061011b5760003560e01c806301000da7146101205780630c49ef311461015557806319d29d7e146101775780632fc37ef11461019857806339b87cf8146101b85780634869f3df146101d85780637fbbc005146101f85780638a605b511461020b57806395c575fa1461022b5780639a94488a1461024b5780639d923dff1461028d578063b000e334146102a0578063b2d30ac7146102c0578063bf5bf5f8146102d6578063cce7c90914610322578063d3ddabe614610342578063d9bffbce14610381578063d9eb16db146103a1578063dd85582f146103d1578063e9d1e8ac14610405578063f7f5e9d014610444578063fca23f4e14610464578063fdca4cb814610484578063fea1d7b4146104a4575b600080fd5b34801561012c57600080fd5b5061014061013b366004612070565b6104ed565b60405190151581526020015b60405180910390f35b34801561016157600080fd5b506101756101703660046120d8565b610525565b005b61018a6101853660046121b8565b61054e565b60405190815260200161014c565b3480156101a457600080fd5b506101756101b3366004612228565b610837565b3480156101c457600080fd5b506101406101d3366004612241565b6108a5565b3480156101e457600080fd5b5061018a6101f3366004612289565b6108bc565b61018a610206366004612241565b6108d1565b34801561021757600080fd5b506101756102263660046122b9565b6108e2565b34801561023757600080fd5b50610175610246366004612289565b610903565b34801561025757600080fd5b5061026b610266366004612289565b610924565b6040805182511515815260209283015162ffffff16928101929092520161014c565b61018a61029b366004612344565b61096c565b3480156102ac57600080fd5b506101756102bb36600461239f565b610987565b3480156102cc57600080fd5b5061018a60015481565b3480156102e257600080fd5b5061030a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161014c565b34801561032e57600080fd5b5061014061033d366004612289565b6109a2565b34801561034e57600080fd5b5061037460405180604001604052806006815260200165076352e302e360d41b81525081565b60405161014c9190612439565b34801561038d57600080fd5b5061017561039c366004612289565b6109ae565b3480156103ad57600080fd5b506103c16103bc366004612289565b6109c3565b60405161014c949392919061244c565b3480156103dd57600080fd5b5061030a7f000000000000000000000000000000000000000000000000000000000000000081565b34801561041157600080fd5b50610374604051806040016040528060138152602001724d696e74657244414c696e486f6c646572563560681b81525081565b34801561045057600080fd5b5061017561045f3660046122b9565b610a5c565b34801561047057600080fd5b5061014061047f366004612241565b610a75565b34801561049057600080fd5b5061017561049f36600461249b565b610aaf565b3480156104b057600080fd5b506104c46104bf366004612289565b610b97565b6040805164ffffffffff958616815294909316602085015291830152606082015260800161014c565b6000806104f983610be7565b8054909150610100900460ff1615610515575460ff1692915050565b61051e83610c20565b9392505050565b6105308a8a33610d96565b6105428a8a8a8a8a8a8a8a8a8a610ddb565b50505050505050505050565b60006002600054036105a75760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000556105b68686610df7565b60006105c28787610e28565b90508034101561060d5760405162461bcd60e51b815260206004820152601660248201527526b4b7103b30b63ab2903a379036b4b73a103932b89760511b604482015260640161059e565b61061987878787610f48565b61065d5760405162461bcd60e51b81526020600482015260156024820152744f6e6c7920616c6c6f776c6973746564204e46547360581b604482015260640161059e565b336001600160a01b0384161561076557604051631574d39f60e31b81523360048201526001600160a01b0385811660248301528881166044830152606482018790526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aba69cf890608401602060405180830381865afa1580156106ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610711919061250c565b9050806107605760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642064656c65676174652d7661756c742070616972696e670000604482015260640161059e565b849150505b6040516117cd60e21b81526001600160a01b038a81166004830152602482018a9052888116604483015282811660648301527f00000000000000000000000000000000000000000000000000000000000000001690615f34906084016020604051808303816000875af11580156107e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108049190612527565b92506108108388610f94565b61081b868683611000565b6108268883896110c9565b505060016000559695505050505050565b61086a7f00000000000000000000000000000000000000000000000000000000000000003330632fc37ef160e01b611178565b60018190556040518181527f60faa7f980566852d75d660aa6b4fed89d6ec2b2137d08e2f12dbe34028b70309060200160405180910390a150565b60006108b385858585610f48565b95945050505050565b60006108c883836111cd565b90505b92915050565b60006108b33386868686600061054e565b6108ed868633610d96565b6108fb8686868686866111ed565b505050505050565b610916813330634ae2bafd60e11b611309565b610920828261135e565b5050565b604080518082019091526000808252602082015261094283836113b9565b60408051808201909152905460ff811615158252610100900462ffffff1660208201529392505050565b600061097d8686868686600061054e565b9695505050505050565b610992838333610d96565b61099d838383611404565b505050565b60006108c883836114da565b6109b9828233610d96565b61092082826114f3565b60008060606000806109d5878761158e565b8054600160501b90046001600160581b0316151595509050846109fb5760009350610a30565b805464ffffffffff164211610a23578054600160501b90046001600160581b03169350610a30565b610a2d8787610e28565b93505b6040518060400160405280600381526020016208aa8960eb1b8152509250600091505092959194509250565b610a67868633610d96565b6108fb868686868686611598565b6000610a8185856116a1565b6001600160a01b038416600090815260209182526040808220858352909252205460ff169050949350505050565b610aba868633610d96565b600154610ace9064ffffffffff8616612556565b8364ffffffffff161015610b485760405162461bcd60e51b815260206004820152603b60248201527f41756374696f6e206c656e677468206d757374206265206174206c656173742060448201527a6d696e696d756d41756374696f6e4c656e6774685365636f6e647360281b606482015260840161059e565b6000610b5487876114da565b9050610b7587878787610b66886116c9565b610b6f886116c9565b87611735565b610b7f8787611932565b15610b8e57610b8e87876114f3565b50505050505050565b6000806000806000610ba9878761158e565b5464ffffffffff80821699600160281b830490911698506001600160581b03600160501b830481169850600160a81b90920490911695509350505050565b6001600160a01b031660009081527f69f22dd730b53ff235fa96b4306a31bef5dad48fe4bac28b1ceebbce14401b396020526040902090565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03861690610c82908590612569565b600060405180830381855afa9150503d8060008114610cbd576040519150601f19603f3d011682016040523d82523d6000602084013e610cc2565b606091505b509150915081610d225760405162461bcd60e51b815260206004820152602560248201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604482015264185a5b195960da1b606482015260840161059e565b805160c0819003610d395750600095945050505050565b8061010003610d4e5750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c69742062797465730000604482015260640161059e565b610da1838383611965565b61099d5760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b604482015260640161059e565b610de98a8a8a8a8a8a6111ed565b6105428a8a86868686611598565b6000610e0383836113b9565b805490915060ff161561099d5760405162461bcd60e51b815260040161059e90612585565b600080610e35848461158e565b805490915064ffffffffff80821691600160281b8104909116906001600160581b03600160501b8204811691600160a81b900416428410610eb25760405162461bcd60e51b8152602060048201526017602482015276105d58dd1a5bdb881b9bdd081e595d081cdd185c9d1959604a1b604482015260640161059e565b824210610f105760008311610f045760405162461bcd60e51b81526020600482015260186024820152774f6e6c7920636f6e666967757265642061756374696f6e7360401b604482015260640161059e565b94506108cb9350505050565b4284900384840382840381610f2582856125b6565b610f2f91906125cd565b610f3990866125ef565b9b9a5050505050505050505050565b600080610f5586866116a1565b90506000610f62846119ee565b6001600160a01b038616600090815260209384526040808220928252919093529091205460ff16915050949350505050565b6000610f9f836119ee565b90506000610fad82846113b9565b8054909150620f4240850660010190610100900462ffffff1680821115610fe65760405162461bcd60e51b815260040161059e90612585565b8082036108fb57825460ff19166001178355505050505050565b6040516331a9108f60e11b8152600481018390526000906001600160a01b03851690636352211e90602401602060405180830381865afa158015611048573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106c9190612602565b9050816001600160a01b0316816001600160a01b0316146110c35760405162461bcd60e51b815260206004820152601160248201527013db9b1e481bdddb995c881bd988139195607a1b604482015260640161059e565b50505050565b341561099d5760006110db83346125ef565b9050801561116d57604051600090339083908381818185875af1925050503d8060008114611125576040519150601f19603f3d011682016040523d82523d6000602084013e61112a565b606091505b505090508061116b5760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b604482015260640161059e565b505b6110c38484846119fd565b61118484848484611bbe565b6110c35760405162461bcd60e51b815260206004820152601a60248201527913db9b1e48135a5b9d195c919a5b1d195c8810591b5a5b9050d360321b604482015260640161059e565b6000806111da84846113b9565b54610100900462ffffff16949350505050565b82811461120c5760405162461bcd60e51b815260040161059e9061261f565b600061121887876116a1565b90508360005b818110156112b657600183600089898581811061123d5761123d612660565b90506020020160208101906112529190612070565b6001600160a01b03166001600160a01b03168152602001908152602001600020600087878581811061128657611286612660565b60209081029290920135835250810191909152604001600020805460ff191691151591909117905560010161121e565b50866001600160a01b0316887fe4e108abe1d65a55b2c49a1586fb2afa6c3d79732947e37f71a6c23a5b08ff82888888886040516112f79493929190612676565b60405180910390a35050505050505050565b61131584848484611bbe565b6110c35760405162461bcd60e51b815260206004820152601a60248201527913db9b1e4810dbdc994810591b5a5b9050d308185b1b1bddd95960321b604482015260640161059e565b611366611c46565b6001600160a01b0382166000818152602092835260408082208683529093528281208190559151909184917f865169678476a498ca03f184818d6bd6217dd57b754577a944c19d6d75587c809190a35050565b60007f73e3af67f35f30fb72bbaaf6cc07b987364ed643c93ba201702e213464e877ee5b6001600160a01b039290921660009081526020928352604080822094825293909252502090565b6000806114118585611c6a565b91509150808362ffffff16111561143a5760405162461bcd60e51b815260040161059e906126f4565b818362ffffff16101561145f5760405162461bcd60e51b815260040161059e906126f4565b600061146b86866113b9565b805462ffffff861685811463ffffffff19909216610100820260ff1916179190911782556040519081529091506001600160a01b0386169087907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e2379060200160405180910390a3505050505050565b6000806114e784846113b9565b5460ff16949350505050565b6000806115008484611c6a565b91509150600061151085856113b9565b905061151b82611ce8565b815460ff1962ffffff92909216610100029190911663ffffffff19909116178383141781556040516001600160a01b0385169086907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e2379061157f9086815260200190565b60405180910390a35050505050565b60006113dd611c46565b8281146115b75760405162461bcd60e51b815260040161059e9061261f565b60006115c387876116a1565b90508360005b8181101561166057600083818989858181106115e7576115e7612660565b90506020020160208101906115fc9190612070565b6001600160a01b03166001600160a01b03168152602001908152602001600020600087878581811061163057611630612660565b60209081029290920135835250810191909152604001600020805460ff19169115159190911790556001016115c9565b50866001600160a01b0316887f5728c49515724a90b87298ccfb6a8868ff0bfddf7e4fe298cea807dd815ced09888888886040516112f79493929190612676565b60007f7805f013cae363c49df6acca2dcd8a8f0bd9005c2f87b85d8dbbce9098e4afd76113dd565b60006001600160581b038211156117315760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203860448201526538206269747360d01b606482015260840161059e565b5090565b6000611741888861158e565b805490915064ffffffffff1615806117605750805464ffffffffff1642105b806117685750815b6117b35760405162461bcd60e51b815260206004820152601c60248201527b27379036b7b234b334b1b0ba34b7b7399036b4b216b0bab1ba34b7b760211b604482015260640161059e565b8564ffffffffff1642106118005760405162461bcd60e51b81526020600482015260146024820152734f6e6c79206675747572652061756374696f6e7360601b604482015260640161059e565b826001600160581b0316846001600160581b0316116118845760405162461bcd60e51b815260206004820152603a60248201527f41756374696f6e207374617274207072696365206d7573742062652067726561604482015279746572207468616e2061756374696f6e20656e6420707269636560301b606482015260840161059e565b805464ffffffffff8781166001600160501b03199092168217600160281b918816918202176001600160501b0316600160501b6001600160581b038881169182026001600160a81b031692909217600160a81b9288169283021785556040805194855260208501939093529183019190915260608201526001600160a01b0388169089907f6d30de23b433ca9d1b35a23dbad7d163697515522cc04a716ce7c5cbde84e8c7906080016112f7565b60008061193f84846113b9565b8054909150610100900462ffffff1615801561195d5750805460ff16155b949350505050565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa1580156119ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d19190612602565b6001600160a01b0316826001600160a01b03161490509392505050565b60006108cb620f4240836125cd565b81600003611a0a57505050565b6000611a1582611d4c565b90506000806000806000806000808815611ab357604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440161010060405180830381865afa158015611a76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9a9190612725565b969e50949c50929a509098509650945092509050611b33565b604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440160c060405180830381865afa158015611aff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2391906127ad565b949c50929a509096509450925090505b8a8285611b40898c612556565b611b4a9190612556565b611b549190612556565b14611ba05760405162461bcd60e51b815260206004820152601c60248201527b496e76616c696420726576656e75652073706c697420746f74616c7360201b604482015260640161059e565b611bb086868a8a88888888611d9a565b505050505050505050505050565b60405163230448b160e01b81526001600160a01b03848116600483015283811660248301526001600160e01b0319831660448301526000919086169063230448b1906064016020604051808303816000875af1158015611c22573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b3919061250c565b7f8b8290e46492bb8c910b18a5ee14f3db6a44fc145443a690c88697f622ddae8390565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b03841690630ea5613f9060240160c060405180830381865afa158015611cb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd89190612808565b5093989297509195505050505050565b600062ffffff8211156117315760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201526534206269747360d01b606482015260840161059e565b600080611d5883610be7565b8054909150610100900460ff1615611d74575460ff1692915050565b6000611d7f84610c20565b825481151561ffff1990911617610100179092555092915050565b8715611e45576000876001600160a01b03168960405160006040518083038185875af1925050503d8060008114611ded576040519150601f19603f3d011682016040523d82523d6000602084013e611df2565b606091505b5050905080611e435760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c6564604482015260640161059e565b505b8515611ef0576000856001600160a01b03168760405160006040518083038185875af1925050503d8060008114611e98576040519150601f19603f3d011682016040523d82523d6000602084013e611e9d565b606091505b5050905080611eee5760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c65640000604482015260640161059e565b505b8315611f93576000836001600160a01b03168560405160006040518083038185875af1925050503d8060008114611f43576040519150601f19603f3d011682016040523d82523d6000602084013e611f48565b606091505b5050905080611f915760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b604482015260640161059e565b505b811561203e576000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114611fe6576040519150601f19603f3d011682016040523d82523d6000602084013e611feb565b606091505b505090508061203c5760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c656400604482015260640161059e565b505b5050505050505050565b6001600160a01b038116811461205d57600080fd5b50565b803561206b81612048565b919050565b60006020828403121561208257600080fd5b813561051e81612048565b60008083601f84011261209f57600080fd5b5081356001600160401b038111156120b657600080fd5b6020830191508360208260051b85010111156120d157600080fd5b9250929050565b60008060008060008060008060008060c08b8d0312156120f757600080fd5b8a35995061210760208c01612060565b985060408b01356001600160401b038082111561212357600080fd5b61212f8e838f0161208d565b909a50985060608d013591508082111561214857600080fd5b6121548e838f0161208d565b909850965060808d013591508082111561216d57600080fd5b6121798e838f0161208d565b909650945060a08d013591508082111561219257600080fd5b5061219f8d828e0161208d565b915080935050809150509295989b9194979a5092959850565b60008060008060008060c087890312156121d157600080fd5b86356121dc81612048565b95506020870135945060408701356121f381612048565b9350606087013561220381612048565b92506080870135915060a087013561221a81612048565b809150509295509295509295565b60006020828403121561223a57600080fd5b5035919050565b6000806000806080858703121561225757600080fd5b84359350602085013561226981612048565b9250604085013561227981612048565b9396929550929360600135925050565b6000806040838503121561229c57600080fd5b8235915060208301356122ae81612048565b809150509250929050565b600080600080600080608087890312156122d257600080fd5b8635955060208701356122e481612048565b945060408701356001600160401b038082111561230057600080fd5b61230c8a838b0161208d565b9096509450606089013591508082111561232557600080fd5b5061233289828a0161208d565b979a9699509497509295939492505050565b600080600080600060a0868803121561235c57600080fd5b853561236781612048565b945060208601359350604086013561237e81612048565b9250606086013561238e81612048565b949793965091946080013592915050565b6000806000606084860312156123b457600080fd5b8335925060208401356123c681612048565b9150604084013562ffffff811681146123de57600080fd5b809150509250925092565b60005b838110156124045781810151838201526020016123ec565b50506000910152565b600081518084526124258160208601602086016123e9565b601f01601f19169290920160200192915050565b6020815260006108c8602083018461240d565b841515815283602082015260806040820152600061246d608083018561240d565b905060018060a01b038316606083015295945050505050565b803564ffffffffff8116811461206b57600080fd5b60008060008060008060c087890312156124b457600080fd5b8635955060208701356124c681612048565b94506124d460408801612486565b93506124e260608801612486565b92506080870135915060a087013590509295509295509295565b8051801515811461206b57600080fd5b60006020828403121561251e57600080fd5b6108c8826124fc565b60006020828403121561253957600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156108cb576108cb612540565b6000825161257b8184602087016123e9565b9190910192915050565b60208082526017908201527613585e081a5b9d9bd8d85d1a5bdb9cc81c995858da1959604a1b604082015260600190565b80820281158282048414176108cb576108cb612540565b6000826125ea57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156108cb576108cb612540565b60006020828403121561261457600080fd5b815161051e81612048565b60208082526021908201527f546f6b656e486f6c6465724c69623a20617272617973206e6571206c656e67746040820152600d60fb1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6040808252810184905260008560608301825b878110156126b957823561269c81612048565b6001600160a01b0316825260209283019290910190600101612689565b5083810360208501528481526001600160fb1b038511156126d957600080fd5b8460051b915081866020830137016020019695505050505050565b602080825260179082015276496e76616c6964206d617820696e766f636174696f6e7360481b604082015260600190565b600080600080600080600080610100898b03121561274257600080fd5b88519750602089015161275481612048565b60408a015160608b0151919850965061276c81612048565b60808a015160a08b0151919650945061278481612048565b60c08a015160e08b0151919450925061279c81612048565b809150509295985092959890939650565b60008060008060008060c087890312156127c657600080fd5b8651955060208701516127d881612048565b6040880151606089015191965094506127f081612048565b608088015160a0890151919450925061221a81612048565b60008060008060008060c0878903121561282157600080fd5b8651955060208701519450612838604088016124fc565b9350612846606088016124fc565b92506080870151915061285b60a088016124fc565b9050929550929550929556fea2646970667358221220baec22579b49beb51bc9add7052358e982bedfa2a7f786e6176dcf9844b8113664736f6c63430008130033",
659
+ "deployedBytecode": "0x60806040526004361061011b5760003560e01c806301000da7146101205780630c49ef311461015557806319d29d7e146101775780632fc37ef11461019857806339b87cf8146101b85780634869f3df146101d85780637fbbc005146101f85780638a605b511461020b57806395c575fa1461022b5780639a94488a1461024b5780639d923dff1461028d578063b000e334146102a0578063b2d30ac7146102c0578063bf5bf5f8146102d6578063cce7c90914610322578063d3ddabe614610342578063d9bffbce14610381578063d9eb16db146103a1578063dd85582f146103d1578063e9d1e8ac14610405578063f7f5e9d014610444578063fca23f4e14610464578063fdca4cb814610484578063fea1d7b4146104a4575b600080fd5b34801561012c57600080fd5b5061014061013b366004612070565b6104ed565b60405190151581526020015b60405180910390f35b34801561016157600080fd5b506101756101703660046120d8565b610525565b005b61018a6101853660046121b8565b61054e565b60405190815260200161014c565b3480156101a457600080fd5b506101756101b3366004612228565b610837565b3480156101c457600080fd5b506101406101d3366004612241565b6108a5565b3480156101e457600080fd5b5061018a6101f3366004612289565b6108bc565b61018a610206366004612241565b6108d1565b34801561021757600080fd5b506101756102263660046122b9565b6108e2565b34801561023757600080fd5b50610175610246366004612289565b610903565b34801561025757600080fd5b5061026b610266366004612289565b610924565b6040805182511515815260209283015162ffffff16928101929092520161014c565b61018a61029b366004612344565b61096c565b3480156102ac57600080fd5b506101756102bb36600461239f565b610987565b3480156102cc57600080fd5b5061018a60015481565b3480156102e257600080fd5b5061030a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161014c565b34801561032e57600080fd5b5061014061033d366004612289565b6109a2565b34801561034e57600080fd5b5061037460405180604001604052806006815260200165076352e302e360d41b81525081565b60405161014c9190612439565b34801561038d57600080fd5b5061017561039c366004612289565b6109ae565b3480156103ad57600080fd5b506103c16103bc366004612289565b6109c3565b60405161014c949392919061244c565b3480156103dd57600080fd5b5061030a7f000000000000000000000000000000000000000000000000000000000000000081565b34801561041157600080fd5b50610374604051806040016040528060138152602001724d696e74657244414c696e486f6c646572563560681b81525081565b34801561045057600080fd5b5061017561045f3660046122b9565b610a5c565b34801561047057600080fd5b5061014061047f366004612241565b610a75565b34801561049057600080fd5b5061017561049f36600461249b565b610aaf565b3480156104b057600080fd5b506104c46104bf366004612289565b610b97565b6040805164ffffffffff958616815294909316602085015291830152606082015260800161014c565b6000806104f983610be7565b8054909150610100900460ff1615610515575460ff1692915050565b61051e83610c20565b9392505050565b6105308a8a33610d96565b6105428a8a8a8a8a8a8a8a8a8a610ddb565b50505050505050505050565b60006002600054036105a75760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000556105b68686610df7565b60006105c28787610e28565b90508034101561060d5760405162461bcd60e51b815260206004820152601660248201527526b4b7103b30b63ab2903a379036b4b73a103932b89760511b604482015260640161059e565b61061987878787610f48565b61065d5760405162461bcd60e51b81526020600482015260156024820152744f6e6c7920616c6c6f776c6973746564204e46547360581b604482015260640161059e565b336001600160a01b0384161561076557604051631574d39f60e31b81523360048201526001600160a01b0385811660248301528881166044830152606482018790526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aba69cf890608401602060405180830381865afa1580156106ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610711919061250c565b9050806107605760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642064656c65676174652d7661756c742070616972696e670000604482015260640161059e565b849150505b6040516117cd60e21b81526001600160a01b038a81166004830152602482018a9052888116604483015282811660648301527f00000000000000000000000000000000000000000000000000000000000000001690615f34906084016020604051808303816000875af11580156107e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108049190612527565b92506108108388610f94565b61081b868683611000565b6108268883896110c9565b505060016000559695505050505050565b61086a7f00000000000000000000000000000000000000000000000000000000000000003330632fc37ef160e01b611178565b60018190556040518181527f60faa7f980566852d75d660aa6b4fed89d6ec2b2137d08e2f12dbe34028b70309060200160405180910390a150565b60006108b385858585610f48565b95945050505050565b60006108c883836111cd565b90505b92915050565b60006108b33386868686600061054e565b6108ed868633610d96565b6108fb8686868686866111ed565b505050505050565b610916813330634ae2bafd60e11b611309565b610920828261135e565b5050565b604080518082019091526000808252602082015261094283836113b9565b60408051808201909152905460ff811615158252610100900462ffffff1660208201529392505050565b600061097d8686868686600061054e565b9695505050505050565b610992838333610d96565b61099d838383611404565b505050565b60006108c883836114da565b6109b9828233610d96565b61092082826114f3565b60008060606000806109d5878761158e565b8054600160501b90046001600160581b0316151595509050846109fb5760009350610a30565b805464ffffffffff164211610a23578054600160501b90046001600160581b03169350610a30565b610a2d8787610e28565b93505b6040518060400160405280600381526020016208aa8960eb1b8152509250600091505092959194509250565b610a67868633610d96565b6108fb868686868686611598565b6000610a8185856116a1565b6001600160a01b038416600090815260209182526040808220858352909252205460ff169050949350505050565b610aba868633610d96565b600154610ace9064ffffffffff8616612556565b8364ffffffffff161015610b485760405162461bcd60e51b815260206004820152603b60248201527f41756374696f6e206c656e677468206d757374206265206174206c656173742060448201527a6d696e696d756d41756374696f6e4c656e6774685365636f6e647360281b606482015260840161059e565b6000610b5487876114da565b9050610b7587878787610b66886116c9565b610b6f886116c9565b87611735565b610b7f8787611932565b15610b8e57610b8e87876114f3565b50505050505050565b6000806000806000610ba9878761158e565b5464ffffffffff80821699600160281b830490911698506001600160581b03600160501b830481169850600160a81b90920490911695509350505050565b6001600160a01b031660009081527f69f22dd730b53ff235fa96b4306a31bef5dad48fe4bac28b1ceebbce14401b396020526040902090565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03861690610c82908590612569565b600060405180830381855afa9150503d8060008114610cbd576040519150601f19603f3d011682016040523d82523d6000602084013e610cc2565b606091505b509150915081610d225760405162461bcd60e51b815260206004820152602560248201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604482015264185a5b195960da1b606482015260840161059e565b805160c0819003610d395750600095945050505050565b8061010003610d4e5750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c69742062797465730000604482015260640161059e565b610da1838383611965565b61099d5760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b604482015260640161059e565b610de98a8a8a8a8a8a6111ed565b6105428a8a86868686611598565b6000610e0383836113b9565b805490915060ff161561099d5760405162461bcd60e51b815260040161059e90612585565b600080610e35848461158e565b805490915064ffffffffff80821691600160281b8104909116906001600160581b03600160501b8204811691600160a81b900416428410610eb25760405162461bcd60e51b8152602060048201526017602482015276105d58dd1a5bdb881b9bdd081e595d081cdd185c9d1959604a1b604482015260640161059e565b824210610f105760008311610f045760405162461bcd60e51b81526020600482015260186024820152774f6e6c7920636f6e666967757265642061756374696f6e7360401b604482015260640161059e565b94506108cb9350505050565b4284900384840382840381610f2582856125b6565b610f2f91906125cd565b610f3990866125ef565b9b9a5050505050505050505050565b600080610f5586866116a1565b90506000610f62846119ee565b6001600160a01b038616600090815260209384526040808220928252919093529091205460ff16915050949350505050565b6000610f9f836119ee565b90506000610fad82846113b9565b8054909150620f4240850660010190610100900462ffffff1680821115610fe65760405162461bcd60e51b815260040161059e90612585565b8082036108fb57825460ff19166001178355505050505050565b6040516331a9108f60e11b8152600481018390526000906001600160a01b03851690636352211e90602401602060405180830381865afa158015611048573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106c9190612602565b9050816001600160a01b0316816001600160a01b0316146110c35760405162461bcd60e51b815260206004820152601160248201527013db9b1e481bdddb995c881bd988139195607a1b604482015260640161059e565b50505050565b341561099d5760006110db83346125ef565b9050801561116d57604051600090339083908381818185875af1925050503d8060008114611125576040519150601f19603f3d011682016040523d82523d6000602084013e61112a565b606091505b505090508061116b5760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b604482015260640161059e565b505b6110c38484846119fd565b61118484848484611bbe565b6110c35760405162461bcd60e51b815260206004820152601a60248201527913db9b1e48135a5b9d195c919a5b1d195c8810591b5a5b9050d360321b604482015260640161059e565b6000806111da84846113b9565b54610100900462ffffff16949350505050565b82811461120c5760405162461bcd60e51b815260040161059e9061261f565b600061121887876116a1565b90508360005b818110156112b657600183600089898581811061123d5761123d612660565b90506020020160208101906112529190612070565b6001600160a01b03166001600160a01b03168152602001908152602001600020600087878581811061128657611286612660565b60209081029290920135835250810191909152604001600020805460ff191691151591909117905560010161121e565b50866001600160a01b0316887fe4e108abe1d65a55b2c49a1586fb2afa6c3d79732947e37f71a6c23a5b08ff82888888886040516112f79493929190612676565b60405180910390a35050505050505050565b61131584848484611bbe565b6110c35760405162461bcd60e51b815260206004820152601a60248201527913db9b1e4810dbdc994810591b5a5b9050d308185b1b1bddd95960321b604482015260640161059e565b611366611c46565b6001600160a01b0382166000818152602092835260408082208683529093528281208190559151909184917f865169678476a498ca03f184818d6bd6217dd57b754577a944c19d6d75587c809190a35050565b60007f73e3af67f35f30fb72bbaaf6cc07b987364ed643c93ba201702e213464e877ee5b6001600160a01b039290921660009081526020928352604080822094825293909252502090565b6000806114118585611c6a565b91509150808362ffffff16111561143a5760405162461bcd60e51b815260040161059e906126f4565b818362ffffff16101561145f5760405162461bcd60e51b815260040161059e906126f4565b600061146b86866113b9565b805462ffffff861685811463ffffffff19909216610100820260ff1916179190911782556040519081529091506001600160a01b0386169087907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e2379060200160405180910390a3505050505050565b6000806114e784846113b9565b5460ff16949350505050565b6000806115008484611c6a565b91509150600061151085856113b9565b905061151b82611ce8565b815460ff1962ffffff92909216610100029190911663ffffffff19909116178383141781556040516001600160a01b0385169086907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e2379061157f9086815260200190565b60405180910390a35050505050565b60006113dd611c46565b8281146115b75760405162461bcd60e51b815260040161059e9061261f565b60006115c387876116a1565b90508360005b8181101561166057600083818989858181106115e7576115e7612660565b90506020020160208101906115fc9190612070565b6001600160a01b03166001600160a01b03168152602001908152602001600020600087878581811061163057611630612660565b60209081029290920135835250810191909152604001600020805460ff19169115159190911790556001016115c9565b50866001600160a01b0316887f5728c49515724a90b87298ccfb6a8868ff0bfddf7e4fe298cea807dd815ced09888888886040516112f79493929190612676565b60007f7805f013cae363c49df6acca2dcd8a8f0bd9005c2f87b85d8dbbce9098e4afd76113dd565b60006001600160581b038211156117315760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203860448201526538206269747360d01b606482015260840161059e565b5090565b6000611741888861158e565b805490915064ffffffffff1615806117605750805464ffffffffff1642105b806117685750815b6117b35760405162461bcd60e51b815260206004820152601c60248201527b27379036b7b234b334b1b0ba34b7b7399036b4b216b0bab1ba34b7b760211b604482015260640161059e565b8564ffffffffff1642106118005760405162461bcd60e51b81526020600482015260146024820152734f6e6c79206675747572652061756374696f6e7360601b604482015260640161059e565b826001600160581b0316846001600160581b0316116118845760405162461bcd60e51b815260206004820152603a60248201527f41756374696f6e207374617274207072696365206d7573742062652067726561604482015279746572207468616e2061756374696f6e20656e6420707269636560301b606482015260840161059e565b805464ffffffffff8781166001600160501b03199092168217600160281b918816918202176001600160501b0316600160501b6001600160581b038881169182026001600160a81b031692909217600160a81b9288169283021785556040805194855260208501939093529183019190915260608201526001600160a01b0388169089907f6d30de23b433ca9d1b35a23dbad7d163697515522cc04a716ce7c5cbde84e8c7906080016112f7565b60008061193f84846113b9565b8054909150610100900462ffffff1615801561195d5750805460ff16155b949350505050565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa1580156119ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119d19190612602565b6001600160a01b0316826001600160a01b03161490509392505050565b60006108cb620f4240836125cd565b81600003611a0a57505050565b6000611a1582611d4c565b90506000806000806000806000808815611ab357604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440161010060405180830381865afa158015611a76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9a9190612725565b969e50949c50929a509098509650945092509050611b33565b604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440160c060405180830381865afa158015611aff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2391906127ad565b949c50929a509096509450925090505b8a8285611b40898c612556565b611b4a9190612556565b611b549190612556565b14611ba05760405162461bcd60e51b815260206004820152601c60248201527b496e76616c696420726576656e75652073706c697420746f74616c7360201b604482015260640161059e565b611bb086868a8a88888888611d9a565b505050505050505050505050565b60405163230448b160e01b81526001600160a01b03848116600483015283811660248301526001600160e01b0319831660448301526000919086169063230448b1906064016020604051808303816000875af1158015611c22573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b3919061250c565b7f8b8290e46492bb8c910b18a5ee14f3db6a44fc145443a690c88697f622ddae8390565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b03841690630ea5613f9060240160c060405180830381865afa158015611cb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cd89190612808565b5093989297509195505050505050565b600062ffffff8211156117315760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201526534206269747360d01b606482015260840161059e565b600080611d5883610be7565b8054909150610100900460ff1615611d74575460ff1692915050565b6000611d7f84610c20565b825481151561ffff1990911617610100179092555092915050565b8715611e45576000876001600160a01b03168960405160006040518083038185875af1925050503d8060008114611ded576040519150601f19603f3d011682016040523d82523d6000602084013e611df2565b606091505b5050905080611e435760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c6564604482015260640161059e565b505b8515611ef0576000856001600160a01b03168760405160006040518083038185875af1925050503d8060008114611e98576040519150601f19603f3d011682016040523d82523d6000602084013e611e9d565b606091505b5050905080611eee5760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c65640000604482015260640161059e565b505b8315611f93576000836001600160a01b03168560405160006040518083038185875af1925050503d8060008114611f43576040519150601f19603f3d011682016040523d82523d6000602084013e611f48565b606091505b5050905080611f915760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b604482015260640161059e565b505b811561203e576000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114611fe6576040519150601f19603f3d011682016040523d82523d6000602084013e611feb565b606091505b505090508061203c5760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c656400604482015260640161059e565b505b5050505050505050565b6001600160a01b038116811461205d57600080fd5b50565b803561206b81612048565b919050565b60006020828403121561208257600080fd5b813561051e81612048565b60008083601f84011261209f57600080fd5b5081356001600160401b038111156120b657600080fd5b6020830191508360208260051b85010111156120d157600080fd5b9250929050565b60008060008060008060008060008060c08b8d0312156120f757600080fd5b8a35995061210760208c01612060565b985060408b01356001600160401b038082111561212357600080fd5b61212f8e838f0161208d565b909a50985060608d013591508082111561214857600080fd5b6121548e838f0161208d565b909850965060808d013591508082111561216d57600080fd5b6121798e838f0161208d565b909650945060a08d013591508082111561219257600080fd5b5061219f8d828e0161208d565b915080935050809150509295989b9194979a5092959850565b60008060008060008060c087890312156121d157600080fd5b86356121dc81612048565b95506020870135945060408701356121f381612048565b9350606087013561220381612048565b92506080870135915060a087013561221a81612048565b809150509295509295509295565b60006020828403121561223a57600080fd5b5035919050565b6000806000806080858703121561225757600080fd5b84359350602085013561226981612048565b9250604085013561227981612048565b9396929550929360600135925050565b6000806040838503121561229c57600080fd5b8235915060208301356122ae81612048565b809150509250929050565b600080600080600080608087890312156122d257600080fd5b8635955060208701356122e481612048565b945060408701356001600160401b038082111561230057600080fd5b61230c8a838b0161208d565b9096509450606089013591508082111561232557600080fd5b5061233289828a0161208d565b979a9699509497509295939492505050565b600080600080600060a0868803121561235c57600080fd5b853561236781612048565b945060208601359350604086013561237e81612048565b9250606086013561238e81612048565b949793965091946080013592915050565b6000806000606084860312156123b457600080fd5b8335925060208401356123c681612048565b9150604084013562ffffff811681146123de57600080fd5b809150509250925092565b60005b838110156124045781810151838201526020016123ec565b50506000910152565b600081518084526124258160208601602086016123e9565b601f01601f19169290920160200192915050565b6020815260006108c8602083018461240d565b841515815283602082015260806040820152600061246d608083018561240d565b905060018060a01b038316606083015295945050505050565b803564ffffffffff8116811461206b57600080fd5b60008060008060008060c087890312156124b457600080fd5b8635955060208701356124c681612048565b94506124d460408801612486565b93506124e260608801612486565b92506080870135915060a087013590509295509295509295565b8051801515811461206b57600080fd5b60006020828403121561251e57600080fd5b6108c8826124fc565b60006020828403121561253957600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156108cb576108cb612540565b6000825161257b8184602087016123e9565b9190910192915050565b60208082526017908201527613585e081a5b9d9bd8d85d1a5bdb9cc81c995858da1959604a1b604082015260600190565b80820281158282048414176108cb576108cb612540565b6000826125ea57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156108cb576108cb612540565b60006020828403121561261457600080fd5b815161051e81612048565b60208082526021908201527f546f6b656e486f6c6465724c69623a20617272617973206e6571206c656e67746040820152600d60fb1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6040808252810184905260008560608301825b878110156126b957823561269c81612048565b6001600160a01b0316825260209283019290910190600101612689565b5083810360208501528481526001600160fb1b038511156126d957600080fd5b8460051b915081866020830137016020019695505050505050565b602080825260179082015276496e76616c6964206d617820696e766f636174696f6e7360481b604082015260600190565b600080600080600080600080610100898b03121561274257600080fd5b88519750602089015161275481612048565b60408a015160608b0151919850965061276c81612048565b60808a015160a08b0151919650945061278481612048565b60c08a015160e08b0151919450925061279c81612048565b809150509295985092959890939650565b60008060008060008060c087890312156127c657600080fd5b8651955060208701516127d881612048565b6040880151606089015191965094506127f081612048565b608088015160a0890151919450925061221a81612048565b60008060008060008060c0878903121561282157600080fd5b8651955060208701519450612838604088016124fc565b9350612846606088016124fc565b92506080870151915061285b60a088016124fc565b9050929550929550929556fea2646970667358221220baec22579b49beb51bc9add7052358e982bedfa2a7f786e6176dcf9844b8113664736f6c63430008130033",
1226
660
  "linkReferences": {},
1227
661
  "deployedLinkReferences": {}
1228
662
  }