@artblocks/contracts 1.1.0 → 1.2.1

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 (326) hide show
  1. package/README.md +86 -34
  2. package/artifacts/contracts/AdminACLV0.sol/AdminACLV0.json +2 -2
  3. package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +2 -2
  4. package/artifacts/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2.sol/BytecodeStorageReaderContractV2.json +201 -0
  5. package/artifacts/contracts/BytecodeStorageReaders/UniversalBytecodeStorageReader.sol/UniversalBytecodeStorageReader.json +154 -0
  6. package/artifacts/contracts/BytecodeStorageV2Writer.sol/BytecodeStorageV2Writer.json +87 -0
  7. package/artifacts/contracts/DependencyRegistryV0.sol/DependencyRegistryV0.json +403 -155
  8. package/artifacts/contracts/GenArt721CoreV3_Curated.sol/GenArt721CoreV3_Curated.json +2493 -0
  9. package/artifacts/contracts/OwnedCreate2FactoryV0.sol/OwnedCreate2FactoryV0.json +311 -0
  10. package/artifacts/contracts/archive/GenArt721CoreV3.sol/GenArt721CoreV3.json +2060 -0
  11. package/artifacts/contracts/archive/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +2034 -0
  12. package/artifacts/contracts/{minter-suite → archive/minter-suite}/Minters/MinterBase_v0_1_1.sol/MinterBase.json +1 -1
  13. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +2 -2
  14. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +2 -2
  15. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExp}/MinterDAExpV4.sol/MinterDAExpV4.json +3 -3
  16. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +2 -2
  17. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol/MinterDAExpSettlementV1.json +2 -2
  18. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExpSettlement}/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +3 -3
  19. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +2 -2
  20. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +2 -2
  21. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDALin}/MinterDALinV4.sol/MinterDALinV4.json +3 -3
  22. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol/MinterHolderV1.json +2 -2
  23. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +2 -2
  24. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +2 -2
  25. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterHolder}/MinterHolderV4.sol/MinterHolderV4.json +3 -3
  26. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol/MinterMerkleV1.json +2 -2
  27. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol/MinterMerkleV2.json +2 -2
  28. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +2 -2
  29. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +2 -2
  30. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterMerkle}/MinterMerkleV5.sol/MinterMerkleV5.json +3 -3
  31. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterPolyptych}/MinterPolyptychV0.sol/IGenArt721CoreContractV3WithRandomizer.json +54 -49
  32. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterPolyptych}/MinterPolyptychV0.sol/MinterPolyptychV0.json +3 -3
  33. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSEA}/MinterSEAV0.sol/MinterSEAV0.json +3 -3
  34. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +2 -2
  35. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +2 -2
  36. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSetPrice}/MinterSetPriceV4.sol/MinterSetPriceV4.json +3 -3
  37. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol/MinterSetPriceERC20V0.json +65 -2
  38. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol/MinterSetPriceERC20V1.json +65 -2
  39. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +2 -2
  40. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +2 -2
  41. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +807 -0
  42. package/artifacts/contracts/engine/V2/GenArt721MinterBurner_PBAB.sol/GenArt721MinterBurner_PBAB.json +65 -2
  43. package/artifacts/contracts/engine/V2/GenArt721Minter_PBAB.sol/GenArt721Minter_PBAB.json +65 -2
  44. package/artifacts/contracts/engine/V3/EngineFactoryV0.sol/EngineFactoryV0.json +624 -0
  45. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +613 -216
  46. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +805 -206
  47. package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +51 -8
  48. package/artifacts/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol/AdminACLV0_PROHIBITION.json +2 -2
  49. package/artifacts/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol/GenArt721CoreV3_Engine_Flex_PROHIBITION.json +51 -8
  50. package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.json +59 -54
  51. package/artifacts/contracts/engine-registry/CoreRegistryV1.sol/CoreRegistryV1.json +2 -2
  52. package/artifacts/contracts/generator/AddressChunks.sol/AddressChunks.json +10 -0
  53. package/artifacts/contracts/generator/GenArt721GeneratorV0.sol/GenArt721GeneratorV0.json +333 -0
  54. package/artifacts/contracts/generator/GenArt721GeneratorV0.sol/ILegacyGenArt721CoreV2_PBAB_Flex.json +47 -0
  55. package/artifacts/contracts/interfaces/v0.8.x/IAdminACLV0_Extended.sol/IAdminACLV0_Extended.json +140 -0
  56. package/artifacts/contracts/interfaces/v0.8.x/IBytecodeStorageReader.sol/IBytecodeStorageReader.json +7 -7
  57. package/artifacts/contracts/interfaces/v0.8.x/IBytecodeStorageReaderV2.sol/IBytecodeStorageReaderV2.json +130 -0
  58. package/artifacts/contracts/interfaces/v0.8.x/IBytecodeStorageReader_Base.sol/IBytecodeStorageReader_Base.json +30 -0
  59. package/artifacts/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol/ICoreRegistryV1.json +13 -0
  60. package/artifacts/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +228 -45
  61. package/artifacts/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol/IEngineFactoryV0.json +283 -0
  62. package/artifacts/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV0.sol/IFilteredMinterDAExpSettlementV0.json +12 -12
  63. package/artifacts/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV1.sol/IFilteredMinterDAExpSettlementV1.json +12 -12
  64. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +53 -48
  65. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +53 -48
  66. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +198 -90
  67. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +198 -90
  68. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.json +1065 -0
  69. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol/IGenArt721CoreContractV3_Engine_PreV3p2.json +778 -0
  70. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_ProjectFinance.sol/IGenArt721CoreContractV3_ProjectFinance.json +87 -0
  71. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreProjectScriptV0.sol/IGenArt721CoreProjectScriptV0.json +59 -0
  72. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreProjectScriptV1.sol/IGenArt721CoreProjectScriptV1.json +64 -0
  73. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreTokenHashProviderV0.sol/IGenArt721CoreTokenHashProviderV0.json +30 -0
  74. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreTokenHashProviderV1.sol/IGenArt721CoreTokenHashProviderV1.json +30 -0
  75. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721GeneratorV0.sol/IGenArt721GeneratorV0.json +63 -0
  76. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721Minter_PBAB.sol/IGenArt721Minter_PBAB.json +279 -0
  77. package/artifacts/contracts/interfaces/v0.8.x/IOwnedCreate2FactoryV0.sol/IOwnedCreate2FactoryV0.json +74 -0
  78. package/artifacts/contracts/interfaces/v0.8.x/IPseudorandomAtomic.sol/IPseudorandomAtomic.json +1 -1
  79. package/artifacts/contracts/interfaces/v0.8.x/ISeaDropShimForContract.sol/ISeaDropShimForContract.json +37 -0
  80. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol/ISharedMinterDAExpSettlementV0.json +18 -0
  81. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterMinPriceV0.sol/ISharedMinterMinPriceV0.json +37 -0
  82. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterRAMV0.sol/ISharedMinterRAMV0.json +62 -0
  83. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterRequired.sol/ISharedMinterRequired.json +37 -0
  84. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol/ISharedMinterSEAV0.json +1 -1
  85. package/artifacts/contracts/interfaces/v0.8.x/ISplitAtomicFactoryV0.sol/ISplitAtomicFactoryV0.json +170 -0
  86. package/artifacts/contracts/interfaces/v0.8.x/ISplitAtomicV0.sol/ISplitAtomicV0.json +126 -0
  87. package/artifacts/contracts/interfaces/v0.8.x/ISplitProviderV0.sol/ISplitProviderV0.json +98 -0
  88. package/artifacts/contracts/interfaces/v0.8.x/IUniversalBytecodeStorageReader.sol/IUniversalBytecodeStorageReader.json +56 -0
  89. package/artifacts/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ERC721SeaDropStructsErrorsAndEvents.sol/ERC721SeaDropStructsErrorsAndEvents.json +43 -0
  90. package/artifacts/contracts/interfaces/v0.8.x/integration-refs/OpenSea/INonFungibleSeaDropToken.sol/INonFungibleSeaDropToken.json +715 -0
  91. package/artifacts/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ISeaDrop.sol/ISeaDrop.json +1571 -0
  92. package/artifacts/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ISeaDropTokenContractMetadata.sol/ISeaDropTokenContractMetadata.json +345 -0
  93. package/artifacts/contracts/interfaces/v0.8.x/integration-refs/OpenSea/SeaDropErrorsAndEvents.sol/SeaDropErrorsAndEvents.json +717 -0
  94. package/artifacts/contracts/interfaces/v0.8.x/integration-refs/splits-0x-v2/ISplitFactoryV2.sol/ISplitFactoryV2.json +123 -0
  95. package/artifacts/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol/DelegationRegistry.json +2 -2
  96. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeMock.sol/GnosisSafeMock.json +2 -2
  97. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeProxyFactoryMock.sol/GnosisSafeProxyFactoryMock.json +2 -2
  98. package/artifacts/contracts/libs/integration-refs/gnosis-safe/MultiSendMock.sol/MultiSendMock.json +2 -2
  99. package/artifacts/contracts/libs/integration-refs/weth9/weth9.sol/WETH9_.json +2 -2
  100. package/artifacts/contracts/libs/v0.8.x/ABHelpers.sol/ABHelpers.json +2 -2
  101. package/artifacts/contracts/libs/v0.8.x/AuthLib.sol/AuthLib.json +2 -2
  102. package/artifacts/contracts/libs/v0.8.x/BitMap.sol/BitMaps256.json +10 -0
  103. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV0.sol/BytecodeStorage.json +2 -2
  104. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV1.sol/BytecodeStorageReader.json +2 -2
  105. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV1.sol/BytecodeStorageWriter.json +2 -2
  106. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageReader.json +214 -0
  107. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageWriter.json +10 -0
  108. package/artifacts/contracts/libs/v0.8.x/Bytes32Strings.sol/Bytes32Strings.json +2 -2
  109. package/artifacts/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol/DependencyRegistryStorageLib.json +10 -0
  110. package/artifacts/contracts/libs/v0.8.x/ERC721_PackedHashSeed.sol/ERC721_PackedHashSeed.json +2 -2
  111. package/artifacts/contracts/libs/v0.8.x/ERC721_PackedHashSeedV1.sol/ERC721_PackedHashSeedV1.json +444 -0
  112. package/artifacts/contracts/libs/v0.8.x/JsonStatic.sol/JsonStatic.json +10 -0
  113. package/artifacts/contracts/libs/v0.8.x/PackedBools.sol/PackedBools.json +10 -0
  114. package/artifacts/contracts/libs/v0.8.x/SSTORE2.sol/SSTORE2.json +2 -2
  115. package/artifacts/contracts/libs/v0.8.x/V3FlexLib.sol/V3FlexLib.json +195 -0
  116. package/artifacts/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol/DAExpLib.json +2 -2
  117. package/artifacts/contracts/libs/v0.8.x/minter-libs/DALib.sol/DALib.json +2 -2
  118. package/artifacts/contracts/libs/v0.8.x/minter-libs/DALinLib.sol/DALinLib.json +2 -2
  119. package/artifacts/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol/GenericMinterEventsLib.json +2 -2
  120. package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.json +2 -2
  121. package/artifacts/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol/MerkleLib.json +2 -2
  122. package/artifacts/contracts/libs/v0.8.x/minter-libs/MinPriceLib.sol/MinPriceLib.json +24 -0
  123. package/artifacts/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol/PolyptychLib.json +2 -2
  124. package/artifacts/contracts/libs/v0.8.x/minter-libs/RAMLib.sol/RAMLib.json +398 -0
  125. package/artifacts/contracts/libs/v0.8.x/minter-libs/SEALib.sol/SEALib.json +2 -2
  126. package/artifacts/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol/SetPriceLib.json +2 -2
  127. package/artifacts/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol/SettlementExpLib.json +2 -2
  128. package/artifacts/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol/SplitFundsLib.json +2 -2
  129. package/artifacts/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol/TokenHolderLib.json +2 -2
  130. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
  131. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +2 -2
  132. package/artifacts/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol/MinterDAExpHolderV5.json +2 -2
  133. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol/MinterDAExpSettlementV3.json +2 -2
  134. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV5.sol/MinterDAExpV5.json +2 -2
  135. package/artifacts/contracts/minter-suite/Minters/MinterDALinHolderV5.sol/MinterDALinHolderV5.json +2 -2
  136. package/artifacts/contracts/minter-suite/Minters/MinterDALinV5.sol/MinterDALinV5.json +2 -2
  137. package/artifacts/contracts/minter-suite/Minters/MinterMinPriceMerkleV0.sol/MinterMinPriceMerkleV0.json +664 -0
  138. package/artifacts/contracts/minter-suite/Minters/MinterMinPriceV0.sol/MinterMinPriceV0.json +387 -0
  139. package/artifacts/contracts/minter-suite/Minters/MinterRAMV0.sol/MinterRAMV0.json +1374 -0
  140. package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +7 -7
  141. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol/MinterSetPriceERC20V5.json +2 -2
  142. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol/MinterSetPriceHolderV5.json +2 -2
  143. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol/MinterSetPriceMerkleV5.json +2 -2
  144. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol/MinterSetPricePolyptychERC20V5.json +2 -2
  145. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol/MinterSetPricePolyptychV5.json +2 -2
  146. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV5.sol/MinterSetPriceV5.json +2 -2
  147. package/artifacts/contracts/minter-suite/Minters/one-off/MinterSetPriceV5_SingleCore.sol/MinterSetPriceV5_SingleCore.json +417 -0
  148. package/artifacts/contracts/minter-suite/Minters/one-off/SeaDropXArtBlocksShim.sol/SeaDropXArtBlocksShim.json +1206 -0
  149. package/artifacts/contracts/mock/BytecodeV1LibCallsMock.sol/BytecodeV1LibCallsMock.json +2 -2
  150. package/artifacts/contracts/mock/BytecodeV2LibCallsMock.sol/BytecodeV2LibCallsMock.json +154 -0
  151. package/artifacts/contracts/mock/BytecodeV2TextCR_DMock.sol/BytecodeV2TextCR_DMock.json +428 -0
  152. package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +2 -2
  153. package/artifacts/contracts/mock/ERC20Mock.sol/ERC20Mock.json +2 -2
  154. package/artifacts/contracts/mock/ERC20MockAltDecimals.sol/ERC20MockAltDecimals.json +318 -0
  155. package/artifacts/contracts/mock/ForceSendMock.sol/ForceSendMock.json +24 -0
  156. package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +2 -2
  157. package/artifacts/contracts/mock/Mock0xSplitsV2PullFactory.sol/Mock0xSplitsV2PullFactory.json +149 -0
  158. package/artifacts/contracts/mock/Mock0xSplitsV2Splitter.sol/Mock0xSplitsV2Splitter.json +99 -0
  159. package/artifacts/contracts/mock/MockAdminACLV0.sol/MockAdminACLV0Events.json +20 -2
  160. package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +20 -2
  161. package/artifacts/contracts/mock/MockFileStore.sol/MockFileStore.json +35 -0
  162. package/artifacts/contracts/mock/OriginRegisterMock.sol/OriginRegisterMock.json +2 -2
  163. package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +2 -2
  164. package/artifacts/contracts/mock/ReentrancyGenArt721MinterMock.sol/ReentrancyGenArt721MinterMock.json +100 -0
  165. package/artifacts/contracts/mock/ReentrancyHolderMock.sol/ReentrancyHolderMock.json +2 -2
  166. package/artifacts/contracts/mock/ReentrancyHolderMockShared.sol/ReentrancyHolderMockShared.json +2 -2
  167. package/artifacts/contracts/mock/ReentrancyMerkleMock.sol/ReentrancyMerkleMock.json +2 -2
  168. package/artifacts/contracts/mock/ReentrancyMerkleMockShared.sol/ReentrancyMerkleMockShared.json +2 -2
  169. package/artifacts/contracts/mock/ReentrancyMock.sol/ReentrancyMock.json +2 -2
  170. package/artifacts/contracts/mock/ReentrancyMockShared.sol/ReentrancyMockShared.json +2 -2
  171. package/artifacts/contracts/mock/ReentrancySEAMock.sol/ReentrancySEAAutoBidderMock.json +2 -2
  172. package/artifacts/contracts/mock/ReentrancySEAMockShared.sol/ReentrancySEAAutoBidderMockShared.json +2 -2
  173. package/artifacts/contracts/mock/ReentrancySplitterMocks.sol/ReentrancySplitterDrainETHMock.json +54 -0
  174. package/artifacts/contracts/mock/ReentrancySplitterMocks.sol/ReentrancySplitterSendETHMock.json +54 -0
  175. package/artifacts/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +2 -2
  176. package/artifacts/contracts/randomizer/deprecated/RandomizerV2.sol/BasicRandomizerV2.json +2 -2
  177. package/artifacts/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol/PseudorandomAtomic.json +2 -2
  178. package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +2 -2
  179. package/artifacts/contracts/split/SplitAtomicFactoryV0.sol/SplitAtomicFactoryV0.json +203 -0
  180. package/artifacts/contracts/split/SplitAtomicV0.sol/SplitAtomicV0.json +168 -0
  181. package/artifacts/contracts/split/split-provider/SplitProviderV0.sol/SplitProviderV0.json +141 -0
  182. package/contracts/AdminACLV0.sol +6 -2
  183. package/contracts/AdminACLV1.sol +2 -2
  184. package/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2.sol +103 -0
  185. package/contracts/BytecodeStorageReaders/UniversalBytecodeStorageReader.sol +70 -0
  186. package/contracts/BytecodeStorageV2Writer.sol +69 -0
  187. package/contracts/DependencyRegistryV0.sol +878 -430
  188. package/contracts/GenArt721CoreV3_Curated.sol +133 -0
  189. package/contracts/OwnedCreate2FactoryV0.sol +173 -0
  190. package/contracts/{GenArt721CoreV3.sol → archive/GenArt721CoreV3.sol} +56 -20
  191. package/contracts/{explorations → archive}/GenArt721CoreV3_Explorations.sol +49 -13
  192. package/contracts/{minter-suite → archive/minter-suite}/Minters/MinterBase_v0_1_1.sol +4 -4
  193. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExp}/MinterDAExpV4.sol +4 -4
  194. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol +4 -4
  195. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol +5 -5
  196. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExpSettlement}/MinterDAExpSettlementV2.sol +8 -8
  197. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDALin}/MinterDALinV4.sol +4 -4
  198. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterHolder}/MinterHolderV4.sol +5 -5
  199. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterMerkle}/MinterMerkleV5.sol +5 -5
  200. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterPolyptych}/MinterPolyptychV0.sol +7 -7
  201. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSEA}/MinterSEAV0.sol +13 -13
  202. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSetPrice}/MinterSetPriceV4.sol +4 -4
  203. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol +82 -10
  204. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol +82 -10
  205. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSetPriceERC20}/MinterSetPriceERC20V4.sol +88 -21
  206. package/contracts/engine/V2/GenArt721MinterBurner_PBAB.sol +81 -22
  207. package/contracts/engine/V2/GenArt721Minter_PBAB.sol +80 -22
  208. package/contracts/engine/V3/EngineFactoryV0.sol +427 -0
  209. package/contracts/engine/V3/GenArt721CoreV3_Engine.sol +977 -502
  210. package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +1137 -663
  211. package/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol +3 -3
  212. package/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol +1 -1
  213. package/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol +2 -2
  214. package/contracts/generator/AddressChunks.sol +106 -0
  215. package/contracts/generator/GenArt721GeneratorV0.sol +1094 -0
  216. package/contracts/generator/scripty-support/Scripty.sol +5 -0
  217. package/contracts/interfaces/v0.8.x/IAdminACLV0_Extended.sol +20 -0
  218. package/contracts/interfaces/v0.8.x/IBytecodeStorageReader.sol +34 -36
  219. package/contracts/interfaces/v0.8.x/IBytecodeStorageReaderV2.sol +25 -0
  220. package/contracts/interfaces/v0.8.x/IBytecodeStorageReader_Base.sol +20 -0
  221. package/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol +5 -0
  222. package/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol +141 -45
  223. package/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol +124 -0
  224. package/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV0.sol +1 -3
  225. package/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV1.sol +1 -3
  226. package/contracts/interfaces/v0.8.x/IFilteredMinterDAExpV1.sol +1 -3
  227. package/contracts/interfaces/v0.8.x/IFilteredMinterDALinV1.sol +1 -3
  228. package/contracts/interfaces/v0.8.x/IFilteredMinterHolderV2.sol +1 -3
  229. package/contracts/interfaces/v0.8.x/IFilteredMinterMerkleV2.sol +1 -3
  230. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol +126 -11
  231. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol +86 -8
  232. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol +26 -8
  233. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol +141 -0
  234. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol +78 -0
  235. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_ProjectFinance.sol +47 -0
  236. package/contracts/interfaces/v0.8.x/IGenArt721CoreProjectScriptV0.sol +22 -0
  237. package/contracts/interfaces/v0.8.x/IGenArt721CoreProjectScriptV1.sol +23 -0
  238. package/contracts/interfaces/v0.8.x/IGenArt721CoreTokenHashProviderV0.sol +11 -0
  239. package/contracts/interfaces/v0.8.x/IGenArt721CoreTokenHashProviderV1.sol +9 -0
  240. package/contracts/interfaces/v0.8.x/IGenArt721GeneratorV0.sol +14 -0
  241. package/contracts/interfaces/v0.8.x/IGenArt721Minter_PBAB.sol +91 -0
  242. package/contracts/interfaces/v0.8.x/IOwnedCreate2FactoryV0.sol +40 -0
  243. package/contracts/interfaces/v0.8.x/IPseudorandomAtomic.sol +1 -3
  244. package/contracts/interfaces/v0.8.x/ISeaDropShimForContract.sol +19 -0
  245. package/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol +19 -0
  246. package/contracts/interfaces/v0.8.x/ISharedMinterMinPriceV0.sol +22 -0
  247. package/contracts/interfaces/v0.8.x/ISharedMinterRAMV0.sol +23 -0
  248. package/contracts/interfaces/v0.8.x/ISharedMinterRequired.sol +26 -0
  249. package/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol +1 -4
  250. package/contracts/interfaces/v0.8.x/ISharedMinterV0.sol +12 -6
  251. package/contracts/interfaces/v0.8.x/ISplitAtomicFactoryV0.sol +81 -0
  252. package/contracts/interfaces/v0.8.x/ISplitAtomicV0.sol +72 -0
  253. package/contracts/interfaces/v0.8.x/ISplitProviderV0.sol +49 -0
  254. package/contracts/interfaces/v0.8.x/IUniversalBytecodeStorageReader.sol +28 -0
  255. package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ERC721SeaDropStructsErrorsAndEvents.sol +58 -0
  256. package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/INonFungibleSeaDropToken.sol +186 -0
  257. package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ISeaDrop.sol +337 -0
  258. package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/ISeaDropTokenContractMetadata.sol +152 -0
  259. package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/SeaDropErrorsAndEvents.sol +320 -0
  260. package/contracts/interfaces/v0.8.x/integration-refs/OpenSea/SeaDropStructs.sol +146 -0
  261. package/contracts/interfaces/v0.8.x/integration-refs/splits-0x-v2/ISplitFactoryV2.sol +62 -0
  262. package/contracts/libs/v0.8.x/ABHelpers.sol +18 -4
  263. package/contracts/libs/v0.8.x/BitMap.sol +112 -0
  264. package/contracts/libs/v0.8.x/BytecodeStorageV2.sol +593 -0
  265. package/contracts/libs/v0.8.x/Bytes32Strings.sol +20 -0
  266. package/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol +98 -0
  267. package/contracts/libs/v0.8.x/ERC721_PackedHashSeedV1.sol +591 -0
  268. package/contracts/libs/v0.8.x/JsonStatic.sol +373 -0
  269. package/contracts/libs/v0.8.x/PackedBools.sol +42 -0
  270. package/contracts/libs/v0.8.x/V3FlexLib.sol +597 -0
  271. package/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol +10 -12
  272. package/contracts/libs/v0.8.x/minter-libs/DALinLib.sol +4 -9
  273. package/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol +44 -44
  274. package/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol +64 -63
  275. package/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol +14 -10
  276. package/contracts/libs/v0.8.x/minter-libs/MinPriceLib.sol +64 -0
  277. package/contracts/libs/v0.8.x/minter-libs/RAMLib.sol +2927 -0
  278. package/contracts/libs/v0.8.x/minter-libs/SEALib.sol +60 -62
  279. package/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol +4 -8
  280. package/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol +92 -89
  281. package/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol +128 -15
  282. package/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol +5 -4
  283. package/contracts/minter-suite/MinterFilter/MinterFilterV2.sol +16 -10
  284. package/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol +2 -2
  285. package/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol +19 -15
  286. package/contracts/minter-suite/Minters/MinterDAExpV5.sol +2 -2
  287. package/contracts/minter-suite/Minters/MinterDALinHolderV5.sol +2 -2
  288. package/contracts/minter-suite/Minters/MinterDALinV5.sol +2 -2
  289. package/contracts/minter-suite/Minters/MinterMinPriceMerkleV0.sol +765 -0
  290. package/contracts/minter-suite/Minters/MinterMinPriceV0.sol +462 -0
  291. package/contracts/minter-suite/Minters/MinterRAMV0.sol +1205 -0
  292. package/contracts/minter-suite/Minters/MinterSEAV1.sol +21 -32
  293. package/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol +17 -8
  294. package/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol +2 -2
  295. package/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol +2 -2
  296. package/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol +23 -9
  297. package/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol +2 -2
  298. package/contracts/minter-suite/Minters/MinterSetPriceV5.sol +2 -2
  299. package/contracts/minter-suite/Minters/one-off/MinterSetPriceV5_SingleCore.sol +446 -0
  300. package/contracts/minter-suite/Minters/one-off/SeaDropXArtBlocksShim.sol +869 -0
  301. package/contracts/mock/BytecodeV2LibCallsMock.sol +128 -0
  302. package/contracts/mock/BytecodeV2TextCR_DMock.sol +316 -0
  303. package/contracts/mock/ERC20MockAltDecimals.sol +31 -0
  304. package/contracts/mock/ForceSendMock.sol +22 -0
  305. package/contracts/mock/Mock0xSplitsV2PullFactory.sol +75 -0
  306. package/contracts/mock/Mock0xSplitsV2Splitter.sol +47 -0
  307. package/contracts/mock/MockAdminACLV0.sol +21 -0
  308. package/contracts/mock/MockAdminACLV0_PROHIBITION.sol +21 -0
  309. package/contracts/mock/MockFileStore.sol +22 -0
  310. package/contracts/mock/ReentrancyGenArt721MinterMock.sol +47 -0
  311. package/contracts/mock/ReentrancySplitterMocks.sol +67 -0
  312. package/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol +1 -1
  313. package/contracts/randomizer/shared/SharedRandomizerV0.sol +1 -1
  314. package/contracts/split/SplitAtomicFactoryV0.sol +121 -0
  315. package/contracts/split/SplitAtomicV0.sol +265 -0
  316. package/contracts/split/split-provider/SplitProviderV0.sol +201 -0
  317. package/package.json +66 -36
  318. package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +0 -1965
  319. package/artifacts/contracts/explorations/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +0 -1939
  320. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +0 -768
  321. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride.sol/GenArt721RoyaltyOverride.json +0 -208
  322. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol/GenArt721RoyaltyOverride_PBAB.json +0 -301
  323. package/contracts/archive/readme.md +0 -16
  324. package/contracts/engine/README.md +0 -21
  325. package/contracts/royalty-registry/GenArt721RoyaltyOverride.sol +0 -168
  326. package/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol +0 -221
@@ -3,37 +3,50 @@
3
3
  "contractName": "DependencyRegistryV0",
4
4
  "sourceName": "contracts/DependencyRegistryV0.sol",
5
5
  "abi": [
6
+ {
7
+ "anonymous": false,
8
+ "inputs": [
9
+ {
10
+ "indexed": true,
11
+ "internalType": "address",
12
+ "name": "coreRegistryAddress",
13
+ "type": "address"
14
+ }
15
+ ],
16
+ "name": "CoreRegistryAddressUpdated",
17
+ "type": "event"
18
+ },
6
19
  {
7
20
  "anonymous": false,
8
21
  "inputs": [
9
22
  {
10
23
  "indexed": true,
11
24
  "internalType": "bytes32",
12
- "name": "_dependencyType",
25
+ "name": "dependencyNameAndVersion",
13
26
  "type": "bytes32"
14
27
  },
15
28
  {
16
29
  "indexed": true,
17
30
  "internalType": "bytes32",
18
- "name": "_licenseType",
31
+ "name": "licenseType",
19
32
  "type": "bytes32"
20
33
  },
21
34
  {
22
35
  "indexed": false,
23
36
  "internalType": "string",
24
- "name": "_preferredCDN",
37
+ "name": "preferredCDN",
25
38
  "type": "string"
26
39
  },
27
40
  {
28
41
  "indexed": false,
29
42
  "internalType": "string",
30
- "name": "_preferredRepository",
43
+ "name": "preferredRepository",
31
44
  "type": "string"
32
45
  },
33
46
  {
34
47
  "indexed": false,
35
48
  "internalType": "string",
36
- "name": "_referenceWebsite",
49
+ "name": "website",
37
50
  "type": "string"
38
51
  }
39
52
  ],
@@ -46,13 +59,13 @@
46
59
  {
47
60
  "indexed": true,
48
61
  "internalType": "bytes32",
49
- "name": "_dependencyType",
62
+ "name": "dependencyNameAndVersion",
50
63
  "type": "bytes32"
51
64
  },
52
65
  {
53
66
  "indexed": true,
54
67
  "internalType": "uint256",
55
- "name": "_additionalCDNIndex",
68
+ "name": "additionalCDNIndex",
56
69
  "type": "uint256"
57
70
  }
58
71
  ],
@@ -65,19 +78,19 @@
65
78
  {
66
79
  "indexed": true,
67
80
  "internalType": "bytes32",
68
- "name": "_dependencyType",
81
+ "name": "dependencyNameAndVersion",
69
82
  "type": "bytes32"
70
83
  },
71
84
  {
72
85
  "indexed": false,
73
86
  "internalType": "string",
74
- "name": "_additionalCDN",
87
+ "name": "additionalCDN",
75
88
  "type": "string"
76
89
  },
77
90
  {
78
91
  "indexed": false,
79
92
  "internalType": "uint256",
80
- "name": "_additionalCDNIndex",
93
+ "name": "additionalCDNIndex",
81
94
  "type": "uint256"
82
95
  }
83
96
  ],
@@ -90,13 +103,13 @@
90
103
  {
91
104
  "indexed": true,
92
105
  "internalType": "bytes32",
93
- "name": "_dependencyType",
106
+ "name": "dependencyNameAndVersion",
94
107
  "type": "bytes32"
95
108
  },
96
109
  {
97
110
  "indexed": true,
98
111
  "internalType": "uint256",
99
- "name": "_additionalRepositoryIndex",
112
+ "name": "additionalRepositoryIndex",
100
113
  "type": "uint256"
101
114
  }
102
115
  ],
@@ -109,19 +122,19 @@
109
122
  {
110
123
  "indexed": true,
111
124
  "internalType": "bytes32",
112
- "name": "_dependencyType",
125
+ "name": "dependencyNameAndVersion",
113
126
  "type": "bytes32"
114
127
  },
115
128
  {
116
129
  "indexed": false,
117
130
  "internalType": "string",
118
- "name": "_additionalRepository",
131
+ "name": "additionalRepository",
119
132
  "type": "string"
120
133
  },
121
134
  {
122
135
  "indexed": false,
123
136
  "internalType": "uint256",
124
- "name": "_additionalRepositoryIndex",
137
+ "name": "additionalRepositoryIndex",
125
138
  "type": "uint256"
126
139
  }
127
140
  ],
@@ -134,13 +147,13 @@
134
147
  {
135
148
  "indexed": true,
136
149
  "internalType": "bytes32",
137
- "name": "_dependencyType",
150
+ "name": "dependencyNameAndVersion",
138
151
  "type": "bytes32"
139
152
  },
140
153
  {
141
154
  "indexed": false,
142
155
  "internalType": "string",
143
- "name": "_preferredCDN",
156
+ "name": "preferredCDN",
144
157
  "type": "string"
145
158
  }
146
159
  ],
@@ -153,13 +166,13 @@
153
166
  {
154
167
  "indexed": true,
155
168
  "internalType": "bytes32",
156
- "name": "_dependencyType",
169
+ "name": "dependencyNameAndVersion",
157
170
  "type": "bytes32"
158
171
  },
159
172
  {
160
173
  "indexed": false,
161
174
  "internalType": "string",
162
- "name": "_preferredRepository",
175
+ "name": "preferredRepository",
163
176
  "type": "string"
164
177
  }
165
178
  ],
@@ -172,17 +185,11 @@
172
185
  {
173
186
  "indexed": true,
174
187
  "internalType": "bytes32",
175
- "name": "_dependencyType",
188
+ "name": "dependencyNameAndVersion",
176
189
  "type": "bytes32"
177
- },
178
- {
179
- "indexed": false,
180
- "internalType": "string",
181
- "name": "_referenceWebsite",
182
- "type": "string"
183
190
  }
184
191
  ],
185
- "name": "DependencyReferenceWebsiteUpdated",
192
+ "name": "DependencyRemoved",
186
193
  "type": "event"
187
194
  },
188
195
  {
@@ -191,11 +198,11 @@
191
198
  {
192
199
  "indexed": true,
193
200
  "internalType": "bytes32",
194
- "name": "_dependencyType",
201
+ "name": "dependencyNameAndVersion",
195
202
  "type": "bytes32"
196
203
  }
197
204
  ],
198
- "name": "DependencyRemoved",
205
+ "name": "DependencyScriptUpdated",
199
206
  "type": "event"
200
207
  },
201
208
  {
@@ -204,11 +211,17 @@
204
211
  {
205
212
  "indexed": true,
206
213
  "internalType": "bytes32",
207
- "name": "_dependencyType",
214
+ "name": "dependencyNameAndVersion",
208
215
  "type": "bytes32"
216
+ },
217
+ {
218
+ "indexed": false,
219
+ "internalType": "string",
220
+ "name": "website",
221
+ "type": "string"
209
222
  }
210
223
  ],
211
- "name": "DependencyScriptUpdated",
224
+ "name": "DependencyWebsiteUpdated",
212
225
  "type": "event"
213
226
  },
214
227
  {
@@ -230,7 +243,20 @@
230
243
  {
231
244
  "indexed": true,
232
245
  "internalType": "bytes32",
233
- "name": "_licenseType",
246
+ "name": "licenseType",
247
+ "type": "bytes32"
248
+ }
249
+ ],
250
+ "name": "LicenseTextUpdated",
251
+ "type": "event"
252
+ },
253
+ {
254
+ "anonymous": false,
255
+ "inputs": [
256
+ {
257
+ "indexed": true,
258
+ "internalType": "bytes32",
259
+ "name": "licenseType",
234
260
  "type": "bytes32"
235
261
  }
236
262
  ],
@@ -262,23 +288,23 @@
262
288
  {
263
289
  "indexed": true,
264
290
  "internalType": "address",
265
- "name": "_coreContractAddress",
291
+ "name": "coreContractAddress",
266
292
  "type": "address"
267
293
  },
268
294
  {
269
295
  "indexed": true,
270
296
  "internalType": "uint256",
271
- "name": "_projectId",
297
+ "name": "projectId",
272
298
  "type": "uint256"
273
299
  },
274
300
  {
275
301
  "indexed": false,
276
302
  "internalType": "bytes32",
277
- "name": "_dependencyType",
303
+ "name": "dependencyNameAndVersion",
278
304
  "type": "bytes32"
279
305
  }
280
306
  ],
281
- "name": "ProjectDependencyTypeOverrideAdded",
307
+ "name": "ProjectDependencyOverrideAdded",
282
308
  "type": "event"
283
309
  },
284
310
  {
@@ -287,17 +313,17 @@
287
313
  {
288
314
  "indexed": true,
289
315
  "internalType": "address",
290
- "name": "_coreContractAddress",
316
+ "name": "coreContractAddress",
291
317
  "type": "address"
292
318
  },
293
319
  {
294
320
  "indexed": true,
295
321
  "internalType": "uint256",
296
- "name": "_projectId",
322
+ "name": "projectId",
297
323
  "type": "uint256"
298
324
  }
299
325
  ],
300
- "name": "ProjectDependencyTypeOverrideRemoved",
326
+ "name": "ProjectDependencyOverrideRemoved",
301
327
  "type": "event"
302
328
  },
303
329
  {
@@ -306,7 +332,7 @@
306
332
  {
307
333
  "indexed": true,
308
334
  "internalType": "address",
309
- "name": "_coreContractAddress",
335
+ "name": "coreContractAddress",
310
336
  "type": "address"
311
337
  }
312
338
  ],
@@ -319,7 +345,33 @@
319
345
  {
320
346
  "indexed": true,
321
347
  "internalType": "address",
322
- "name": "_coreContractAddress",
348
+ "name": "coreContractAddress",
349
+ "type": "address"
350
+ }
351
+ ],
352
+ "name": "SupportedCoreContractOverrideAdded",
353
+ "type": "event"
354
+ },
355
+ {
356
+ "anonymous": false,
357
+ "inputs": [
358
+ {
359
+ "indexed": true,
360
+ "internalType": "address",
361
+ "name": "coreContractAddress",
362
+ "type": "address"
363
+ }
364
+ ],
365
+ "name": "SupportedCoreContractOverrideRemoved",
366
+ "type": "event"
367
+ },
368
+ {
369
+ "anonymous": false,
370
+ "inputs": [
371
+ {
372
+ "indexed": true,
373
+ "internalType": "address",
374
+ "name": "coreContractAddress",
323
375
  "type": "address"
324
376
  }
325
377
  ],
@@ -330,27 +382,27 @@
330
382
  "inputs": [
331
383
  {
332
384
  "internalType": "bytes32",
333
- "name": "_dependencyType",
385
+ "name": "dependencyNameAndVersion",
334
386
  "type": "bytes32"
335
387
  },
336
388
  {
337
389
  "internalType": "bytes32",
338
- "name": "_licenseType",
390
+ "name": "licenseType",
339
391
  "type": "bytes32"
340
392
  },
341
393
  {
342
394
  "internalType": "string",
343
- "name": "_preferredCDN",
395
+ "name": "preferredCDN",
344
396
  "type": "string"
345
397
  },
346
398
  {
347
399
  "internalType": "string",
348
- "name": "_preferredRepository",
400
+ "name": "preferredRepository",
349
401
  "type": "string"
350
402
  },
351
403
  {
352
404
  "internalType": "string",
353
- "name": "_referenceWebsite",
405
+ "name": "dependencyWebsite",
354
406
  "type": "string"
355
407
  }
356
408
  ],
@@ -363,12 +415,12 @@
363
415
  "inputs": [
364
416
  {
365
417
  "internalType": "bytes32",
366
- "name": "_dependencyType",
418
+ "name": "dependencyNameAndVersion",
367
419
  "type": "bytes32"
368
420
  },
369
421
  {
370
422
  "internalType": "string",
371
- "name": "_additionalCDN",
423
+ "name": "additionalCDN",
372
424
  "type": "string"
373
425
  }
374
426
  ],
@@ -381,12 +433,12 @@
381
433
  "inputs": [
382
434
  {
383
435
  "internalType": "bytes32",
384
- "name": "_dependencyType",
436
+ "name": "dependencyNameAndVersion",
385
437
  "type": "bytes32"
386
438
  },
387
439
  {
388
440
  "internalType": "string",
389
- "name": "_additionalRepository",
441
+ "name": "additionalRepository",
390
442
  "type": "string"
391
443
  }
392
444
  ],
@@ -399,12 +451,12 @@
399
451
  "inputs": [
400
452
  {
401
453
  "internalType": "bytes32",
402
- "name": "_dependencyType",
454
+ "name": "dependencyNameAndVersion",
403
455
  "type": "bytes32"
404
456
  },
405
457
  {
406
458
  "internalType": "string",
407
- "name": "_script",
459
+ "name": "script",
408
460
  "type": "string"
409
461
  }
410
462
  ],
@@ -417,12 +469,12 @@
417
469
  "inputs": [
418
470
  {
419
471
  "internalType": "bytes32",
420
- "name": "_dependencyType",
472
+ "name": "dependencyNameAndVersion",
421
473
  "type": "bytes32"
422
474
  },
423
475
  {
424
476
  "internalType": "address",
425
- "name": "_scriptPointer",
477
+ "name": "scriptPointer",
426
478
  "type": "address"
427
479
  }
428
480
  ],
@@ -435,7 +487,25 @@
435
487
  "inputs": [
436
488
  {
437
489
  "internalType": "bytes32",
438
- "name": "_licenseType",
490
+ "name": "licenseType",
491
+ "type": "bytes32"
492
+ },
493
+ {
494
+ "internalType": "string",
495
+ "name": "text",
496
+ "type": "string"
497
+ }
498
+ ],
499
+ "name": "addLicenseText",
500
+ "outputs": [],
501
+ "stateMutability": "nonpayable",
502
+ "type": "function"
503
+ },
504
+ {
505
+ "inputs": [
506
+ {
507
+ "internalType": "bytes32",
508
+ "name": "licenseType",
439
509
  "type": "bytes32"
440
510
  }
441
511
  ],
@@ -448,21 +518,21 @@
448
518
  "inputs": [
449
519
  {
450
520
  "internalType": "address",
451
- "name": "_contractAddress",
521
+ "name": "contractAddress",
452
522
  "type": "address"
453
523
  },
454
524
  {
455
525
  "internalType": "uint256",
456
- "name": "_projectId",
526
+ "name": "projectId",
457
527
  "type": "uint256"
458
528
  },
459
529
  {
460
530
  "internalType": "bytes32",
461
- "name": "_dependencyType",
531
+ "name": "dependencyNameAndVersion",
462
532
  "type": "bytes32"
463
533
  }
464
534
  ],
465
- "name": "addProjectDependencyTypeOverride",
535
+ "name": "addProjectDependencyOverride",
466
536
  "outputs": [],
467
537
  "stateMutability": "nonpayable",
468
538
  "type": "function"
@@ -471,11 +541,11 @@
471
541
  "inputs": [
472
542
  {
473
543
  "internalType": "address",
474
- "name": "_contractAddress",
544
+ "name": "contractAddress",
475
545
  "type": "address"
476
546
  }
477
547
  ],
478
- "name": "addSupportedCoreContract",
548
+ "name": "addSupportedCoreContractOverride",
479
549
  "outputs": [],
480
550
  "stateMutability": "nonpayable",
481
551
  "type": "function"
@@ -484,17 +554,17 @@
484
554
  "inputs": [
485
555
  {
486
556
  "internalType": "address",
487
- "name": "_sender",
557
+ "name": "sender",
488
558
  "type": "address"
489
559
  },
490
560
  {
491
561
  "internalType": "address",
492
- "name": "_contract",
562
+ "name": "contract_",
493
563
  "type": "address"
494
564
  },
495
565
  {
496
566
  "internalType": "bytes4",
497
- "name": "_selector",
567
+ "name": "selector",
498
568
  "type": "bytes4"
499
569
  }
500
570
  ],
@@ -514,7 +584,7 @@
514
584
  "name": "adminACLContract",
515
585
  "outputs": [
516
586
  {
517
- "internalType": "contract IAdminACLV0",
587
+ "internalType": "address",
518
588
  "name": "",
519
589
  "type": "address"
520
590
  }
@@ -526,12 +596,12 @@
526
596
  "inputs": [
527
597
  {
528
598
  "internalType": "bytes32",
529
- "name": "_dependencyType",
599
+ "name": "dependencyNameAndVersion",
530
600
  "type": "bytes32"
531
601
  },
532
602
  {
533
603
  "internalType": "uint256",
534
- "name": "_index",
604
+ "name": "index",
535
605
  "type": "uint256"
536
606
  }
537
607
  ],
@@ -550,12 +620,12 @@
550
620
  "inputs": [
551
621
  {
552
622
  "internalType": "bytes32",
553
- "name": "_dependencyType",
623
+ "name": "dependencyNameAndVersion",
554
624
  "type": "bytes32"
555
625
  },
556
626
  {
557
627
  "internalType": "uint256",
558
- "name": "_index",
628
+ "name": "index",
559
629
  "type": "uint256"
560
630
  }
561
631
  ],
@@ -570,11 +640,24 @@
570
640
  "stateMutability": "view",
571
641
  "type": "function"
572
642
  },
643
+ {
644
+ "inputs": [],
645
+ "name": "getDependencyCount",
646
+ "outputs": [
647
+ {
648
+ "internalType": "uint256",
649
+ "name": "",
650
+ "type": "uint256"
651
+ }
652
+ ],
653
+ "stateMutability": "view",
654
+ "type": "function"
655
+ },
573
656
  {
574
657
  "inputs": [
575
658
  {
576
659
  "internalType": "bytes32",
577
- "name": "_dependencyType",
660
+ "name": "dependencyNameAndVersion",
578
661
  "type": "bytes32"
579
662
  }
580
663
  ],
@@ -582,7 +665,7 @@
582
665
  "outputs": [
583
666
  {
584
667
  "internalType": "string",
585
- "name": "typeAndVersion",
668
+ "name": "nameAndVersion",
586
669
  "type": "string"
587
670
  },
588
671
  {
@@ -612,7 +695,7 @@
612
695
  },
613
696
  {
614
697
  "internalType": "string",
615
- "name": "referenceWebsite",
698
+ "name": "dependencyWebsite",
616
699
  "type": "string"
617
700
  },
618
701
  {
@@ -632,17 +715,71 @@
632
715
  {
633
716
  "inputs": [
634
717
  {
635
- "internalType": "bytes32",
636
- "name": "_dependencyType",
637
- "type": "bytes32"
718
+ "internalType": "string",
719
+ "name": "dependencyNameAndVersion",
720
+ "type": "string"
721
+ }
722
+ ],
723
+ "name": "getDependencyDetailsFromString",
724
+ "outputs": [
725
+ {
726
+ "internalType": "string",
727
+ "name": "nameAndVersion",
728
+ "type": "string"
729
+ },
730
+ {
731
+ "internalType": "string",
732
+ "name": "licenseType",
733
+ "type": "string"
734
+ },
735
+ {
736
+ "internalType": "string",
737
+ "name": "preferredCDN",
738
+ "type": "string"
739
+ },
740
+ {
741
+ "internalType": "uint24",
742
+ "name": "additionalCDNCount",
743
+ "type": "uint24"
744
+ },
745
+ {
746
+ "internalType": "string",
747
+ "name": "preferredRepository",
748
+ "type": "string"
638
749
  },
750
+ {
751
+ "internalType": "uint24",
752
+ "name": "additionalRepositoryCount",
753
+ "type": "uint24"
754
+ },
755
+ {
756
+ "internalType": "string",
757
+ "name": "dependencyWebsite",
758
+ "type": "string"
759
+ },
760
+ {
761
+ "internalType": "bool",
762
+ "name": "availableOnChain",
763
+ "type": "bool"
764
+ },
765
+ {
766
+ "internalType": "uint24",
767
+ "name": "scriptCount",
768
+ "type": "uint24"
769
+ }
770
+ ],
771
+ "stateMutability": "view",
772
+ "type": "function"
773
+ },
774
+ {
775
+ "inputs": [
639
776
  {
640
777
  "internalType": "uint256",
641
- "name": "_index",
778
+ "name": "index",
642
779
  "type": "uint256"
643
780
  }
644
781
  ],
645
- "name": "getDependencyScript",
782
+ "name": "getDependencyNameAndVersion",
646
783
  "outputs": [
647
784
  {
648
785
  "internalType": "string",
@@ -656,22 +793,35 @@
656
793
  {
657
794
  "inputs": [
658
795
  {
659
- "internalType": "bytes32",
660
- "name": "_dependencyType",
661
- "type": "bytes32"
796
+ "internalType": "address",
797
+ "name": "contractAddress",
798
+ "type": "address"
662
799
  },
663
800
  {
664
801
  "internalType": "uint256",
665
- "name": "_index",
802
+ "name": "projectId",
666
803
  "type": "uint256"
667
804
  }
668
805
  ],
669
- "name": "getDependencyScriptBytecodeAddress",
806
+ "name": "getDependencyNameAndVersionForProject",
670
807
  "outputs": [
671
808
  {
672
- "internalType": "address",
809
+ "internalType": "string",
673
810
  "name": "",
674
- "type": "address"
811
+ "type": "string"
812
+ }
813
+ ],
814
+ "stateMutability": "view",
815
+ "type": "function"
816
+ },
817
+ {
818
+ "inputs": [],
819
+ "name": "getDependencyNamesAndVersions",
820
+ "outputs": [
821
+ {
822
+ "internalType": "string[]",
823
+ "name": "",
824
+ "type": "string[]"
675
825
  }
676
826
  ],
677
827
  "stateMutability": "view",
@@ -681,21 +831,21 @@
681
831
  "inputs": [
682
832
  {
683
833
  "internalType": "bytes32",
684
- "name": "_dependencyType",
834
+ "name": "dependencyNameAndVersion",
685
835
  "type": "bytes32"
686
836
  },
687
837
  {
688
838
  "internalType": "uint256",
689
- "name": "_index",
839
+ "name": "index",
690
840
  "type": "uint256"
691
841
  }
692
842
  ],
693
- "name": "getDependencyScriptBytecodeStorageVersion",
843
+ "name": "getDependencyScript",
694
844
  "outputs": [
695
845
  {
696
- "internalType": "bytes32",
846
+ "internalType": "string",
697
847
  "name": "",
698
- "type": "bytes32"
848
+ "type": "string"
699
849
  }
700
850
  ],
701
851
  "stateMutability": "view",
@@ -705,16 +855,21 @@
705
855
  "inputs": [
706
856
  {
707
857
  "internalType": "bytes32",
708
- "name": "_dependencyType",
858
+ "name": "dependencyNameAndVersion",
709
859
  "type": "bytes32"
860
+ },
861
+ {
862
+ "internalType": "uint256",
863
+ "name": "index",
864
+ "type": "uint256"
710
865
  }
711
866
  ],
712
- "name": "getDependencyScriptCount",
867
+ "name": "getDependencyScriptBytecodeAddress",
713
868
  "outputs": [
714
869
  {
715
- "internalType": "uint256",
870
+ "internalType": "address",
716
871
  "name": "",
717
- "type": "uint256"
872
+ "type": "address"
718
873
  }
719
874
  ],
720
875
  "stateMutability": "view",
@@ -722,26 +877,37 @@
722
877
  },
723
878
  {
724
879
  "inputs": [
880
+ {
881
+ "internalType": "bytes32",
882
+ "name": "dependencyNameAndVersion",
883
+ "type": "bytes32"
884
+ },
725
885
  {
726
886
  "internalType": "uint256",
727
- "name": "_index",
887
+ "name": "index",
728
888
  "type": "uint256"
729
889
  }
730
890
  ],
731
- "name": "getDependencyType",
891
+ "name": "getDependencyScriptBytecodeStorageVersion",
732
892
  "outputs": [
733
893
  {
734
- "internalType": "string",
894
+ "internalType": "bytes32",
735
895
  "name": "",
736
- "type": "string"
896
+ "type": "bytes32"
737
897
  }
738
898
  ],
739
899
  "stateMutability": "view",
740
900
  "type": "function"
741
901
  },
742
902
  {
743
- "inputs": [],
744
- "name": "getDependencyTypeCount",
903
+ "inputs": [
904
+ {
905
+ "internalType": "bytes32",
906
+ "name": "dependencyNameAndVersion",
907
+ "type": "bytes32"
908
+ }
909
+ ],
910
+ "name": "getDependencyScriptCount",
745
911
  "outputs": [
746
912
  {
747
913
  "internalType": "uint256",
@@ -755,17 +921,17 @@
755
921
  {
756
922
  "inputs": [
757
923
  {
758
- "internalType": "address",
759
- "name": "_contractAddress",
760
- "type": "address"
924
+ "internalType": "bytes32",
925
+ "name": "licenseType",
926
+ "type": "bytes32"
761
927
  },
762
928
  {
763
929
  "internalType": "uint256",
764
- "name": "_projectId",
930
+ "name": "index",
765
931
  "type": "uint256"
766
932
  }
767
933
  ],
768
- "name": "getDependencyTypeForProject",
934
+ "name": "getLicenseText",
769
935
  "outputs": [
770
936
  {
771
937
  "internalType": "string",
@@ -777,13 +943,19 @@
777
943
  "type": "function"
778
944
  },
779
945
  {
780
- "inputs": [],
781
- "name": "getDependencyTypes",
946
+ "inputs": [
947
+ {
948
+ "internalType": "bytes32",
949
+ "name": "licenseType",
950
+ "type": "bytes32"
951
+ }
952
+ ],
953
+ "name": "getLicenseTextChunkCount",
782
954
  "outputs": [
783
955
  {
784
- "internalType": "string[]",
956
+ "internalType": "uint256",
785
957
  "name": "",
786
- "type": "string[]"
958
+ "type": "uint256"
787
959
  }
788
960
  ],
789
961
  "stateMutability": "view",
@@ -793,7 +965,7 @@
793
965
  "inputs": [
794
966
  {
795
967
  "internalType": "uint256",
796
- "name": "_index",
968
+ "name": "index",
797
969
  "type": "uint256"
798
970
  }
799
971
  ],
@@ -838,7 +1010,7 @@
838
1010
  "inputs": [
839
1011
  {
840
1012
  "internalType": "uint256",
841
- "name": "_index",
1013
+ "name": "index",
842
1014
  "type": "uint256"
843
1015
  }
844
1016
  ],
@@ -883,7 +1055,7 @@
883
1055
  "inputs": [
884
1056
  {
885
1057
  "internalType": "address",
886
- "name": "_adminACLContract",
1058
+ "name": "adminACLContract_",
887
1059
  "type": "address"
888
1060
  }
889
1061
  ],
@@ -928,7 +1100,7 @@
928
1100
  "inputs": [
929
1101
  {
930
1102
  "internalType": "bytes32",
931
- "name": "_dependencyType",
1103
+ "name": "dependencyNameAndVersion",
932
1104
  "type": "bytes32"
933
1105
  }
934
1106
  ],
@@ -941,12 +1113,12 @@
941
1113
  "inputs": [
942
1114
  {
943
1115
  "internalType": "bytes32",
944
- "name": "_dependencyType",
1116
+ "name": "dependencyNameAndVersion",
945
1117
  "type": "bytes32"
946
1118
  },
947
1119
  {
948
1120
  "internalType": "uint256",
949
- "name": "_index",
1121
+ "name": "index",
950
1122
  "type": "uint256"
951
1123
  }
952
1124
  ],
@@ -959,12 +1131,12 @@
959
1131
  "inputs": [
960
1132
  {
961
1133
  "internalType": "bytes32",
962
- "name": "_dependencyType",
1134
+ "name": "dependencyNameAndVersion",
963
1135
  "type": "bytes32"
964
1136
  },
965
1137
  {
966
1138
  "internalType": "uint256",
967
- "name": "_index",
1139
+ "name": "index",
968
1140
  "type": "uint256"
969
1141
  }
970
1142
  ],
@@ -977,7 +1149,7 @@
977
1149
  "inputs": [
978
1150
  {
979
1151
  "internalType": "bytes32",
980
- "name": "_dependencyType",
1152
+ "name": "dependencyNameAndVersion",
981
1153
  "type": "bytes32"
982
1154
  }
983
1155
  ],
@@ -986,20 +1158,33 @@
986
1158
  "stateMutability": "nonpayable",
987
1159
  "type": "function"
988
1160
  },
1161
+ {
1162
+ "inputs": [
1163
+ {
1164
+ "internalType": "bytes32",
1165
+ "name": "licenseType",
1166
+ "type": "bytes32"
1167
+ }
1168
+ ],
1169
+ "name": "removeLicenseLastText",
1170
+ "outputs": [],
1171
+ "stateMutability": "nonpayable",
1172
+ "type": "function"
1173
+ },
989
1174
  {
990
1175
  "inputs": [
991
1176
  {
992
1177
  "internalType": "address",
993
- "name": "_contractAddress",
1178
+ "name": "contractAddress",
994
1179
  "type": "address"
995
1180
  },
996
1181
  {
997
1182
  "internalType": "uint256",
998
- "name": "_projectId",
1183
+ "name": "projectId",
999
1184
  "type": "uint256"
1000
1185
  }
1001
1186
  ],
1002
- "name": "removeProjectDependencyTypeOverride",
1187
+ "name": "removeProjectDependencyOverride",
1003
1188
  "outputs": [],
1004
1189
  "stateMutability": "nonpayable",
1005
1190
  "type": "function"
@@ -1008,11 +1193,11 @@
1008
1193
  "inputs": [
1009
1194
  {
1010
1195
  "internalType": "address",
1011
- "name": "_contractAddress",
1196
+ "name": "contractAddress",
1012
1197
  "type": "address"
1013
1198
  }
1014
1199
  ],
1015
- "name": "removeSupportedCoreContract",
1200
+ "name": "removeSupportedCoreContractOverride",
1016
1201
  "outputs": [],
1017
1202
  "stateMutability": "nonpayable",
1018
1203
  "type": "function"
@@ -1024,6 +1209,25 @@
1024
1209
  "stateMutability": "nonpayable",
1025
1210
  "type": "function"
1026
1211
  },
1212
+ {
1213
+ "inputs": [
1214
+ {
1215
+ "internalType": "string",
1216
+ "name": "input",
1217
+ "type": "string"
1218
+ }
1219
+ ],
1220
+ "name": "stringToBytes32",
1221
+ "outputs": [
1222
+ {
1223
+ "internalType": "bytes32",
1224
+ "name": "",
1225
+ "type": "bytes32"
1226
+ }
1227
+ ],
1228
+ "stateMutability": "pure",
1229
+ "type": "function"
1230
+ },
1027
1231
  {
1028
1232
  "inputs": [
1029
1233
  {
@@ -1037,21 +1241,34 @@
1037
1241
  "stateMutability": "nonpayable",
1038
1242
  "type": "function"
1039
1243
  },
1244
+ {
1245
+ "inputs": [
1246
+ {
1247
+ "internalType": "address",
1248
+ "name": "_coreRegistryAddress",
1249
+ "type": "address"
1250
+ }
1251
+ ],
1252
+ "name": "updateCoreRegistryAddress",
1253
+ "outputs": [],
1254
+ "stateMutability": "nonpayable",
1255
+ "type": "function"
1256
+ },
1040
1257
  {
1041
1258
  "inputs": [
1042
1259
  {
1043
1260
  "internalType": "bytes32",
1044
- "name": "_dependencyType",
1261
+ "name": "dependencyNameAndVersion",
1045
1262
  "type": "bytes32"
1046
1263
  },
1047
1264
  {
1048
1265
  "internalType": "uint256",
1049
- "name": "_index",
1266
+ "name": "index",
1050
1267
  "type": "uint256"
1051
1268
  },
1052
1269
  {
1053
1270
  "internalType": "string",
1054
- "name": "_additionalCDN",
1271
+ "name": "additionalCDN",
1055
1272
  "type": "string"
1056
1273
  }
1057
1274
  ],
@@ -1064,17 +1281,17 @@
1064
1281
  "inputs": [
1065
1282
  {
1066
1283
  "internalType": "bytes32",
1067
- "name": "_dependencyType",
1284
+ "name": "dependencyNameAndVersion",
1068
1285
  "type": "bytes32"
1069
1286
  },
1070
1287
  {
1071
1288
  "internalType": "uint256",
1072
- "name": "_index",
1289
+ "name": "index",
1073
1290
  "type": "uint256"
1074
1291
  },
1075
1292
  {
1076
1293
  "internalType": "string",
1077
- "name": "_additionalRepository",
1294
+ "name": "additionalRepository",
1078
1295
  "type": "string"
1079
1296
  }
1080
1297
  ],
@@ -1087,12 +1304,12 @@
1087
1304
  "inputs": [
1088
1305
  {
1089
1306
  "internalType": "bytes32",
1090
- "name": "_dependencyType",
1307
+ "name": "dependencyNameAndVersion",
1091
1308
  "type": "bytes32"
1092
1309
  },
1093
1310
  {
1094
1311
  "internalType": "string",
1095
- "name": "_preferredCDN",
1312
+ "name": "preferredCDN",
1096
1313
  "type": "string"
1097
1314
  }
1098
1315
  ],
@@ -1105,12 +1322,12 @@
1105
1322
  "inputs": [
1106
1323
  {
1107
1324
  "internalType": "bytes32",
1108
- "name": "_dependencyType",
1325
+ "name": "dependencyNameAndVersion",
1109
1326
  "type": "bytes32"
1110
1327
  },
1111
1328
  {
1112
1329
  "internalType": "string",
1113
- "name": "_preferredRepository",
1330
+ "name": "preferredRepository",
1114
1331
  "type": "string"
1115
1332
  }
1116
1333
  ],
@@ -1123,16 +1340,21 @@
1123
1340
  "inputs": [
1124
1341
  {
1125
1342
  "internalType": "bytes32",
1126
- "name": "_dependencyType",
1343
+ "name": "dependencyNameAndVersion",
1127
1344
  "type": "bytes32"
1128
1345
  },
1346
+ {
1347
+ "internalType": "uint256",
1348
+ "name": "index",
1349
+ "type": "uint256"
1350
+ },
1129
1351
  {
1130
1352
  "internalType": "string",
1131
- "name": "_referenceWebsite",
1353
+ "name": "script",
1132
1354
  "type": "string"
1133
1355
  }
1134
1356
  ],
1135
- "name": "updateDependencyReferenceWebsite",
1357
+ "name": "updateDependencyScript",
1136
1358
  "outputs": [],
1137
1359
  "stateMutability": "nonpayable",
1138
1360
  "type": "function"
@@ -1141,21 +1363,39 @@
1141
1363
  "inputs": [
1142
1364
  {
1143
1365
  "internalType": "bytes32",
1144
- "name": "_dependencyType",
1366
+ "name": "dependencyNameAndVersion",
1145
1367
  "type": "bytes32"
1146
1368
  },
1147
1369
  {
1148
1370
  "internalType": "uint256",
1149
- "name": "_index",
1371
+ "name": "index",
1150
1372
  "type": "uint256"
1151
1373
  },
1374
+ {
1375
+ "internalType": "address",
1376
+ "name": "scriptPointer",
1377
+ "type": "address"
1378
+ }
1379
+ ],
1380
+ "name": "updateDependencyScriptPointer",
1381
+ "outputs": [],
1382
+ "stateMutability": "nonpayable",
1383
+ "type": "function"
1384
+ },
1385
+ {
1386
+ "inputs": [
1387
+ {
1388
+ "internalType": "bytes32",
1389
+ "name": "dependencyNameAndVersion",
1390
+ "type": "bytes32"
1391
+ },
1152
1392
  {
1153
1393
  "internalType": "string",
1154
- "name": "_script",
1394
+ "name": "dependencyWebsite",
1155
1395
  "type": "string"
1156
1396
  }
1157
1397
  ],
1158
- "name": "updateDependencyScript",
1398
+ "name": "updateDependencyWebsite",
1159
1399
  "outputs": [],
1160
1400
  "stateMutability": "nonpayable",
1161
1401
  "type": "function"
@@ -1164,46 +1404,50 @@
1164
1404
  "inputs": [
1165
1405
  {
1166
1406
  "internalType": "bytes32",
1167
- "name": "_dependencyType",
1407
+ "name": "licenseType",
1168
1408
  "type": "bytes32"
1169
1409
  },
1170
1410
  {
1171
1411
  "internalType": "uint256",
1172
- "name": "_index",
1412
+ "name": "index",
1173
1413
  "type": "uint256"
1174
1414
  },
1175
1415
  {
1176
- "internalType": "address",
1177
- "name": "_scriptPointer",
1178
- "type": "address"
1416
+ "internalType": "string",
1417
+ "name": "text",
1418
+ "type": "string"
1179
1419
  }
1180
1420
  ],
1181
- "name": "updateDependencyScriptPointer",
1421
+ "name": "updateLicenseText",
1182
1422
  "outputs": [],
1183
1423
  "stateMutability": "nonpayable",
1184
1424
  "type": "function"
1185
1425
  }
1186
1426
  ],
1187
- "bytecode": "0x608060405234801561001057600080fd5b50613417806100206000396000f3fe608060405234801561001057600080fd5b506004361061021e5760003560e01c8063a1a7a47b1161012c578063a1a7a47b1461041c578063b86b69f11461042f578063ba22851214610437578063bbf2aefb1461044a578063bd880b461461045d578063be3d3ee614610470578063c073927014610483578063c0cd565f14610496578063c4d66de8146104a9578063caaa3bb7146104bc578063cc86ba4b146104cf578063cea2961a146104e2578063dbc71ccb146104f5578063dc33f4ae14610508578063dfa3be531461051b578063f0b993821461052e578063f146f17f14610541578063f2fde38b14610554578063f73f499114610567578063f8ac18be1461057a578063f9c0fae61461058d578063fb5cd19b146105a0578063fed37e82146105a857600080fd5b8062e879031461022357806307f9f7861461024c5780631376218614610261578063199eb8e0146102765780631a051d49146102895780631e9bef461461029c578063230448b1146102bc57806325ffb376146102df5780633bd7cfa2146103075780633e76919a1461031a578063474bbdc21461032d5780634bd1a38714610340578063518cb3df1461035357806351eda9991461036657806352ccc0211461037b5780635668bc5e1461038e5780635710f83d146103cb57806366d549a1146103de5780636dfa9f56146103f1578063715018a6146104045780637cbb45c81461040c5780638da5cb5b14610414575b600080fd5b610236610231366004612908565b6105b0565b604051610243919061297a565b60405180910390f35b61025461067a565b604051610243919061298d565b61027461026f366004612a9d565b610729565b005b610274610284366004612b08565b6107c9565b610274610297366004612a9d565b61087f565b6065546102af906001600160a01b031681565b6040516102439190612b23565b6102cf6102ca366004612b37565b61091f565b6040519015158152602001610243565b6102f26102ed366004612b8b565b6109cd565b60405161024399989796959493929190612ba4565b610274610315366004612c3f565b610c01565b6102af610328366004612b8b565b610c72565b61023661033b366004612c85565b610c92565b61027461034e366004612caf565b610dce565b610236610361366004612908565b610e91565b61036e611080565b6040516102439190612cdb565b610274610389366004612b8b565b61112e565b6103bd61039c366004612b8b565b600090815260686020526040902060070154600160301b900462ffffff1690565b604051908152602001610243565b6102746103d9366004612c3f565b611242565b6102746103ec366004612d3d565b6112fa565b6102746103ff366004612908565b611443565b610274611535565b6103bd611549565b6102af61155a565b61027461042a366004612908565b61156e565b6103bd61163c565b6103bd610445366004612908565b611648565b610274610458366004612dd8565b611718565b61023661046b366004612b8b565b611799565b61027461047e366004612c3f565b6117b7565b610274610491366004612b8b565b61181c565b6102746104a4366004612e0b565b611908565b6102746104b7366004612b08565b611998565b6102746104ca366004612a9d565b611ab3565b6102366104dd366004612b8b565b611b4c565b6102cf6104f0366004612b08565b611b6a565b610274610503366004612b08565b611b77565b610274610516366004612c3f565b611c1b565b6102af610529366004612908565b611caa565b61023661053c366004612908565b611cf3565b61027461054f366004612c3f565b611d3c565b610274610562366004612b08565b611ded565b610274610575366004612c85565b611e66565b610274610588366004612b8b565b611f36565b61027461059b366004612c3f565b6120a6565b61036e61210b565b6103bd6121b4565b60008281526068602052604090206007810154606091906105d790849062ffffff166121c0565b6000838152600282016020526040902080546105f290612e40565b80601f016020809104026020016040519081016040528092919081815260200182805461061e90612e40565b801561066b5780601f106106405761010080835404028352916020019161066b565b820191906000526020600020905b81548152906001019060200180831161064e57829003601f168201915b50505050509150505b92915050565b60606000610688606b612204565b90506000816001600160401b038111156106a4576106a46129da565b6040519080825280602002602001820160405280156106cd578160200160208202803683370190505b50905060005b82811015610722576106e6606b8261220e565b8282815181106106f8576106f8612e74565b6001600160a01b03909216602092830291909101909101528061071a81612ea0565b9150506106d3565b5092915050565b6107396309bb10c360e11b61221a565b6107428161226a565b61074b836122b9565b6000838152606860205260409020600781015461076e90849062ffffff166121c0565b600083815260028201602052604090206107888382612f1d565b50837f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d83856040516107bb929190612fd6565b60405180910390a250505050565b6107d862ccf5c760e51b61221a565b6107e3606b82612310565b6108485760405162461bcd60e51b815260206004820152602b60248201527f436f726520636f6e747261637420616c72656164792072656d6f766564206f7260448201526a081b9bdd081a5b881cd95d60aa1b60648201526084015b60405180910390fd5b6040516001600160a01b038216907f2453d2f77bae1012d39e2257356d2566625ebe0ffd6094198aa051689dc65ba090600090a250565b61088f631a051d4960e01b61221a565b6108988161226a565b6108a1836122b9565b600083815260686020526040902060078101546108cb908490600160301b900462ffffff166121c0565b6108d482612325565b600084815260068301602052604080822080546001600160a01b0319166001600160a01b039490941693909317909255905185916000805160206133c283398151915291a250505050565b60008061092a61155a565b6001600160a01b0316141580156109c357506065546040516217798b60e61b81526001600160a01b03868116600483015285811660248301526001600160e01b031985166044830152909116906305de62c0906064016020604051808303816000875af115801561099f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c39190612ff8565b90505b9392505050565b606080606060006060600060606000806000606860008c815260200190815260200160002090506109fd8b6123d5565b8154610a08906123d5565b6007830154600184018054909162ffffff8082169260038801926301000000810483169260058a0192600160301b90920416801515918790610a4990612e40565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7590612e40565b8015610ac25780601f10610a9757610100808354040283529160200191610ac2565b820191906000526020600020905b815481529060010190602001808311610aa557829003601f168201915b50505050509650848054610ad590612e40565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0190612e40565b8015610b4e5780601f10610b2357610100808354040283529160200191610b4e565b820191906000526020600020905b815481529060010190602001808311610b3157829003601f168201915b50505050509450828054610b6190612e40565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8d90612e40565b8015610bda5780601f10610baf57610100808354040283529160200191610bda565b820191906000526020600020905b815481529060010190602001808311610bbd57829003601f168201915b50505050509250995099509950995099509950995099509950509193959799909294969850565b610c11631debe7d160e11b61221a565b610c1a826122b9565b6000828152606860205260409020600501610c358282612f1d565b50817f9959f3af1c0191277b92c192984b5ca38adaf82d8465332b4da850e0e6a199f482604051610c66919061297a565b60405180910390a25050565b6000610c8782610c82606b612204565b6121c0565b610674606b8361220e565b6060610c9d83612440565b6001600160a01b0383166000908152606d602090815260408083208584529091529020548015610cd857610cd0816123d5565b915050610674565b604051633ae7357560e21b8152600481018490526001600160a01b0385169063eb9cd5d490602401600060405180830381865afa925050508015610d3e57506040513d6000823e601f3d908101601f19168201604052610d3b919081019061306a565b60015b610dc25760405162461bcd60e51b815260206004820152604960248201527f436f6e747261637420646f6573206e6f7420696d706c656d656e742070726f6a60448201527f65637453637269707444657461696c7320616e6420686173206e6f206f7665726064820152683934b2329039b2ba1760b91b608482015260a40161083f565b82945050505050610674565b610dde634bd1a38760e01b61221a565b610de781612495565b610df0826122b9565b6000828152606860209081526040808320600781018054600160301b9081900462ffffff9081168752600684019095529290942080546001600160a01b0319166001600160a01b0387161790559254610e4e929190041660016130d6565b60078201805462ffffff92909216600160301b0262ffffff60301b1990921691909117905560405183906000805160206133c283398151915290600090a2505050565b6000828152606860205260409020600781015460609190610ebf908490600160301b900462ffffff166121c0565b600083815260068201602052604080822054905163cc31a33160e01b81526001600160a01b03909116919073__$55f4e50e6128becd8bf164b272db98df09$__9063cc31a33190610f14908590600401612b23565b602060405180830381865af4158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5591906130f2565b90507f554e4b4e4f574e5f56455253494f4e5f535452494e475f5f5f5f5f5f5f5f5f20810361100457604051632475d70960e01b815273__$55f4e50e6128becd8bf164b272db98df09$__90632475d70990610fb5908590600401612b23565b600060405180830381865af4158015610fd2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ffa919081019061310b565b9350505050610674565b604051630eacc5e760e31b815273__$55f4e50e6128becd8bf164b272db98df09$__906375662f389061103b908590600401612b23565b600060405180830381865af4158015611058573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ffa9190810190613153565b6060600061108e6066612204565b90506000816001600160401b038111156110aa576110aa6129da565b6040519080825280602002602001820160405280156110dd57816020015b60608152602001906001900390816110c85790505b50905060005b82811015610722576110fe6110f960668361220e565b6123d5565b82828151811061111057611110612e74565b6020026020010181905250808061112690612ea0565b9150506110e3565b61113e6352ccc02160e01b61221a565b611147816122b9565b60008181526068602052604090206007810154600160301b900462ffffff166111b25760405162461bcd60e51b815260206004820152601e60248201527f746865726520617265206e6f207363726970747320746f2072656d6f76650000604482015260640161083f565b600781015460068201906000906111d790600190600160301b900462ffffff16613187565b62ffffff908116825260208201929092526040908101600090812080546001600160a01b031916905560078401805462ffffff60301b198116600160301b9182900486166000190190951602939093179092555183916000805160206133c283398151915291a25050565b611252635710f83d60e01b61221a565b61125b8161226a565b611264826122b9565b600082815260686020908152604080832060078101546301000000900462ffffff1680855260048201909352922061129c8482612f1d565b506112a88160016131a3565b8260070160036101000a81548162ffffff021916908362ffffff160217905550837ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde84836040516107bb929190612fd6565b61130a6366d549a160e01b61221a565b611313846124e9565b611320856040600161253e565b6113695760405162461bcd60e51b815260206004820152601a60248201527901b5d5cdd0818dbdb9d185a5b88195e1858dd1b1e481bdb9948160361b604482015260640161083f565b6113746066866125b2565b6113c05760405162461bcd60e51b815260206004820152601e60248201527f446570656e64656e6379207479706520616c7265616479206578697374730000604482015260640161083f565b6000858152606860205260409020848155600181016113df8582612f1d565b50600381016113ee8482612f1d565b50600581016113fd8382612f1d565b5084867f14d15ecf0e955bdd7a921efba642deef4d718696d3fc369454c84817fed0fb77868686604051611433939291906131b6565b60405180910390a3505050505050565b6114536336fd4fab60e11b61221a565b61145c826122b9565b600082815260686020526040902060078101546301000000900462ffffff1661148583826121c0565b60006114926001836131f9565b6000868152606860209081526040808320848452600490810183528184208985529088019092529091209192506114c9908261320c565b50600081815260048401602052604081206114e3916128ba565b60078301805465ffffff0000001916630100000062ffffff841602179055604051849086907fc02725dfc9639e3399432cdae3db1c062229f4cc41bcc18631517617c020b71c90600090a35050505050565b61153d6125be565b611547600061261d565b565b60006115556066612204565b905090565b60006115556033546001600160a01b031690565b61157e63a1a7a47b60e01b61221a565b611587826122b9565b6000828152606860205260409020600781015462ffffff166115a983826121c0565b60006115b66001836131f9565b600081815260028501602052604080822087835291209192506115d9908261320c565b50600081815260028401602052604081206115f3916128ba565b60078301805462ffffff191662ffffff8316179055604051849086907f225454b600cf489553fde6e3b7f5e458b1093c035390b678067ea799b3b016cd90600090a35050505050565b6000611555606b612204565b60008281526068602052604081206007810154611672908490600160301b900462ffffff166121c0565b60008481526068602090815260408083208684526006019091529081902054905163cc31a33160e01b815273__$55f4e50e6128becd8bf164b272db98df09$__9163cc31a331916116cf916001600160a01b031690600401612b23565b602060405180830381865af41580156116ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171091906130f2565b949350505050565b61172863bbf2aefb60e01b61221a565b611731816122b9565b61173a83612440565b6001600160a01b0383166000818152606d6020908152604080832086845282529182902084905590518381528492917f27d39273f3676c181ec3de60b583da776123d9f9517761fb91f370a83c798918910160405180910390a3505050565b60606117a982610c826066612204565b6106746110f960668461220e565b6117c7635f1e9f7360e11b61221a565b6117d0826122b9565b60008281526068602052604090206001016117eb8282612f1d565b50817fc9890a31ec780bb5a8a017d683d3913f97260548d71c2cee78194ed2833f023582604051610c66919061297a565b61182c630c07392760e41b61221a565b6118376069826125b2565b6118815760405162461bcd60e51b815260206004820152601b60248201527a4c6963656e7365207479706520616c72656164792065786973747360281b604482015260640161083f565b806118da5760405162461bcd60e51b815260206004820152602360248201527f4c6963656e736520747970652063616e6e6f7420626520656d70747920737472604482015262696e6760e81b606482015260840161083f565b60405181907fad5dcce4588345db351371d105540f3fb69966f418d923539f19d5f44a1cfc4b90600090a250565b61191863c0cd565f60e01b61221a565b61192181612495565b61192a836122b9565b60008381526068602052604090206007810154611954908490600160301b900462ffffff166121c0565b600083815260068201602052604080822080546001600160a01b0319166001600160a01b0386161790555185916000805160206133c283398151915291a250505050565b600054610100900460ff16158080156119b85750600054600160ff909116105b806119d25750303b1580156119d2575060005460ff166001145b611a355760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161083f565b6000805460ff191660011790558015611a58576000805461ff0019166101001790555b611a60612648565b611a698261261d565b8015611aaf576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b611ac363caaa3bb760e01b61221a565b611acc8161226a565b611ad5836122b9565b60008381526068602052604090206007810154611aff9084906301000000900462ffffff166121c0565b60008381526004820160205260409020611b198382612f1d565b50837ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde83856040516107bb929190612fd6565b6060611b5c82610c826069612204565b6106746110f960698461220e565b6000610674606b83612677565b611b8763dbc71ccb60e01b61221a565b611b9081612495565b611b9b606b8261268c565b611be45760405162461bcd60e51b815260206004820152601a60248201527910dbdb9d1c9858dd08185b1c9958591e481cdd5c1c1bdc9d195960321b604482015260640161083f565b6040516001600160a01b038216907f59e1b889b92ad05213b7934a67c5d824348c868455d1c741a2cfe16e46d832dc90600090a250565b611c2b636e19fa5760e11b61221a565b611c348161226a565b611c3d826122b9565b6000828152606860205260409020611c5482612325565b600782018054600160301b9081900462ffffff9081166000908152600686016020526040902080546001600160a01b0319166001600160a01b0395909516949094179093559054610e4e929190041660016130d6565b60008281526068602052604081206007810154611cd4908490600160301b900462ffffff166121c0565b60009283526006016020525060409020546001600160a01b0316919050565b6000828152606860205260409020600781015460609190611d219084906301000000900462ffffff166121c0565b6000838152600482016020526040902080546105f290612e40565b611d4c63f146f17f60e01b61221a565b611d558161226a565b611d5e826122b9565b6000828152606860209081526040808320600781015462ffffff16808552600282019093529220611d8f8482612f1d565b50611d9b8160016131a3565b8260070160006101000a81548162ffffff021916908362ffffff160217905550837f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d84836040516107bb929190612fd6565b611df56125be565b6001600160a01b038116611e5a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161083f565b611e638161261d565b50565b611e7663f73f499160e01b61221a565b6001600160a01b0382166000908152606d60209081526040808320848452909152902054611ee45760405162461bcd60e51b815260206004820152601b60248201527a139bc81bdd995c9c9a5919481cd95d08199bdc881c1c9bda9958dd602a1b604482015260640161083f565b6001600160a01b0382166000818152606d60209081526040808320858452909152808220829055518392917f0732620824c0200808d04ab037f3abc3c31853170b90f5a855d32f44486048ed91a35050565b611f46637c560c5f60e11b61221a565b611f4f816122b9565b6000818152606860205260409020600781015462ffffff16158015611f82575060078101546301000000900462ffffff16155b8015611f9c57506007810154600160301b900462ffffff16155b61201e5760405162461bcd60e51b815260206004820152604760248201527f43616e6e6f742072656d6f766520646570656e64656e6379207769746820616460448201527f646974696f6e616c2043444e732c207265706f7369746f726965732c206f72206064820152667363726970747360c81b608482015260a40161083f565b6120296066836126a1565b5060008281526068602052604081208181559061204960018301826128ba565b6120576003830160006128ba565b6120656005830160006128ba565b5060070180546001600160481b031916905560405182907f60e2aa021c4f5303dd65e2173f0180636e4d42eaefc6187278e92bee9d06aa7290600090a25050565b6120b6637ce07d7360e11b61221a565b6120bf826122b9565b60008281526068602052604090206003016120da8282612f1d565b50817f774918414e4887efe5349a305fe253ee8b1e3fe0c2117012f0c215645693cbfd82604051610c66919061297a565b606060006121196069612204565b90506000816001600160401b03811115612135576121356129da565b60405190808252806020026020018201604052801561216857816020015b60608152602001906001900390816121535790505b50905060005b82811015610722576121846110f960698361220e565b82828151811061219657612196612e74565b602002602001018190525080806121ac90612ea0565b91505061216e565b60006115556069612204565b808210611aaf5760405162461bcd60e51b8152602060048201526012602482015271496e646578206f7574206f662072616e676560701b604482015260640161083f565b6000610674825490565b60006109c683836126ad565b61222533308361091f565b611e635760405162461bcd60e51b815260206004820152601660248201527513db9b1e4810591b5a5b881050d308185b1b1bddd95960521b604482015260640161083f565b8051600003611e635760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d656d70747920737472696e6760281b604482015260640161083f565b6122c46066826126d7565b611e635760405162461bcd60e51b815260206004820152601e60248201527f446570656e64656e6379207479706520646f6573206e6f742065786973740000604482015260640161083f565b60006109c6836001600160a01b0384166126e3565b6000807f42797465636f646553746f726167655f56312e302e305f5f5f5f5f5f5f5f5f20308460405160200161235d939291906132e0565b60405160208183030381529060405290508051602082016000f091506001600160a01b0382166123cf5760405162461bcd60e51b815260206004820152601e60248201527f436f6e7472616374417353746f726167653a205772697465204572726f720000604482015260640161083f565b50919050565b606060005b828160ff16602081106123ef576123ef612e74565b1a60f81b6001600160f81b0319161580159061240e575060208160ff16105b15612425578061241d81613341565b9150506123da565b60405191506040820160405280825282602083015250919050565b61244b606b82612677565b611e635760405162461bcd60e51b815260206004820152601b60248201527a10dbdc994818dbdb9d1c9858dd081b9bdd081cdd5c1c1bdc9d1959602a1b604482015260640161083f565b6001600160a01b038116611e635760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d7a65726f206164647265737360281b604482015260640161083f565b6124f46069826126d7565b611e635760405162461bcd60e51b815260206004820152601b60248201527a131a58d95b9cd9481d1e5c1948191bd95cc81b9bdd08195e1a5cdd602a1b604482015260640161083f565b60008060005b60208160ff16101561259e576000868260ff166020811061256757612567612e74565b1a9050801580159061257c575060808160ff16105b15612595578560ff168160ff1603612595578260010192505b50600101612544565b8360ff168260ff1614925050509392505050565b60006109c683836127d6565b336125c761155a565b6001600160a01b0316146115475760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161083f565b61262681612820565b606580546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff1661266f5760405162461bcd60e51b815260040161083f90613360565b611547612872565b60006109c6836001600160a01b0384166128a2565b60006109c6836001600160a01b0384166127d6565b60006109c683836126e3565b60008260000182815481106126c4576126c4612e74565b9060005260206000200154905092915050565b60006109c683836128a2565b600081815260018301602052604081205480156127cc5760006127076001836131f9565b855490915060009061271b906001906131f9565b905081811461278057600086600001828154811061273b5761273b612e74565b906000526020600020015490508087600001848154811061275e5761275e612e74565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612791576127916133ab565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610674565b6000915050610674565b60006127e283836128a2565b61281857508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610674565b506000610674565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166128995760405162461bcd60e51b815260040161083f90613360565b6115473361261d565b60009081526001919091016020526040902054151590565b5080546128c690612e40565b6000825580601f106128d6575050565b601f016020900490600052602060002090810190611e6391905b8082111561290457600081556001016128f0565b5090565b6000806040838503121561291b57600080fd5b50508035926020909101359150565b60005b8381101561294557818101518382015260200161292d565b50506000910152565b6000815180845261296681602086016020860161292a565b601f01601f19169290920160200192915050565b6020815260006109c6602083018461294e565b6020808252825182820181905260009190848201906040850190845b818110156129ce5783516001600160a01b0316835292840192918401916001016129a9565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612a1857612a186129da565b604052919050565b60006001600160401b03821115612a3957612a396129da565b50601f01601f191660200190565b600082601f830112612a5857600080fd5b8135612a6b612a6682612a20565b6129f0565b818152846020838601011115612a8057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215612ab257600080fd5b833592506020840135915060408401356001600160401b03811115612ad657600080fd5b612ae286828701612a47565b9150509250925092565b80356001600160a01b0381168114612b0357600080fd5b919050565b600060208284031215612b1a57600080fd5b6109c682612aec565b6001600160a01b0391909116815260200190565b600080600060608486031215612b4c57600080fd5b612b5584612aec565b9250612b6360208501612aec565b915060408401356001600160e01b031981168114612b8057600080fd5b809150509250925092565b600060208284031215612b9d57600080fd5b5035919050565b6000610120808352612bb88184018d61294e565b90508281036020840152612bcc818c61294e565b90508281036040840152612be0818b61294e565b905062ffffff808a1660608501528382036080850152612c00828a61294e565b915080881660a085015283820360c0850152612c1c828861294e565b925085151560e085015280851661010085015250509a9950505050505050505050565b60008060408385031215612c5257600080fd5b8235915060208301356001600160401b03811115612c6f57600080fd5b612c7b85828601612a47565b9150509250929050565b60008060408385031215612c9857600080fd5b612ca183612aec565b946020939093013593505050565b60008060408385031215612cc257600080fd5b82359150612cd260208401612aec565b90509250929050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015612d3057603f19888603018452612d1e85835161294e565b94509285019290850190600101612d02565b5092979650505050505050565b600080600080600060a08688031215612d5557600080fd5b853594506020860135935060408601356001600160401b0380821115612d7a57600080fd5b612d8689838a01612a47565b94506060880135915080821115612d9c57600080fd5b612da889838a01612a47565b93506080880135915080821115612dbe57600080fd5b50612dcb88828901612a47565b9150509295509295909350565b600080600060608486031215612ded57600080fd5b612df684612aec565b95602085013595506040909401359392505050565b600080600060608486031215612e2057600080fd5b8335925060208401359150612e3760408501612aec565b90509250925092565b600181811c90821680612e5457607f821691505b6020821081036123cf57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201612eb257612eb2612e8a565b5060010190565b601f821115612f0357600081815260208120601f850160051c81016020861015612ee05750805b601f850160051c820191505b81811015612eff57828155600101612eec565b5050505b505050565b600019600383901b1c191660019190911b1790565b81516001600160401b03811115612f3657612f366129da565b612f4a81612f448454612e40565b84612eb9565b602080601f831160018114612f795760008415612f675750858301515b612f718582612f08565b865550612eff565b600085815260208120601f198616915b82811015612fa857888601518255948401946001909101908401612f89565b5085821015612fc65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b604081526000612fe9604083018561294e565b90508260208301529392505050565b60006020828403121561300a57600080fd5b815180151581146109c657600080fd5b6000613028612a6684612a20565b905082815283838301111561303c57600080fd5b6109c683602083018461292a565b600082601f83011261305b57600080fd5b6109c68383516020850161301a565b60008060006060848603121561307f57600080fd5b83516001600160401b038082111561309657600080fd5b6130a28783880161304a565b945060208601519150808211156130b857600080fd5b506130c58682870161304a565b925050604084015190509250925092565b62ffffff81811683821601908082111561072257610722612e8a565b60006020828403121561310457600080fd5b5051919050565b60006020828403121561311d57600080fd5b81516001600160401b0381111561313357600080fd5b8201601f8101841361314457600080fd5b6117108482516020840161301a565b60006020828403121561316557600080fd5b81516001600160401b0381111561317b57600080fd5b6117108482850161304a565b62ffffff82811682821603908082111561072257610722612e8a565b8082018082111561067457610674612e8a565b6060815260006131c9606083018661294e565b82810360208401526131db818661294e565b905082810360408401526131ef818561294e565b9695505050505050565b8181038181111561067457610674612e8a565b818103613217575050565b6132218254612e40565b6001600160401b03811115613238576132386129da565b61324681612f448454612e40565b6000601f82116001811461327457600083156132625750848201545b61326c8482612f08565b8555506132d9565b600085815260209020601f19841690600086815260209020845b838110156132ae578286015482556001958601959091019060200161328e565b50858310156132cc5781850154600019600388901b60f8161c191681555b50505060018360011b0184555b5050505050565b6a600b5981380380925939f360a81b8152607f60f91b600b820152600c81018490526000602c8201819052606084901b6001600160601b0319166038830152825161333281604c85016020870161292a565b91909101604c01949350505050565b600060ff821660ff810361335757613357612e8a565b60010192915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052603160045260246000fdfef79e11fc86b9bf37d5dfd4359c053136f7c046da6a08f9cf7ca56d80d5aab839a26469706673582212205b1972e39cf6def9309ed94f77ac484c7cbc7cbad3af5a90481b15e5a272762c64736f6c63430008130033",
1188
- "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061021e5760003560e01c8063a1a7a47b1161012c578063a1a7a47b1461041c578063b86b69f11461042f578063ba22851214610437578063bbf2aefb1461044a578063bd880b461461045d578063be3d3ee614610470578063c073927014610483578063c0cd565f14610496578063c4d66de8146104a9578063caaa3bb7146104bc578063cc86ba4b146104cf578063cea2961a146104e2578063dbc71ccb146104f5578063dc33f4ae14610508578063dfa3be531461051b578063f0b993821461052e578063f146f17f14610541578063f2fde38b14610554578063f73f499114610567578063f8ac18be1461057a578063f9c0fae61461058d578063fb5cd19b146105a0578063fed37e82146105a857600080fd5b8062e879031461022357806307f9f7861461024c5780631376218614610261578063199eb8e0146102765780631a051d49146102895780631e9bef461461029c578063230448b1146102bc57806325ffb376146102df5780633bd7cfa2146103075780633e76919a1461031a578063474bbdc21461032d5780634bd1a38714610340578063518cb3df1461035357806351eda9991461036657806352ccc0211461037b5780635668bc5e1461038e5780635710f83d146103cb57806366d549a1146103de5780636dfa9f56146103f1578063715018a6146104045780637cbb45c81461040c5780638da5cb5b14610414575b600080fd5b610236610231366004612908565b6105b0565b604051610243919061297a565b60405180910390f35b61025461067a565b604051610243919061298d565b61027461026f366004612a9d565b610729565b005b610274610284366004612b08565b6107c9565b610274610297366004612a9d565b61087f565b6065546102af906001600160a01b031681565b6040516102439190612b23565b6102cf6102ca366004612b37565b61091f565b6040519015158152602001610243565b6102f26102ed366004612b8b565b6109cd565b60405161024399989796959493929190612ba4565b610274610315366004612c3f565b610c01565b6102af610328366004612b8b565b610c72565b61023661033b366004612c85565b610c92565b61027461034e366004612caf565b610dce565b610236610361366004612908565b610e91565b61036e611080565b6040516102439190612cdb565b610274610389366004612b8b565b61112e565b6103bd61039c366004612b8b565b600090815260686020526040902060070154600160301b900462ffffff1690565b604051908152602001610243565b6102746103d9366004612c3f565b611242565b6102746103ec366004612d3d565b6112fa565b6102746103ff366004612908565b611443565b610274611535565b6103bd611549565b6102af61155a565b61027461042a366004612908565b61156e565b6103bd61163c565b6103bd610445366004612908565b611648565b610274610458366004612dd8565b611718565b61023661046b366004612b8b565b611799565b61027461047e366004612c3f565b6117b7565b610274610491366004612b8b565b61181c565b6102746104a4366004612e0b565b611908565b6102746104b7366004612b08565b611998565b6102746104ca366004612a9d565b611ab3565b6102366104dd366004612b8b565b611b4c565b6102cf6104f0366004612b08565b611b6a565b610274610503366004612b08565b611b77565b610274610516366004612c3f565b611c1b565b6102af610529366004612908565b611caa565b61023661053c366004612908565b611cf3565b61027461054f366004612c3f565b611d3c565b610274610562366004612b08565b611ded565b610274610575366004612c85565b611e66565b610274610588366004612b8b565b611f36565b61027461059b366004612c3f565b6120a6565b61036e61210b565b6103bd6121b4565b60008281526068602052604090206007810154606091906105d790849062ffffff166121c0565b6000838152600282016020526040902080546105f290612e40565b80601f016020809104026020016040519081016040528092919081815260200182805461061e90612e40565b801561066b5780601f106106405761010080835404028352916020019161066b565b820191906000526020600020905b81548152906001019060200180831161064e57829003601f168201915b50505050509150505b92915050565b60606000610688606b612204565b90506000816001600160401b038111156106a4576106a46129da565b6040519080825280602002602001820160405280156106cd578160200160208202803683370190505b50905060005b82811015610722576106e6606b8261220e565b8282815181106106f8576106f8612e74565b6001600160a01b03909216602092830291909101909101528061071a81612ea0565b9150506106d3565b5092915050565b6107396309bb10c360e11b61221a565b6107428161226a565b61074b836122b9565b6000838152606860205260409020600781015461076e90849062ffffff166121c0565b600083815260028201602052604090206107888382612f1d565b50837f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d83856040516107bb929190612fd6565b60405180910390a250505050565b6107d862ccf5c760e51b61221a565b6107e3606b82612310565b6108485760405162461bcd60e51b815260206004820152602b60248201527f436f726520636f6e747261637420616c72656164792072656d6f766564206f7260448201526a081b9bdd081a5b881cd95d60aa1b60648201526084015b60405180910390fd5b6040516001600160a01b038216907f2453d2f77bae1012d39e2257356d2566625ebe0ffd6094198aa051689dc65ba090600090a250565b61088f631a051d4960e01b61221a565b6108988161226a565b6108a1836122b9565b600083815260686020526040902060078101546108cb908490600160301b900462ffffff166121c0565b6108d482612325565b600084815260068301602052604080822080546001600160a01b0319166001600160a01b039490941693909317909255905185916000805160206133c283398151915291a250505050565b60008061092a61155a565b6001600160a01b0316141580156109c357506065546040516217798b60e61b81526001600160a01b03868116600483015285811660248301526001600160e01b031985166044830152909116906305de62c0906064016020604051808303816000875af115801561099f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c39190612ff8565b90505b9392505050565b606080606060006060600060606000806000606860008c815260200190815260200160002090506109fd8b6123d5565b8154610a08906123d5565b6007830154600184018054909162ffffff8082169260038801926301000000810483169260058a0192600160301b90920416801515918790610a4990612e40565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7590612e40565b8015610ac25780601f10610a9757610100808354040283529160200191610ac2565b820191906000526020600020905b815481529060010190602001808311610aa557829003601f168201915b50505050509650848054610ad590612e40565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0190612e40565b8015610b4e5780601f10610b2357610100808354040283529160200191610b4e565b820191906000526020600020905b815481529060010190602001808311610b3157829003601f168201915b50505050509450828054610b6190612e40565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8d90612e40565b8015610bda5780601f10610baf57610100808354040283529160200191610bda565b820191906000526020600020905b815481529060010190602001808311610bbd57829003601f168201915b50505050509250995099509950995099509950995099509950509193959799909294969850565b610c11631debe7d160e11b61221a565b610c1a826122b9565b6000828152606860205260409020600501610c358282612f1d565b50817f9959f3af1c0191277b92c192984b5ca38adaf82d8465332b4da850e0e6a199f482604051610c66919061297a565b60405180910390a25050565b6000610c8782610c82606b612204565b6121c0565b610674606b8361220e565b6060610c9d83612440565b6001600160a01b0383166000908152606d602090815260408083208584529091529020548015610cd857610cd0816123d5565b915050610674565b604051633ae7357560e21b8152600481018490526001600160a01b0385169063eb9cd5d490602401600060405180830381865afa925050508015610d3e57506040513d6000823e601f3d908101601f19168201604052610d3b919081019061306a565b60015b610dc25760405162461bcd60e51b815260206004820152604960248201527f436f6e747261637420646f6573206e6f7420696d706c656d656e742070726f6a60448201527f65637453637269707444657461696c7320616e6420686173206e6f206f7665726064820152683934b2329039b2ba1760b91b608482015260a40161083f565b82945050505050610674565b610dde634bd1a38760e01b61221a565b610de781612495565b610df0826122b9565b6000828152606860209081526040808320600781018054600160301b9081900462ffffff9081168752600684019095529290942080546001600160a01b0319166001600160a01b0387161790559254610e4e929190041660016130d6565b60078201805462ffffff92909216600160301b0262ffffff60301b1990921691909117905560405183906000805160206133c283398151915290600090a2505050565b6000828152606860205260409020600781015460609190610ebf908490600160301b900462ffffff166121c0565b600083815260068201602052604080822054905163cc31a33160e01b81526001600160a01b03909116919073__$55f4e50e6128becd8bf164b272db98df09$__9063cc31a33190610f14908590600401612b23565b602060405180830381865af4158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5591906130f2565b90507f554e4b4e4f574e5f56455253494f4e5f535452494e475f5f5f5f5f5f5f5f5f20810361100457604051632475d70960e01b815273__$55f4e50e6128becd8bf164b272db98df09$__90632475d70990610fb5908590600401612b23565b600060405180830381865af4158015610fd2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ffa919081019061310b565b9350505050610674565b604051630eacc5e760e31b815273__$55f4e50e6128becd8bf164b272db98df09$__906375662f389061103b908590600401612b23565b600060405180830381865af4158015611058573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ffa9190810190613153565b6060600061108e6066612204565b90506000816001600160401b038111156110aa576110aa6129da565b6040519080825280602002602001820160405280156110dd57816020015b60608152602001906001900390816110c85790505b50905060005b82811015610722576110fe6110f960668361220e565b6123d5565b82828151811061111057611110612e74565b6020026020010181905250808061112690612ea0565b9150506110e3565b61113e6352ccc02160e01b61221a565b611147816122b9565b60008181526068602052604090206007810154600160301b900462ffffff166111b25760405162461bcd60e51b815260206004820152601e60248201527f746865726520617265206e6f207363726970747320746f2072656d6f76650000604482015260640161083f565b600781015460068201906000906111d790600190600160301b900462ffffff16613187565b62ffffff908116825260208201929092526040908101600090812080546001600160a01b031916905560078401805462ffffff60301b198116600160301b9182900486166000190190951602939093179092555183916000805160206133c283398151915291a25050565b611252635710f83d60e01b61221a565b61125b8161226a565b611264826122b9565b600082815260686020908152604080832060078101546301000000900462ffffff1680855260048201909352922061129c8482612f1d565b506112a88160016131a3565b8260070160036101000a81548162ffffff021916908362ffffff160217905550837ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde84836040516107bb929190612fd6565b61130a6366d549a160e01b61221a565b611313846124e9565b611320856040600161253e565b6113695760405162461bcd60e51b815260206004820152601a60248201527901b5d5cdd0818dbdb9d185a5b88195e1858dd1b1e481bdb9948160361b604482015260640161083f565b6113746066866125b2565b6113c05760405162461bcd60e51b815260206004820152601e60248201527f446570656e64656e6379207479706520616c7265616479206578697374730000604482015260640161083f565b6000858152606860205260409020848155600181016113df8582612f1d565b50600381016113ee8482612f1d565b50600581016113fd8382612f1d565b5084867f14d15ecf0e955bdd7a921efba642deef4d718696d3fc369454c84817fed0fb77868686604051611433939291906131b6565b60405180910390a3505050505050565b6114536336fd4fab60e11b61221a565b61145c826122b9565b600082815260686020526040902060078101546301000000900462ffffff1661148583826121c0565b60006114926001836131f9565b6000868152606860209081526040808320848452600490810183528184208985529088019092529091209192506114c9908261320c565b50600081815260048401602052604081206114e3916128ba565b60078301805465ffffff0000001916630100000062ffffff841602179055604051849086907fc02725dfc9639e3399432cdae3db1c062229f4cc41bcc18631517617c020b71c90600090a35050505050565b61153d6125be565b611547600061261d565b565b60006115556066612204565b905090565b60006115556033546001600160a01b031690565b61157e63a1a7a47b60e01b61221a565b611587826122b9565b6000828152606860205260409020600781015462ffffff166115a983826121c0565b60006115b66001836131f9565b600081815260028501602052604080822087835291209192506115d9908261320c565b50600081815260028401602052604081206115f3916128ba565b60078301805462ffffff191662ffffff8316179055604051849086907f225454b600cf489553fde6e3b7f5e458b1093c035390b678067ea799b3b016cd90600090a35050505050565b6000611555606b612204565b60008281526068602052604081206007810154611672908490600160301b900462ffffff166121c0565b60008481526068602090815260408083208684526006019091529081902054905163cc31a33160e01b815273__$55f4e50e6128becd8bf164b272db98df09$__9163cc31a331916116cf916001600160a01b031690600401612b23565b602060405180830381865af41580156116ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171091906130f2565b949350505050565b61172863bbf2aefb60e01b61221a565b611731816122b9565b61173a83612440565b6001600160a01b0383166000818152606d6020908152604080832086845282529182902084905590518381528492917f27d39273f3676c181ec3de60b583da776123d9f9517761fb91f370a83c798918910160405180910390a3505050565b60606117a982610c826066612204565b6106746110f960668461220e565b6117c7635f1e9f7360e11b61221a565b6117d0826122b9565b60008281526068602052604090206001016117eb8282612f1d565b50817fc9890a31ec780bb5a8a017d683d3913f97260548d71c2cee78194ed2833f023582604051610c66919061297a565b61182c630c07392760e41b61221a565b6118376069826125b2565b6118815760405162461bcd60e51b815260206004820152601b60248201527a4c6963656e7365207479706520616c72656164792065786973747360281b604482015260640161083f565b806118da5760405162461bcd60e51b815260206004820152602360248201527f4c6963656e736520747970652063616e6e6f7420626520656d70747920737472604482015262696e6760e81b606482015260840161083f565b60405181907fad5dcce4588345db351371d105540f3fb69966f418d923539f19d5f44a1cfc4b90600090a250565b61191863c0cd565f60e01b61221a565b61192181612495565b61192a836122b9565b60008381526068602052604090206007810154611954908490600160301b900462ffffff166121c0565b600083815260068201602052604080822080546001600160a01b0319166001600160a01b0386161790555185916000805160206133c283398151915291a250505050565b600054610100900460ff16158080156119b85750600054600160ff909116105b806119d25750303b1580156119d2575060005460ff166001145b611a355760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161083f565b6000805460ff191660011790558015611a58576000805461ff0019166101001790555b611a60612648565b611a698261261d565b8015611aaf576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b611ac363caaa3bb760e01b61221a565b611acc8161226a565b611ad5836122b9565b60008381526068602052604090206007810154611aff9084906301000000900462ffffff166121c0565b60008381526004820160205260409020611b198382612f1d565b50837ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde83856040516107bb929190612fd6565b6060611b5c82610c826069612204565b6106746110f960698461220e565b6000610674606b83612677565b611b8763dbc71ccb60e01b61221a565b611b9081612495565b611b9b606b8261268c565b611be45760405162461bcd60e51b815260206004820152601a60248201527910dbdb9d1c9858dd08185b1c9958591e481cdd5c1c1bdc9d195960321b604482015260640161083f565b6040516001600160a01b038216907f59e1b889b92ad05213b7934a67c5d824348c868455d1c741a2cfe16e46d832dc90600090a250565b611c2b636e19fa5760e11b61221a565b611c348161226a565b611c3d826122b9565b6000828152606860205260409020611c5482612325565b600782018054600160301b9081900462ffffff9081166000908152600686016020526040902080546001600160a01b0319166001600160a01b0395909516949094179093559054610e4e929190041660016130d6565b60008281526068602052604081206007810154611cd4908490600160301b900462ffffff166121c0565b60009283526006016020525060409020546001600160a01b0316919050565b6000828152606860205260409020600781015460609190611d219084906301000000900462ffffff166121c0565b6000838152600482016020526040902080546105f290612e40565b611d4c63f146f17f60e01b61221a565b611d558161226a565b611d5e826122b9565b6000828152606860209081526040808320600781015462ffffff16808552600282019093529220611d8f8482612f1d565b50611d9b8160016131a3565b8260070160006101000a81548162ffffff021916908362ffffff160217905550837f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d84836040516107bb929190612fd6565b611df56125be565b6001600160a01b038116611e5a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161083f565b611e638161261d565b50565b611e7663f73f499160e01b61221a565b6001600160a01b0382166000908152606d60209081526040808320848452909152902054611ee45760405162461bcd60e51b815260206004820152601b60248201527a139bc81bdd995c9c9a5919481cd95d08199bdc881c1c9bda9958dd602a1b604482015260640161083f565b6001600160a01b0382166000818152606d60209081526040808320858452909152808220829055518392917f0732620824c0200808d04ab037f3abc3c31853170b90f5a855d32f44486048ed91a35050565b611f46637c560c5f60e11b61221a565b611f4f816122b9565b6000818152606860205260409020600781015462ffffff16158015611f82575060078101546301000000900462ffffff16155b8015611f9c57506007810154600160301b900462ffffff16155b61201e5760405162461bcd60e51b815260206004820152604760248201527f43616e6e6f742072656d6f766520646570656e64656e6379207769746820616460448201527f646974696f6e616c2043444e732c207265706f7369746f726965732c206f72206064820152667363726970747360c81b608482015260a40161083f565b6120296066836126a1565b5060008281526068602052604081208181559061204960018301826128ba565b6120576003830160006128ba565b6120656005830160006128ba565b5060070180546001600160481b031916905560405182907f60e2aa021c4f5303dd65e2173f0180636e4d42eaefc6187278e92bee9d06aa7290600090a25050565b6120b6637ce07d7360e11b61221a565b6120bf826122b9565b60008281526068602052604090206003016120da8282612f1d565b50817f774918414e4887efe5349a305fe253ee8b1e3fe0c2117012f0c215645693cbfd82604051610c66919061297a565b606060006121196069612204565b90506000816001600160401b03811115612135576121356129da565b60405190808252806020026020018201604052801561216857816020015b60608152602001906001900390816121535790505b50905060005b82811015610722576121846110f960698361220e565b82828151811061219657612196612e74565b602002602001018190525080806121ac90612ea0565b91505061216e565b60006115556069612204565b808210611aaf5760405162461bcd60e51b8152602060048201526012602482015271496e646578206f7574206f662072616e676560701b604482015260640161083f565b6000610674825490565b60006109c683836126ad565b61222533308361091f565b611e635760405162461bcd60e51b815260206004820152601660248201527513db9b1e4810591b5a5b881050d308185b1b1bddd95960521b604482015260640161083f565b8051600003611e635760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d656d70747920737472696e6760281b604482015260640161083f565b6122c46066826126d7565b611e635760405162461bcd60e51b815260206004820152601e60248201527f446570656e64656e6379207479706520646f6573206e6f742065786973740000604482015260640161083f565b60006109c6836001600160a01b0384166126e3565b6000807f42797465636f646553746f726167655f56312e302e305f5f5f5f5f5f5f5f5f20308460405160200161235d939291906132e0565b60405160208183030381529060405290508051602082016000f091506001600160a01b0382166123cf5760405162461bcd60e51b815260206004820152601e60248201527f436f6e7472616374417353746f726167653a205772697465204572726f720000604482015260640161083f565b50919050565b606060005b828160ff16602081106123ef576123ef612e74565b1a60f81b6001600160f81b0319161580159061240e575060208160ff16105b15612425578061241d81613341565b9150506123da565b60405191506040820160405280825282602083015250919050565b61244b606b82612677565b611e635760405162461bcd60e51b815260206004820152601b60248201527a10dbdc994818dbdb9d1c9858dd081b9bdd081cdd5c1c1bdc9d1959602a1b604482015260640161083f565b6001600160a01b038116611e635760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d7a65726f206164647265737360281b604482015260640161083f565b6124f46069826126d7565b611e635760405162461bcd60e51b815260206004820152601b60248201527a131a58d95b9cd9481d1e5c1948191bd95cc81b9bdd08195e1a5cdd602a1b604482015260640161083f565b60008060005b60208160ff16101561259e576000868260ff166020811061256757612567612e74565b1a9050801580159061257c575060808160ff16105b15612595578560ff168160ff1603612595578260010192505b50600101612544565b8360ff168260ff1614925050509392505050565b60006109c683836127d6565b336125c761155a565b6001600160a01b0316146115475760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161083f565b61262681612820565b606580546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff1661266f5760405162461bcd60e51b815260040161083f90613360565b611547612872565b60006109c6836001600160a01b0384166128a2565b60006109c6836001600160a01b0384166127d6565b60006109c683836126e3565b60008260000182815481106126c4576126c4612e74565b9060005260206000200154905092915050565b60006109c683836128a2565b600081815260018301602052604081205480156127cc5760006127076001836131f9565b855490915060009061271b906001906131f9565b905081811461278057600086600001828154811061273b5761273b612e74565b906000526020600020015490508087600001848154811061275e5761275e612e74565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612791576127916133ab565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610674565b6000915050610674565b60006127e283836128a2565b61281857508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610674565b506000610674565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166128995760405162461bcd60e51b815260040161083f90613360565b6115473361261d565b60009081526001919091016020526040902054151590565b5080546128c690612e40565b6000825580601f106128d6575050565b601f016020900490600052602060002090810190611e6391905b8082111561290457600081556001016128f0565b5090565b6000806040838503121561291b57600080fd5b50508035926020909101359150565b60005b8381101561294557818101518382015260200161292d565b50506000910152565b6000815180845261296681602086016020860161292a565b601f01601f19169290920160200192915050565b6020815260006109c6602083018461294e565b6020808252825182820181905260009190848201906040850190845b818110156129ce5783516001600160a01b0316835292840192918401916001016129a9565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612a1857612a186129da565b604052919050565b60006001600160401b03821115612a3957612a396129da565b50601f01601f191660200190565b600082601f830112612a5857600080fd5b8135612a6b612a6682612a20565b6129f0565b818152846020838601011115612a8057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215612ab257600080fd5b833592506020840135915060408401356001600160401b03811115612ad657600080fd5b612ae286828701612a47565b9150509250925092565b80356001600160a01b0381168114612b0357600080fd5b919050565b600060208284031215612b1a57600080fd5b6109c682612aec565b6001600160a01b0391909116815260200190565b600080600060608486031215612b4c57600080fd5b612b5584612aec565b9250612b6360208501612aec565b915060408401356001600160e01b031981168114612b8057600080fd5b809150509250925092565b600060208284031215612b9d57600080fd5b5035919050565b6000610120808352612bb88184018d61294e565b90508281036020840152612bcc818c61294e565b90508281036040840152612be0818b61294e565b905062ffffff808a1660608501528382036080850152612c00828a61294e565b915080881660a085015283820360c0850152612c1c828861294e565b925085151560e085015280851661010085015250509a9950505050505050505050565b60008060408385031215612c5257600080fd5b8235915060208301356001600160401b03811115612c6f57600080fd5b612c7b85828601612a47565b9150509250929050565b60008060408385031215612c9857600080fd5b612ca183612aec565b946020939093013593505050565b60008060408385031215612cc257600080fd5b82359150612cd260208401612aec565b90509250929050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015612d3057603f19888603018452612d1e85835161294e565b94509285019290850190600101612d02565b5092979650505050505050565b600080600080600060a08688031215612d5557600080fd5b853594506020860135935060408601356001600160401b0380821115612d7a57600080fd5b612d8689838a01612a47565b94506060880135915080821115612d9c57600080fd5b612da889838a01612a47565b93506080880135915080821115612dbe57600080fd5b50612dcb88828901612a47565b9150509295509295909350565b600080600060608486031215612ded57600080fd5b612df684612aec565b95602085013595506040909401359392505050565b600080600060608486031215612e2057600080fd5b8335925060208401359150612e3760408501612aec565b90509250925092565b600181811c90821680612e5457607f821691505b6020821081036123cf57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201612eb257612eb2612e8a565b5060010190565b601f821115612f0357600081815260208120601f850160051c81016020861015612ee05750805b601f850160051c820191505b81811015612eff57828155600101612eec565b5050505b505050565b600019600383901b1c191660019190911b1790565b81516001600160401b03811115612f3657612f366129da565b612f4a81612f448454612e40565b84612eb9565b602080601f831160018114612f795760008415612f675750858301515b612f718582612f08565b865550612eff565b600085815260208120601f198616915b82811015612fa857888601518255948401946001909101908401612f89565b5085821015612fc65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b604081526000612fe9604083018561294e565b90508260208301529392505050565b60006020828403121561300a57600080fd5b815180151581146109c657600080fd5b6000613028612a6684612a20565b905082815283838301111561303c57600080fd5b6109c683602083018461292a565b600082601f83011261305b57600080fd5b6109c68383516020850161301a565b60008060006060848603121561307f57600080fd5b83516001600160401b038082111561309657600080fd5b6130a28783880161304a565b945060208601519150808211156130b857600080fd5b506130c58682870161304a565b925050604084015190509250925092565b62ffffff81811683821601908082111561072257610722612e8a565b60006020828403121561310457600080fd5b5051919050565b60006020828403121561311d57600080fd5b81516001600160401b0381111561313357600080fd5b8201601f8101841361314457600080fd5b6117108482516020840161301a565b60006020828403121561316557600080fd5b81516001600160401b0381111561317b57600080fd5b6117108482850161304a565b62ffffff82811682821603908082111561072257610722612e8a565b8082018082111561067457610674612e8a565b6060815260006131c9606083018661294e565b82810360208401526131db818661294e565b905082810360408401526131ef818561294e565b9695505050505050565b8181038181111561067457610674612e8a565b818103613217575050565b6132218254612e40565b6001600160401b03811115613238576132386129da565b61324681612f448454612e40565b6000601f82116001811461327457600083156132625750848201545b61326c8482612f08565b8555506132d9565b600085815260209020601f19841690600086815260209020845b838110156132ae578286015482556001958601959091019060200161328e565b50858310156132cc5781850154600019600388901b60f8161c191681555b50505060018360011b0184555b5050505050565b6a600b5981380380925939f360a81b8152607f60f91b600b820152600c81018490526000602c8201819052606084901b6001600160601b0319166038830152825161333281604c85016020870161292a565b91909101604c01949350505050565b600060ff821660ff810361335757613357612e8a565b60010192915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052603160045260246000fdfef79e11fc86b9bf37d5dfd4359c053136f7c046da6a08f9cf7ca56d80d5aab839a26469706673582212205b1972e39cf6def9309ed94f77ac484c7cbc7cbad3af5a90481b15e5a272762c64736f6c63430008130033",
1427
+ "bytecode": "0x608060405234801561001057600080fd5b506140d2806100206000396000f3fe608060405234801561001057600080fd5b50600436106102865760003560e01c80638da5cb5b11610168578063c4d66de8116100d4578063c4d66de814610595578063caaa3bb7146105a8578063cc86ba4b146105bb578063cea2961a146105ce578063cfb51928146105e1578063dc33f4ae146105f4578063dfa3be5314610607578063f0b993821461061a578063f146f17f1461062d578063f2fde38b14610640578063f8ac18be14610653578063f9c0fae614610666578063fb5cd19b14610679578063fed37e821461068157600080fd5b80638da5cb5b146104b257806392b794db146104ba5780639532f2f4146104cd578063a0a82bd3146104e2578063a1a7a47b146104f5578063ad6b414d14610508578063b1d24cb21461051b578063b86b69f11461052e578063ba22851214610536578063be3d3ee614610549578063c07392701461055c578063c0cd565f1461056f578063c42ae8141461058257600080fd5b8062e879031461028b57806307f9f786146102b457806313762186146102c957806316a1012d146102de5780631a051d49146102f15780631e9bef4614610304578063230448b11461031957806325ffb3761461033c5780633e76919a1461036457806344346a5f14610377578063447b051a1461038d5780634a78a932146103a05780634bd1a387146103b35780634f5267ef146103c6578063518cb3df146103d957806352ccc021146103ec5780635668bc5e146103ff5780635710f83d14610412578063613d57fd1461042557806366d549a114610438578063675abe241461044b5780636dfa9f561461045e578063715018a61461047157806371b70a711461047957806381e7837c1461048c5780638b6ad1ec1461049f575b600080fd5b61029e610299366004613475565b610689565b6040516102ab91906134e7565b60405180910390f35b6102bc610762565b6040516102ab91906134fa565b6102dc6102d736600461360a565b610933565b005b6102dc6102ec36600461360a565b6109e4565b6102dc6102ff36600461360a565b610a8c565b61030c610b3d565b6040516102ab9190613659565b61032c610327366004613682565b610b56565b60405190151581526020016102ab565b61034f61034a3660046136da565b610c0a565b6040516102ab999897969594939291906136f3565b61030c6103723660046136da565b610e45565b61037f610faf565b6040519081526020016102ab565b6102dc61039b36600461378e565b610fc9565b61029e6103ae3660046137c3565b611057565b6102dc6103c13660046137ef565b6111aa565b6102dc6103d43660046137c3565b61127c565b61029e6103e7366004613475565b61135e565b6102dc6103fa3660046136da565b61155c565b61037f61040d3660046136da565b611681565b6102dc61042036600461381f565b6116ae565b61037f6104333660046136da565b611778565b6102dc610446366004613865565b61179e565b6102dc610459366004613900565b6118f4565b6102dc61046c366004613475565b6119a2565b6102dc611aa7565b61029e610487366004613475565b611abb565b6102dc61049a366004613900565b611b44565b6102dc6104ad366004613900565b611c00565b61030c611c6f565b61034f6104c836600461391d565b611c83565b6104d5611cc7565b6040516102ab9190613951565b6102dc6104f036600461381f565b611d8d565b6102dc610503366004613475565b611e55565b6102dc6105163660046136da565b611f34565b61029e6105293660046136da565b612039565b61037f61206c565b61037f610544366004613475565b612111565b6102dc61055736600461381f565b6121df565b6102dc61056a3660046136da565b61225e565b6102dc61057d3660046139b3565b612354565b6102dc61059036600461381f565b6123f5565b6102dc6105a3366004613900565b612465565b6102dc6105b636600461360a565b612580565b61029e6105c93660046136da565b61262a565b61032c6105dc366004613900565b612658565b61037f6105ef36600461391d565b6126ef565b6102dc61060236600461381f565b612703565b61030c610615366004613475565b6127a2565b61029e610628366004613475565b6127fd565b6102dc61063b36600461381f565b612855565b6102dc61064e366004613900565b612918565b6102dc6106613660046136da565b612991565b6102dc61067436600461381f565b612b16565b6104d5612b89565b61037f612c37565b60606000610695612c4c565b60008581526005919091016020526040902060078101549091506106bf90849062ffffff16612c70565b6000838152600282016020526040902080546106da906139e1565b80601f0160208091040260200160405190810160405280929190818152602001828054610706906139e1565b80156107535780601f1061072857610100808354040283529160200191610753565b820191906000526020600020905b81548152906001019060200180831161073657829003601f168201915b50505050509150505b92915050565b6060600061076e612c4c565b600a0160009054906101000a90046001600160a01b03166001600160a01b0316631676ddc36040518163ffffffff1660e01b8152600401600060405180830381865afa1580156107c2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107ea9190810190613a15565b805190915060006108046107fc612c4c565b600b01612c8f565b90506000815184516108169190613adc565b6001600160401b0381111561082d5761082d613547565b604051908082528060200260200182016040528015610856578160200160208202803683370190505b50805190915060005b8181101561092857848110156108c05785818151811061088157610881613aef565b602002602001015183828151811061089b5761089b613aef565b60200260200101906001600160a01b031690816001600160a01b031681525050610916565b836108cb8683613b05565b815181106108db576108db613aef565b60200260200101518382815181106108f5576108f5613aef565b60200260200101906001600160a01b031690816001600160a01b0316815250505b8061092081613b18565b91505061085f565b509095945050505050565b6109436309bb10c360e11b612c9c565b61094c81612cec565b61095583612d3b565b600061095f612c4c565b600085815260059190910160205260409020600781015490915061098990849062ffffff16612c70565b600083815260028201602052604090206109a38382613b95565b50837f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d83856040516109d6929190613c4e565b60405180910390a250505050565b6109f46316a1012d60e01b612c9c565b6109fd81612cec565b610a0683612d98565b6000610a10612c4c565b6000858152600691909101602052604090206001810154909150610a3a90849062ffffff16612c70565b610a4382612df7565b60008481526020839052604080822080546001600160a01b0319166001600160a01b0394909416939093179092559051859160008051602061405d83398151915291a250505050565b610a9c631a051d4960e01b612c9c565b610aa581612cec565b610aae83612d3b565b6000610ab8612c4c565b6000858152600591909101602052604090206007810154909150610ae9908490600160301b900462ffffff16612c70565b610af282612df7565b600084815260068301602052604080822080546001600160a01b0319166001600160a01b0394909416939093179092559051859160008051602061407d83398151915291a250505050565b6000610b47612c4c565b546001600160a01b0316919050565b600080610b61611c6f565b6001600160a01b031614158015610c005750610b7b612c4c565b546040516217798b60e61b81526001600160a01b03868116600483015285811660248301526001600160e01b031985166044830152909116906305de62c0906064016020604051808303816000875af1158015610bdc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c009190613c70565b90505b9392505050565b606080606060006060600060606000806000610c24612c4c565b60008c8152600591909101602052604090209050610c418b612ea7565b8154610c4c90612ea7565b6007830154600184018054909162ffffff8082169260038801926301000000810483169260058a0192600160301b90920416801515918790610c8d906139e1565b80601f0160208091040260200160405190810160405280929190818152602001828054610cb9906139e1565b8015610d065780601f10610cdb57610100808354040283529160200191610d06565b820191906000526020600020905b815481529060010190602001808311610ce957829003601f168201915b50505050509650848054610d19906139e1565b80601f0160208091040260200160405190810160405280929190818152602001828054610d45906139e1565b8015610d925780601f10610d6757610100808354040283529160200191610d92565b820191906000526020600020905b815481529060010190602001808311610d7557829003601f168201915b50505050509450828054610da5906139e1565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd1906139e1565b8015610e1e5780601f10610df357610100808354040283529160200191610e1e565b820191906000526020600020905b815481529060010190602001808311610e0157829003601f168201915b50505050509250995099509950995099509950995099509950509193959799909294969850565b600080610e50612c4c565b600a0160009054906101000a90046001600160a01b03166001600160a01b0316637ac4f3296040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ea4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec89190613c92565b905080831015610f4857610eda612c4c565b600a0154604051631ef6bdbf60e21b8152600481018590526001600160a01b0390911690637bdaf6fc90602401602060405180830381865afa158015610f24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c039190613cab565b6000610f5d610f55612c4c565b600b01612f12565b9050610f698183613adc565b8410610f905760405162461bcd60e51b8152600401610f8790613cc8565b60405180910390fd5b610fa7828503610f9e612c4c565b600b0190612f1c565b949350505050565b6000610fc4610fbc612c4c565b600101612f12565b905090565b610fd963223d828d60e11b612c9c565b610fe281612d3b565b610feb83612f28565b80610ff4612c4c565b6001600160a01b03851660008181526009929092016020908152604080842087855282529283902093909355905183815284927ff2f4de0c34a4899f5cf7a30aced71b0c27f629f80fb61efc06c7a12ecabdb7ba910160405180910390a3505050565b606061106283612f28565b600061106c612c4c565b6001600160a01b038516600090815260099190910160209081526040808320868452909152902054905080156110ad576110a581612ea7565b91505061075c565b604051633ae7357560e21b8152600481018490526001600160a01b0385169063eb9cd5d490602401600060405180830381865afa92505050801561111357506040513d6000823e601f3d908101601f191682016040526111109190810190613d44565b60015b6111975760405162461bcd60e51b815260206004820152604960248201527f436f6e747261637420646f6573206e6f7420696d706c656d656e742070726f6a60448201527f65637453637269707444657461696c7320616e6420686173206e6f206f7665726064820152683934b2329039b2ba1760b91b608482015260a401610f87565b8294505050505061075c565b5092915050565b6111ba634bd1a38760e01b612c9c565b6111c381612f7b565b6111cc82612d3b565b60006111d6612c4c565b600084815260059190910160209081526040808320600781018054600160301b9081900462ffffff9081168752600684019095529290942080546001600160a01b0319166001600160a01b03881617905592549293506112399204166001613db0565b60078201805462ffffff92909216600160301b0262ffffff60301b19909216919091179055604051839060008051602061407d83398151915290600090a2505050565b61128c634f5267ef60e01b612c9c565b6000611296612c4c565b6001600160a01b038416600090815260098201602090815260408083208684529091529020549091506113095760405162461bcd60e51b815260206004820152601b60248201527a139bc81bdd995c9c9a5919481cd95d08199bdc881c1c9bda9958dd602a1b6044820152606401610f87565b6001600160a01b03831660008181526009830160209081526040808320868452909152808220829055518492917f618154ee1a16009759db8e59ff744e79dd094831be73c4b9383f885678c20b7391a3505050565b6060600061136a612c4c565b600085815260059190910160205260409020600781015490915061139b908490600160301b900462ffffff16612c70565b600083815260068201602052604080822054905163cc31a33160e01b81526001600160a01b03909116919073__$55f4e50e6128becd8bf164b272db98df09$__9063cc31a331906113f0908590600401613659565b602060405180830381865af415801561140d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114319190613c92565b90507f554e4b4e4f574e5f56455253494f4e5f535452494e475f5f5f5f5f5f5f5f5f2081036114e057604051632475d70960e01b815273__$55f4e50e6128becd8bf164b272db98df09$__90632475d70990611491908590600401613659565b600060405180830381865af41580156114ae573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114d69190810190613dcc565b935050505061075c565b604051630eacc5e760e31b815273__$55f4e50e6128becd8bf164b272db98df09$__906375662f3890611517908590600401613659565b600060405180830381865af4158015611534573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114d69190810190613e14565b61156c6352ccc02160e01b612c9c565b61157581612d3b565b600061157f612c4c565b6000838152600591909101602052604090206007810154909150600160301b900462ffffff166115f15760405162461bcd60e51b815260206004820152601e60248201527f746865726520617265206e6f207363726970747320746f2072656d6f766500006044820152606401610f87565b6007810154600682019060009061161690600190600160301b900462ffffff16613e48565b62ffffff908116825260208201929092526040908101600090812080546001600160a01b031916905560078401805462ffffff60301b198116600160301b91829004861660001901909516029390931790925551839160008051602061407d83398151915291a25050565b600061168b612c4c565b6000928352600501602052506040902060070154600160301b900462ffffff1690565b6116be635710f83d60e01b612c9c565b6116c781612cec565b6116d082612d3b565b60006116da612c4c565b60008481526005919091016020908152604080832060078101546301000000900462ffffff168085526004820190935292209192509061171a8482613b95565b50611726816001613adc565b8260070160036101000a81548162ffffff021916908362ffffff160217905550837ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde84836040516109d6929190613c4e565b6000611782612c4c565b600092835260060160205250604090206001015462ffffff1690565b6117ae6366d549a160e01b612c9c565b6117b784612d98565b6117c48560406001612fcf565b61180d5760405162461bcd60e51b815260206004820152601a60248201527901b5d5cdd0818dbdb9d185a5b88195e1858dd1b1e481bdb9948160361b6044820152606401610f87565b6000611817612c4c565b90506118266001820187613043565b61186e5760405162461bcd60e51b8152602060048201526019602482015278446570656e64656e637920616c72656164792065786973747360381b6044820152606401610f87565b600086815260058201602052604090208581556001810161188f8682613b95565b506003810161189e8582613b95565b50600581016118ad8482613b95565b5085877f14d15ecf0e955bdd7a921efba642deef4d718696d3fc369454c84817fed0fb778787876040516118e393929190613e64565b60405180910390a350505050505050565b6119046319d6af8960e21b612c9c565b61190d81612f7b565b61192281611919612c4c565b600b019061304f565b61196b5760405162461bcd60e51b815260206004820152601a60248201527910dbdb9d1c9858dd08185b1c9958591e481cdd5c1c1bdc9d195960321b6044820152606401610f87565b6040516001600160a01b038216907f85796181e67d093fd8fc344cdf114629c14c1396c47bfd9cda9392285e74d43f90600090a250565b6119b26336fd4fab60e11b612c9c565b6119bb82612d3b565b60006119c5612c4c565b600084815260058201602052604090206007810154919250906301000000900462ffffff166119f48482612c70565b6000611a01600183613b05565b60008781526005860160209081526040808320848452600490810183528184208a8552908801909252909120919250611a3a9082613ea7565b5060008181526004840160205260408120611a5491613427565b60078301805465ffffff0000001916630100000062ffffff841602179055604051859087907fc02725dfc9639e3399432cdae3db1c062229f4cc41bcc18631517617c020b71c90600090a3505050505050565b611aaf613064565b611ab960006130c3565b565b60606000611ac7612c4c565b6000858152600691909101602052604090206001810154909150611af190849062ffffff16612c70565b60008381526020829052604080822054905163cc31a33160e01b81526001600160a01b03909116919073__$55f4e50e6128becd8bf164b272db98df09$__9063cc31a331906113f0908590600401613659565b611b54632079e0df60e21b612c9c565b611b6981611b60612c4c565b600b01906130f6565b611bc95760405162461bcd60e51b815260206004820152602b60248201527f436f726520636f6e747261637420616c72656164792072656d6f766564206f7260448201526a081b9bdd081a5b881cd95d60aa1b6064820152608401610f87565b6040516001600160a01b038216907f24f057e6bd463ac72bb963a1e55a41494d252695f97a7671c2b7018345eb31f790600090a250565b611c106322dab47b60e21b612c9c565b611c1981612f7b565b80611c22612c4c565b600a0180546001600160a01b0319166001600160a01b03928316179055604051908216907f38429341ba977e6c97809dd9fed1f58cf5c409bfe8132475b3f73bda02dd84f690600090a250565b6000610fc46033546001600160a01b031690565b60608060606000606060006060600080611c9c8a61310b565b611ca861034a8b61314f565b9850985098509850985098509850985098509193959799909294969850565b60606000611cd3612c4c565b90506000611ce382600101612f12565b90506000816001600160401b03811115611cff57611cff613547565b604051908082528060200260200182016040528015611d3257816020015b6060815260200190600190039081611d1d5790505b50905060005b82811015611d8557611d55611d506001860183612f1c565b612ea7565b828281518110611d6757611d67613aef565b60200260200101819052508080611d7d90613b18565b915050611d38565b509392505050565b611d9d63a0a82bd360e01b612c9c565b611da681612cec565b611daf82612d98565b6000611db9612c4c565b6000848152600691909101602052604090209050611dd682612df7565b6001828101805462ffffff908116600090815260208690526040902080546001600160a01b0319166001600160a01b03959095169490941790935554611e1d921690613db0565b60018201805462ffffff191662ffffff92909216919091179055604051839060008051602061405d83398151915290600090a2505050565b611e6563a1a7a47b60e01b612c9c565b611e6e82612d3b565b6000611e78612c4c565b600084815260059190910160205260409020600781015490915062ffffff16611ea18382612c70565b6000611eae600183613b05565b60008181526002850160205260408082208783529120919250611ed19082613ea7565b5060008181526002840160205260408120611eeb91613427565b60078301805462ffffff191662ffffff8316179055604051849086907f225454b600cf489553fde6e3b7f5e458b1093c035390b678067ea799b3b016cd90600090a35050505050565b611f4463ad6b414d60e01b612c9c565b611f4d81612d98565b6000611f57612c4c565b600083815260069190910160205260409020600181015490915062ffffff1680611fce5760405162461bcd60e51b815260206004820152602260248201527f5468657265206973206e6f206c6963656e7365207465787420746f2072656d6f604482015261766560f01b6064820152608401610f87565b816000611fdc600184613e48565b62ffffff908116825260208201929092526040908101600090812080546001600160a01b031916905560018501805462ffffff191660001986019094169390931790925551849160008051602061405d83398151915291a2505050565b60606000612045612c4c565b905061205c8361205783600101612f12565b612c70565b610c03611d506001830185612f1c565b600080612077612c4c565b600a0160009054906101000a90046001600160a01b03166001600160a01b0316637ac4f3296040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ef9190613c92565b905060006120fe610f55612c4c565b905061210a8183613adc565b9250505090565b60008061211c612c4c565b600085815260059190910160205260409020600781015490915061214d908490600160301b900462ffffff16612c70565b60008381526006820160205260409081902054905163cc31a33160e01b815273__$55f4e50e6128becd8bf164b272db98df09$__9163cc31a3319161219e916001600160a01b031690600401613659565b602060405180830381865af41580156121bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa79190613c92565b6121ef635f1e9f7360e11b612c9c565b6121f882612d3b565b80612201612c4c565b600084815260059190910160205260409020600101906122219082613b95565b50817fc9890a31ec780bb5a8a017d683d3913f97260548d71c2cee78194ed2833f02358260405161225291906134e7565b60405180910390a25050565b61226e630c07392760e41b612c9c565b806122c75760405162461bcd60e51b815260206004820152602360248201527f4c6963656e736520747970652063616e6e6f7420626520656d70747920737472604482015262696e6760e81b6064820152608401610f87565b6122dc816122d3612c4c565b60030190613043565b6123265760405162461bcd60e51b815260206004820152601b60248201527a4c6963656e7365207479706520616c72656164792065786973747360281b6044820152606401610f87565b60405181907fad5dcce4588345db351371d105540f3fb69966f418d923539f19d5f44a1cfc4b90600090a250565b61236463c0cd565f60e01b612c9c565b61236d81612f7b565b61237683612d3b565b6000612380612c4c565b60008581526005919091016020526040902060078101549091506123b1908490600160301b900462ffffff16612c70565b600083815260068201602052604080822080546001600160a01b0319166001600160a01b03861617905551859160008051602061407d83398151915291a250505050565b61240563310aba0560e21b612c9c565b61240e82612d3b565b80612417612c4c565b600084815260059182016020526040902001906124349082613b95565b50817f94747dffac14b8b9a15e699c998cc8f42ad81f21ae95e155c8a1c49403117b8b8260405161225291906134e7565b600054610100900460ff16158080156124855750600054600160ff909116105b8061249f5750303b15801561249f575060005460ff166001145b6125025760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610f87565b6000805460ff191660011790558015612525576000805461ff0019166101001790555b61252d61316e565b612536826130c3565b801561257c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b61259063caaa3bb760e01b612c9c565b61259981612cec565b6125a283612d3b565b60006125ac612c4c565b60008581526005919091016020526040902060078101549091506125dd9084906301000000900462ffffff16612c70565b600083815260048201602052604090206125f78382613b95565b50837ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde83856040516109d6929190613c4e565b60606000612636612c4c565b90506126488361205783600301612f12565b610c03611d506003830185612f1c565b6000612662612c4c565b600a015460405163f1052af560e01b81526001600160a01b039091169063f1052af590612693908590600401613659565b602060405180830381865afa1580156126b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d49190613c70565b8061075c575061075c826126e6612c4c565b600b019061319d565b60006126fa8261310b565b61075c8261314f565b612713636e19fa5760e11b612c9c565b61271c81612cec565b61272582612d3b565b600061272f612c4c565b600084815260059190910160205260409020905061274c82612df7565b600782018054600160301b9081900462ffffff9081166000908152600686016020526040902080546001600160a01b0319166001600160a01b039590951694909417909355905461123992919004166001613db0565b6000806127ad612c4c565b60008581526005919091016020526040902060078101549091506127de908490600160301b900462ffffff16612c70565b60009283526006016020525060409020546001600160a01b0316919050565b60606000612809612c4c565b600085815260059190910160205260409020600781015490915061283a9084906301000000900462ffffff16612c70565b6000838152600482016020526040902080546106da906139e1565b61286563f146f17f60e01b612c9c565b61286e81612cec565b61287782612d3b565b6000612881612c4c565b600084815260059190910160209081526040808320600781015462ffffff16808552600282019093529220919250906128ba8482613b95565b506128c6816001613adc565b8260070160006101000a81548162ffffff021916908362ffffff160217905550837f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d84836040516109d6929190613c4e565b612920613064565b6001600160a01b0381166129855760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610f87565b61298e816130c3565b50565b6129a1637c560c5f60e11b612c9c565b6129aa81612d3b565b60006129b4612c4c565b6000838152600582016020526040902060078101549192509062ffffff161580156129ed575060078101546301000000900462ffffff16155b8015612a0757506007810154600160301b900462ffffff16155b612a895760405162461bcd60e51b815260206004820152604760248201527f43616e6e6f742072656d6f766520646570656e64656e6379207769746820616460448201527f646974696f6e616c2043444e732c207265706f7369746f726965732c206f72206064820152667363726970747360c81b608482015260a401610f87565b612a9660018301846131b2565b506000838152600583016020526040812081815590612ab86001830182613427565b612ac6600383016000613427565b612ad4600583016000613427565b5060070180546001600160481b031916905560405183907f60e2aa021c4f5303dd65e2173f0180636e4d42eaefc6187278e92bee9d06aa7290600090a2505050565b612b26637ce07d7360e11b612c9c565b612b2f82612d3b565b80612b38612c4c565b60008481526005919091016020526040902060030190612b589082613b95565b50817f774918414e4887efe5349a305fe253ee8b1e3fe0c2117012f0c215645693cbfd8260405161225291906134e7565b60606000612b95612c4c565b90506000612ba582600301612f12565b90506000816001600160401b03811115612bc157612bc1613547565b604051908082528060200260200182016040528015612bf457816020015b6060815260200190600190039081612bdf5790505b50905060005b82811015611d8557612c12611d506003860183612f1c565b828281518110612c2457612c24613aef565b6020908102919091010152600101612bfa565b6000610fc4612c44612c4c565b600301612f12565b7fb1832496845cc2c2d1bd0879f9ba0b1ef7ffcfdc79a541ee494477d8e10b9a3190565b80821061257c5760405162461bcd60e51b8152600401610f8790613cc8565b60606000610c03836131be565b612ca7333083610b56565b61298e5760405162461bcd60e51b815260206004820152601660248201527513db9b1e4810591b5a5b881050d308185b1b1bddd95960521b6044820152606401610f87565b805160000361298e5760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d656d70747920737472696e6760281b6044820152606401610f87565b612d5081612d47612c4c565b6001019061321a565b61298e5760405162461bcd60e51b815260206004820152601960248201527811195c195b99195b98de48191bd95cc81b9bdd08195e1a5cdd603a1b6044820152606401610f87565b612dad81612da4612c4c565b6003019061321a565b61298e5760405162461bcd60e51b815260206004820152601b60248201527a131a58d95b9cd9481d1e5c1948191bd95cc81b9bdd08195e1a5cdd602a1b6044820152606401610f87565b6000807f42797465636f646553746f726167655f56312e302e305f5f5f5f5f5f5f5f5f203084604051602001612e2f93929190613f7b565b60405160208183030381529060405290508051602082016000f091506001600160a01b038216612ea15760405162461bcd60e51b815260206004820152601e60248201527f436f6e7472616374417353746f726167653a205772697465204572726f7200006044820152606401610f87565b50919050565b606060005b828160ff1660208110612ec157612ec1613aef565b1a60f81b6001600160f81b03191615801590612ee0575060208160ff16105b15612ef75780612eef81613fdc565b915050612eac565b60405191506040820160405280825282602083015250919050565b600061075c825490565b6000610c038383613226565b612f3181612658565b61298e5760405162461bcd60e51b815260206004820152601b60248201527a10dbdc994818dbdb9d1c9858dd081b9bdd081cdd5c1c1bdc9d1959602a1b6044820152606401610f87565b6001600160a01b03811661298e5760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d7a65726f206164647265737360281b6044820152606401610f87565b60008060005b60208160ff16101561302f576000868260ff1660208110612ff857612ff8613aef565b1a9050801580159061300d575060808160ff16105b15613026578560ff168160ff1603613026578260010192505b50600101612fd5565b8360ff168260ff1614925050509392505050565b6000610c038383613250565b6000610c03836001600160a01b038416613250565b3361306d611c6f565b6001600160a01b031614611ab95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610f87565b6130cc8161329a565b806130d5612c4c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6000610c03836001600160a01b0384166132ec565b60208151111561298e5760405162461bcd60e51b815260206004820152600f60248201526e537472696e6720746f6f206c6f6e6760881b6044820152606401610f87565b8051600090829082036131655750600092915050565b50506020015190565b600054610100900460ff166131955760405162461bcd60e51b8152600401610f8790613ffb565b611ab96133df565b6000610c03836001600160a01b03841661340f565b6000610c0383836132ec565b60608160000180548060200260200160405190810160405280929190818152602001828054801561320e57602002820191906000526020600020905b8154815260200190600101908083116131fa575b50505050509050919050565b6000610c03838361340f565b600082600001828154811061323d5761323d613aef565b9060005260206000200154905092915050565b600061325c838361340f565b6132925750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561075c565b50600061075c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081815260018301602052604081205480156133d5576000613310600183613b05565b855490915060009061332490600190613b05565b905081811461338957600086600001828154811061334457613344613aef565b906000526020600020015490508087600001848154811061336757613367613aef565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061339a5761339a614046565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061075c565b600091505061075c565b600054610100900460ff166134065760405162461bcd60e51b8152600401610f8790613ffb565b611ab9336130c3565b60009081526001919091016020526040902054151590565b508054613433906139e1565b6000825580601f10613443575050565b601f01602090049060005260206000209081019061298e91905b80821115613471576000815560010161345d565b5090565b6000806040838503121561348857600080fd5b50508035926020909101359150565b60005b838110156134b257818101518382015260200161349a565b50506000910152565b600081518084526134d3816020860160208601613497565b601f01601f19169290920160200192915050565b602081526000610c0360208301846134bb565b6020808252825182820181905260009190848201906040850190845b8181101561353b5783516001600160a01b031683529284019291840191600101613516565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561358557613585613547565b604052919050565b60006001600160401b038211156135a6576135a6613547565b50601f01601f191660200190565b600082601f8301126135c557600080fd5b81356135d86135d38261358d565b61355d565b8181528460208386010111156135ed57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060006060848603121561361f57600080fd5b833592506020840135915060408401356001600160401b0381111561364357600080fd5b61364f868287016135b4565b9150509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b038116811461298e57600080fd5b60008060006060848603121561369757600080fd5b83356136a28161366d565b925060208401356136b28161366d565b915060408401356001600160e01b0319811681146136cf57600080fd5b809150509250925092565b6000602082840312156136ec57600080fd5b5035919050565b60006101208083526137078184018d6134bb565b9050828103602084015261371b818c6134bb565b9050828103604084015261372f818b6134bb565b905062ffffff808a166060850152838203608085015261374f828a6134bb565b915080881660a085015283820360c085015261376b82886134bb565b925085151560e085015280851661010085015250509a9950505050505050505050565b6000806000606084860312156137a357600080fd5b83356137ae8161366d565b95602085013595506040909401359392505050565b600080604083850312156137d657600080fd5b82356137e18161366d565b946020939093013593505050565b6000806040838503121561380257600080fd5b8235915060208301356138148161366d565b809150509250929050565b6000806040838503121561383257600080fd5b8235915060208301356001600160401b0381111561384f57600080fd5b61385b858286016135b4565b9150509250929050565b600080600080600060a0868803121561387d57600080fd5b853594506020860135935060408601356001600160401b03808211156138a257600080fd5b6138ae89838a016135b4565b945060608801359150808211156138c457600080fd5b6138d089838a016135b4565b935060808801359150808211156138e657600080fd5b506138f3888289016135b4565b9150509295509295909350565b60006020828403121561391257600080fd5b8135610c038161366d565b60006020828403121561392f57600080fd5b81356001600160401b0381111561394557600080fd5b610fa7848285016135b4565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156139a657603f198886030184526139948583516134bb565b94509285019290850190600101613978565b5092979650505050505050565b6000806000606084860312156139c857600080fd5b833592506020840135915060408401356136cf8161366d565b600181811c908216806139f557607f821691505b602082108103612ea157634e487b7160e01b600052602260045260246000fd5b60006020808385031215613a2857600080fd5b82516001600160401b0380821115613a3f57600080fd5b818501915085601f830112613a5357600080fd5b815181811115613a6557613a65613547565b8060051b9150613a7684830161355d565b8181529183018401918481019088841115613a9057600080fd5b938501935b83851015613aba5784519250613aaa8361366d565b8282529385019390850190613a95565b98975050505050505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561075c5761075c613ac6565b634e487b7160e01b600052603260045260246000fd5b8181038181111561075c5761075c613ac6565b600060018201613b2a57613b2a613ac6565b5060010190565b601f821115613b7b57600081815260208120601f850160051c81016020861015613b585750805b601f850160051c820191505b81811015613b7757828155600101613b64565b5050505b505050565b600019600383901b1c191660019190911b1790565b81516001600160401b03811115613bae57613bae613547565b613bc281613bbc84546139e1565b84613b31565b602080601f831160018114613bf15760008415613bdf5750858301515b613be98582613b80565b865550613b77565b600085815260208120601f198616915b82811015613c2057888601518255948401946001909101908401613c01565b5085821015613c3e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b604081526000613c6160408301856134bb565b90508260208301529392505050565b600060208284031215613c8257600080fd5b81518015158114610c0357600080fd5b600060208284031215613ca457600080fd5b5051919050565b600060208284031215613cbd57600080fd5b8151610c038161366d565b602080825260129082015271496e646578206f7574206f662072616e676560701b604082015260600190565b6000613d026135d38461358d565b9050828152838383011115613d1657600080fd5b610c03836020830184613497565b600082601f830112613d3557600080fd5b610c0383835160208501613cf4565b600080600060608486031215613d5957600080fd5b83516001600160401b0380821115613d7057600080fd5b613d7c87838801613d24565b94506020860151915080821115613d9257600080fd5b50613d9f86828701613d24565b925050604084015190509250925092565b62ffffff8181168382160190808211156111a3576111a3613ac6565b600060208284031215613dde57600080fd5b81516001600160401b03811115613df457600080fd5b8201601f81018413613e0557600080fd5b610fa784825160208401613cf4565b600060208284031215613e2657600080fd5b81516001600160401b03811115613e3c57600080fd5b610fa784828501613d24565b62ffffff8281168282160390808211156111a3576111a3613ac6565b606081526000613e7760608301866134bb565b8281036020840152613e8981866134bb565b90508281036040840152613e9d81856134bb565b9695505050505050565b818103613eb2575050565b613ebc82546139e1565b6001600160401b03811115613ed357613ed3613547565b613ee181613bbc84546139e1565b6000601f821160018114613f0f5760008315613efd5750848201545b613f078482613b80565b855550613f74565b600085815260209020601f19841690600086815260209020845b83811015613f495782860154825560019586019590910190602001613f29565b5085831015613f675781850154600019600388901b60f8161c191681555b50505060018360011b0184555b5050505050565b6a600b5981380380925939f360a81b8152607f60f91b600b820152600c81018490526000602c8201819052606084901b6001600160601b03191660388301528251613fcd81604c850160208701613497565b91909101604c01949350505050565b600060ff821660ff8103613ff257613ff2613ac6565b60010192915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052603160045260246000fdfe5d7871759f44bc77f64c9eb647afdcf4a49d2fbba70fc64411a3bdc750b05274f79e11fc86b9bf37d5dfd4359c053136f7c046da6a08f9cf7ca56d80d5aab839a2646970667358221220326589ba14d727ae0994d9a0528697bb8342bbef7d51ea532944df4512aa85c464736f6c63430008130033",
1428
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102865760003560e01c80638da5cb5b11610168578063c4d66de8116100d4578063c4d66de814610595578063caaa3bb7146105a8578063cc86ba4b146105bb578063cea2961a146105ce578063cfb51928146105e1578063dc33f4ae146105f4578063dfa3be5314610607578063f0b993821461061a578063f146f17f1461062d578063f2fde38b14610640578063f8ac18be14610653578063f9c0fae614610666578063fb5cd19b14610679578063fed37e821461068157600080fd5b80638da5cb5b146104b257806392b794db146104ba5780639532f2f4146104cd578063a0a82bd3146104e2578063a1a7a47b146104f5578063ad6b414d14610508578063b1d24cb21461051b578063b86b69f11461052e578063ba22851214610536578063be3d3ee614610549578063c07392701461055c578063c0cd565f1461056f578063c42ae8141461058257600080fd5b8062e879031461028b57806307f9f786146102b457806313762186146102c957806316a1012d146102de5780631a051d49146102f15780631e9bef4614610304578063230448b11461031957806325ffb3761461033c5780633e76919a1461036457806344346a5f14610377578063447b051a1461038d5780634a78a932146103a05780634bd1a387146103b35780634f5267ef146103c6578063518cb3df146103d957806352ccc021146103ec5780635668bc5e146103ff5780635710f83d14610412578063613d57fd1461042557806366d549a114610438578063675abe241461044b5780636dfa9f561461045e578063715018a61461047157806371b70a711461047957806381e7837c1461048c5780638b6ad1ec1461049f575b600080fd5b61029e610299366004613475565b610689565b6040516102ab91906134e7565b60405180910390f35b6102bc610762565b6040516102ab91906134fa565b6102dc6102d736600461360a565b610933565b005b6102dc6102ec36600461360a565b6109e4565b6102dc6102ff36600461360a565b610a8c565b61030c610b3d565b6040516102ab9190613659565b61032c610327366004613682565b610b56565b60405190151581526020016102ab565b61034f61034a3660046136da565b610c0a565b6040516102ab999897969594939291906136f3565b61030c6103723660046136da565b610e45565b61037f610faf565b6040519081526020016102ab565b6102dc61039b36600461378e565b610fc9565b61029e6103ae3660046137c3565b611057565b6102dc6103c13660046137ef565b6111aa565b6102dc6103d43660046137c3565b61127c565b61029e6103e7366004613475565b61135e565b6102dc6103fa3660046136da565b61155c565b61037f61040d3660046136da565b611681565b6102dc61042036600461381f565b6116ae565b61037f6104333660046136da565b611778565b6102dc610446366004613865565b61179e565b6102dc610459366004613900565b6118f4565b6102dc61046c366004613475565b6119a2565b6102dc611aa7565b61029e610487366004613475565b611abb565b6102dc61049a366004613900565b611b44565b6102dc6104ad366004613900565b611c00565b61030c611c6f565b61034f6104c836600461391d565b611c83565b6104d5611cc7565b6040516102ab9190613951565b6102dc6104f036600461381f565b611d8d565b6102dc610503366004613475565b611e55565b6102dc6105163660046136da565b611f34565b61029e6105293660046136da565b612039565b61037f61206c565b61037f610544366004613475565b612111565b6102dc61055736600461381f565b6121df565b6102dc61056a3660046136da565b61225e565b6102dc61057d3660046139b3565b612354565b6102dc61059036600461381f565b6123f5565b6102dc6105a3366004613900565b612465565b6102dc6105b636600461360a565b612580565b61029e6105c93660046136da565b61262a565b61032c6105dc366004613900565b612658565b61037f6105ef36600461391d565b6126ef565b6102dc61060236600461381f565b612703565b61030c610615366004613475565b6127a2565b61029e610628366004613475565b6127fd565b6102dc61063b36600461381f565b612855565b6102dc61064e366004613900565b612918565b6102dc6106613660046136da565b612991565b6102dc61067436600461381f565b612b16565b6104d5612b89565b61037f612c37565b60606000610695612c4c565b60008581526005919091016020526040902060078101549091506106bf90849062ffffff16612c70565b6000838152600282016020526040902080546106da906139e1565b80601f0160208091040260200160405190810160405280929190818152602001828054610706906139e1565b80156107535780601f1061072857610100808354040283529160200191610753565b820191906000526020600020905b81548152906001019060200180831161073657829003601f168201915b50505050509150505b92915050565b6060600061076e612c4c565b600a0160009054906101000a90046001600160a01b03166001600160a01b0316631676ddc36040518163ffffffff1660e01b8152600401600060405180830381865afa1580156107c2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107ea9190810190613a15565b805190915060006108046107fc612c4c565b600b01612c8f565b90506000815184516108169190613adc565b6001600160401b0381111561082d5761082d613547565b604051908082528060200260200182016040528015610856578160200160208202803683370190505b50805190915060005b8181101561092857848110156108c05785818151811061088157610881613aef565b602002602001015183828151811061089b5761089b613aef565b60200260200101906001600160a01b031690816001600160a01b031681525050610916565b836108cb8683613b05565b815181106108db576108db613aef565b60200260200101518382815181106108f5576108f5613aef565b60200260200101906001600160a01b031690816001600160a01b0316815250505b8061092081613b18565b91505061085f565b509095945050505050565b6109436309bb10c360e11b612c9c565b61094c81612cec565b61095583612d3b565b600061095f612c4c565b600085815260059190910160205260409020600781015490915061098990849062ffffff16612c70565b600083815260028201602052604090206109a38382613b95565b50837f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d83856040516109d6929190613c4e565b60405180910390a250505050565b6109f46316a1012d60e01b612c9c565b6109fd81612cec565b610a0683612d98565b6000610a10612c4c565b6000858152600691909101602052604090206001810154909150610a3a90849062ffffff16612c70565b610a4382612df7565b60008481526020839052604080822080546001600160a01b0319166001600160a01b0394909416939093179092559051859160008051602061405d83398151915291a250505050565b610a9c631a051d4960e01b612c9c565b610aa581612cec565b610aae83612d3b565b6000610ab8612c4c565b6000858152600591909101602052604090206007810154909150610ae9908490600160301b900462ffffff16612c70565b610af282612df7565b600084815260068301602052604080822080546001600160a01b0319166001600160a01b0394909416939093179092559051859160008051602061407d83398151915291a250505050565b6000610b47612c4c565b546001600160a01b0316919050565b600080610b61611c6f565b6001600160a01b031614158015610c005750610b7b612c4c565b546040516217798b60e61b81526001600160a01b03868116600483015285811660248301526001600160e01b031985166044830152909116906305de62c0906064016020604051808303816000875af1158015610bdc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c009190613c70565b90505b9392505050565b606080606060006060600060606000806000610c24612c4c565b60008c8152600591909101602052604090209050610c418b612ea7565b8154610c4c90612ea7565b6007830154600184018054909162ffffff8082169260038801926301000000810483169260058a0192600160301b90920416801515918790610c8d906139e1565b80601f0160208091040260200160405190810160405280929190818152602001828054610cb9906139e1565b8015610d065780601f10610cdb57610100808354040283529160200191610d06565b820191906000526020600020905b815481529060010190602001808311610ce957829003601f168201915b50505050509650848054610d19906139e1565b80601f0160208091040260200160405190810160405280929190818152602001828054610d45906139e1565b8015610d925780601f10610d6757610100808354040283529160200191610d92565b820191906000526020600020905b815481529060010190602001808311610d7557829003601f168201915b50505050509450828054610da5906139e1565b80601f0160208091040260200160405190810160405280929190818152602001828054610dd1906139e1565b8015610e1e5780601f10610df357610100808354040283529160200191610e1e565b820191906000526020600020905b815481529060010190602001808311610e0157829003601f168201915b50505050509250995099509950995099509950995099509950509193959799909294969850565b600080610e50612c4c565b600a0160009054906101000a90046001600160a01b03166001600160a01b0316637ac4f3296040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ea4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec89190613c92565b905080831015610f4857610eda612c4c565b600a0154604051631ef6bdbf60e21b8152600481018590526001600160a01b0390911690637bdaf6fc90602401602060405180830381865afa158015610f24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c039190613cab565b6000610f5d610f55612c4c565b600b01612f12565b9050610f698183613adc565b8410610f905760405162461bcd60e51b8152600401610f8790613cc8565b60405180910390fd5b610fa7828503610f9e612c4c565b600b0190612f1c565b949350505050565b6000610fc4610fbc612c4c565b600101612f12565b905090565b610fd963223d828d60e11b612c9c565b610fe281612d3b565b610feb83612f28565b80610ff4612c4c565b6001600160a01b03851660008181526009929092016020908152604080842087855282529283902093909355905183815284927ff2f4de0c34a4899f5cf7a30aced71b0c27f629f80fb61efc06c7a12ecabdb7ba910160405180910390a3505050565b606061106283612f28565b600061106c612c4c565b6001600160a01b038516600090815260099190910160209081526040808320868452909152902054905080156110ad576110a581612ea7565b91505061075c565b604051633ae7357560e21b8152600481018490526001600160a01b0385169063eb9cd5d490602401600060405180830381865afa92505050801561111357506040513d6000823e601f3d908101601f191682016040526111109190810190613d44565b60015b6111975760405162461bcd60e51b815260206004820152604960248201527f436f6e747261637420646f6573206e6f7420696d706c656d656e742070726f6a60448201527f65637453637269707444657461696c7320616e6420686173206e6f206f7665726064820152683934b2329039b2ba1760b91b608482015260a401610f87565b8294505050505061075c565b5092915050565b6111ba634bd1a38760e01b612c9c565b6111c381612f7b565b6111cc82612d3b565b60006111d6612c4c565b600084815260059190910160209081526040808320600781018054600160301b9081900462ffffff9081168752600684019095529290942080546001600160a01b0319166001600160a01b03881617905592549293506112399204166001613db0565b60078201805462ffffff92909216600160301b0262ffffff60301b19909216919091179055604051839060008051602061407d83398151915290600090a2505050565b61128c634f5267ef60e01b612c9c565b6000611296612c4c565b6001600160a01b038416600090815260098201602090815260408083208684529091529020549091506113095760405162461bcd60e51b815260206004820152601b60248201527a139bc81bdd995c9c9a5919481cd95d08199bdc881c1c9bda9958dd602a1b6044820152606401610f87565b6001600160a01b03831660008181526009830160209081526040808320868452909152808220829055518492917f618154ee1a16009759db8e59ff744e79dd094831be73c4b9383f885678c20b7391a3505050565b6060600061136a612c4c565b600085815260059190910160205260409020600781015490915061139b908490600160301b900462ffffff16612c70565b600083815260068201602052604080822054905163cc31a33160e01b81526001600160a01b03909116919073__$55f4e50e6128becd8bf164b272db98df09$__9063cc31a331906113f0908590600401613659565b602060405180830381865af415801561140d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114319190613c92565b90507f554e4b4e4f574e5f56455253494f4e5f535452494e475f5f5f5f5f5f5f5f5f2081036114e057604051632475d70960e01b815273__$55f4e50e6128becd8bf164b272db98df09$__90632475d70990611491908590600401613659565b600060405180830381865af41580156114ae573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114d69190810190613dcc565b935050505061075c565b604051630eacc5e760e31b815273__$55f4e50e6128becd8bf164b272db98df09$__906375662f3890611517908590600401613659565b600060405180830381865af4158015611534573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114d69190810190613e14565b61156c6352ccc02160e01b612c9c565b61157581612d3b565b600061157f612c4c565b6000838152600591909101602052604090206007810154909150600160301b900462ffffff166115f15760405162461bcd60e51b815260206004820152601e60248201527f746865726520617265206e6f207363726970747320746f2072656d6f766500006044820152606401610f87565b6007810154600682019060009061161690600190600160301b900462ffffff16613e48565b62ffffff908116825260208201929092526040908101600090812080546001600160a01b031916905560078401805462ffffff60301b198116600160301b91829004861660001901909516029390931790925551839160008051602061407d83398151915291a25050565b600061168b612c4c565b6000928352600501602052506040902060070154600160301b900462ffffff1690565b6116be635710f83d60e01b612c9c565b6116c781612cec565b6116d082612d3b565b60006116da612c4c565b60008481526005919091016020908152604080832060078101546301000000900462ffffff168085526004820190935292209192509061171a8482613b95565b50611726816001613adc565b8260070160036101000a81548162ffffff021916908362ffffff160217905550837ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde84836040516109d6929190613c4e565b6000611782612c4c565b600092835260060160205250604090206001015462ffffff1690565b6117ae6366d549a160e01b612c9c565b6117b784612d98565b6117c48560406001612fcf565b61180d5760405162461bcd60e51b815260206004820152601a60248201527901b5d5cdd0818dbdb9d185a5b88195e1858dd1b1e481bdb9948160361b6044820152606401610f87565b6000611817612c4c565b90506118266001820187613043565b61186e5760405162461bcd60e51b8152602060048201526019602482015278446570656e64656e637920616c72656164792065786973747360381b6044820152606401610f87565b600086815260058201602052604090208581556001810161188f8682613b95565b506003810161189e8582613b95565b50600581016118ad8482613b95565b5085877f14d15ecf0e955bdd7a921efba642deef4d718696d3fc369454c84817fed0fb778787876040516118e393929190613e64565b60405180910390a350505050505050565b6119046319d6af8960e21b612c9c565b61190d81612f7b565b61192281611919612c4c565b600b019061304f565b61196b5760405162461bcd60e51b815260206004820152601a60248201527910dbdb9d1c9858dd08185b1c9958591e481cdd5c1c1bdc9d195960321b6044820152606401610f87565b6040516001600160a01b038216907f85796181e67d093fd8fc344cdf114629c14c1396c47bfd9cda9392285e74d43f90600090a250565b6119b26336fd4fab60e11b612c9c565b6119bb82612d3b565b60006119c5612c4c565b600084815260058201602052604090206007810154919250906301000000900462ffffff166119f48482612c70565b6000611a01600183613b05565b60008781526005860160209081526040808320848452600490810183528184208a8552908801909252909120919250611a3a9082613ea7565b5060008181526004840160205260408120611a5491613427565b60078301805465ffffff0000001916630100000062ffffff841602179055604051859087907fc02725dfc9639e3399432cdae3db1c062229f4cc41bcc18631517617c020b71c90600090a3505050505050565b611aaf613064565b611ab960006130c3565b565b60606000611ac7612c4c565b6000858152600691909101602052604090206001810154909150611af190849062ffffff16612c70565b60008381526020829052604080822054905163cc31a33160e01b81526001600160a01b03909116919073__$55f4e50e6128becd8bf164b272db98df09$__9063cc31a331906113f0908590600401613659565b611b54632079e0df60e21b612c9c565b611b6981611b60612c4c565b600b01906130f6565b611bc95760405162461bcd60e51b815260206004820152602b60248201527f436f726520636f6e747261637420616c72656164792072656d6f766564206f7260448201526a081b9bdd081a5b881cd95d60aa1b6064820152608401610f87565b6040516001600160a01b038216907f24f057e6bd463ac72bb963a1e55a41494d252695f97a7671c2b7018345eb31f790600090a250565b611c106322dab47b60e21b612c9c565b611c1981612f7b565b80611c22612c4c565b600a0180546001600160a01b0319166001600160a01b03928316179055604051908216907f38429341ba977e6c97809dd9fed1f58cf5c409bfe8132475b3f73bda02dd84f690600090a250565b6000610fc46033546001600160a01b031690565b60608060606000606060006060600080611c9c8a61310b565b611ca861034a8b61314f565b9850985098509850985098509850985098509193959799909294969850565b60606000611cd3612c4c565b90506000611ce382600101612f12565b90506000816001600160401b03811115611cff57611cff613547565b604051908082528060200260200182016040528015611d3257816020015b6060815260200190600190039081611d1d5790505b50905060005b82811015611d8557611d55611d506001860183612f1c565b612ea7565b828281518110611d6757611d67613aef565b60200260200101819052508080611d7d90613b18565b915050611d38565b509392505050565b611d9d63a0a82bd360e01b612c9c565b611da681612cec565b611daf82612d98565b6000611db9612c4c565b6000848152600691909101602052604090209050611dd682612df7565b6001828101805462ffffff908116600090815260208690526040902080546001600160a01b0319166001600160a01b03959095169490941790935554611e1d921690613db0565b60018201805462ffffff191662ffffff92909216919091179055604051839060008051602061405d83398151915290600090a2505050565b611e6563a1a7a47b60e01b612c9c565b611e6e82612d3b565b6000611e78612c4c565b600084815260059190910160205260409020600781015490915062ffffff16611ea18382612c70565b6000611eae600183613b05565b60008181526002850160205260408082208783529120919250611ed19082613ea7565b5060008181526002840160205260408120611eeb91613427565b60078301805462ffffff191662ffffff8316179055604051849086907f225454b600cf489553fde6e3b7f5e458b1093c035390b678067ea799b3b016cd90600090a35050505050565b611f4463ad6b414d60e01b612c9c565b611f4d81612d98565b6000611f57612c4c565b600083815260069190910160205260409020600181015490915062ffffff1680611fce5760405162461bcd60e51b815260206004820152602260248201527f5468657265206973206e6f206c6963656e7365207465787420746f2072656d6f604482015261766560f01b6064820152608401610f87565b816000611fdc600184613e48565b62ffffff908116825260208201929092526040908101600090812080546001600160a01b031916905560018501805462ffffff191660001986019094169390931790925551849160008051602061405d83398151915291a2505050565b60606000612045612c4c565b905061205c8361205783600101612f12565b612c70565b610c03611d506001830185612f1c565b600080612077612c4c565b600a0160009054906101000a90046001600160a01b03166001600160a01b0316637ac4f3296040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120ef9190613c92565b905060006120fe610f55612c4c565b905061210a8183613adc565b9250505090565b60008061211c612c4c565b600085815260059190910160205260409020600781015490915061214d908490600160301b900462ffffff16612c70565b60008381526006820160205260409081902054905163cc31a33160e01b815273__$55f4e50e6128becd8bf164b272db98df09$__9163cc31a3319161219e916001600160a01b031690600401613659565b602060405180830381865af41580156121bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fa79190613c92565b6121ef635f1e9f7360e11b612c9c565b6121f882612d3b565b80612201612c4c565b600084815260059190910160205260409020600101906122219082613b95565b50817fc9890a31ec780bb5a8a017d683d3913f97260548d71c2cee78194ed2833f02358260405161225291906134e7565b60405180910390a25050565b61226e630c07392760e41b612c9c565b806122c75760405162461bcd60e51b815260206004820152602360248201527f4c6963656e736520747970652063616e6e6f7420626520656d70747920737472604482015262696e6760e81b6064820152608401610f87565b6122dc816122d3612c4c565b60030190613043565b6123265760405162461bcd60e51b815260206004820152601b60248201527a4c6963656e7365207479706520616c72656164792065786973747360281b6044820152606401610f87565b60405181907fad5dcce4588345db351371d105540f3fb69966f418d923539f19d5f44a1cfc4b90600090a250565b61236463c0cd565f60e01b612c9c565b61236d81612f7b565b61237683612d3b565b6000612380612c4c565b60008581526005919091016020526040902060078101549091506123b1908490600160301b900462ffffff16612c70565b600083815260068201602052604080822080546001600160a01b0319166001600160a01b03861617905551859160008051602061407d83398151915291a250505050565b61240563310aba0560e21b612c9c565b61240e82612d3b565b80612417612c4c565b600084815260059182016020526040902001906124349082613b95565b50817f94747dffac14b8b9a15e699c998cc8f42ad81f21ae95e155c8a1c49403117b8b8260405161225291906134e7565b600054610100900460ff16158080156124855750600054600160ff909116105b8061249f5750303b15801561249f575060005460ff166001145b6125025760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610f87565b6000805460ff191660011790558015612525576000805461ff0019166101001790555b61252d61316e565b612536826130c3565b801561257c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b61259063caaa3bb760e01b612c9c565b61259981612cec565b6125a283612d3b565b60006125ac612c4c565b60008581526005919091016020526040902060078101549091506125dd9084906301000000900462ffffff16612c70565b600083815260048201602052604090206125f78382613b95565b50837ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde83856040516109d6929190613c4e565b60606000612636612c4c565b90506126488361205783600301612f12565b610c03611d506003830185612f1c565b6000612662612c4c565b600a015460405163f1052af560e01b81526001600160a01b039091169063f1052af590612693908590600401613659565b602060405180830381865afa1580156126b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d49190613c70565b8061075c575061075c826126e6612c4c565b600b019061319d565b60006126fa8261310b565b61075c8261314f565b612713636e19fa5760e11b612c9c565b61271c81612cec565b61272582612d3b565b600061272f612c4c565b600084815260059190910160205260409020905061274c82612df7565b600782018054600160301b9081900462ffffff9081166000908152600686016020526040902080546001600160a01b0319166001600160a01b039590951694909417909355905461123992919004166001613db0565b6000806127ad612c4c565b60008581526005919091016020526040902060078101549091506127de908490600160301b900462ffffff16612c70565b60009283526006016020525060409020546001600160a01b0316919050565b60606000612809612c4c565b600085815260059190910160205260409020600781015490915061283a9084906301000000900462ffffff16612c70565b6000838152600482016020526040902080546106da906139e1565b61286563f146f17f60e01b612c9c565b61286e81612cec565b61287782612d3b565b6000612881612c4c565b600084815260059190910160209081526040808320600781015462ffffff16808552600282019093529220919250906128ba8482613b95565b506128c6816001613adc565b8260070160006101000a81548162ffffff021916908362ffffff160217905550837f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d84836040516109d6929190613c4e565b612920613064565b6001600160a01b0381166129855760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610f87565b61298e816130c3565b50565b6129a1637c560c5f60e11b612c9c565b6129aa81612d3b565b60006129b4612c4c565b6000838152600582016020526040902060078101549192509062ffffff161580156129ed575060078101546301000000900462ffffff16155b8015612a0757506007810154600160301b900462ffffff16155b612a895760405162461bcd60e51b815260206004820152604760248201527f43616e6e6f742072656d6f766520646570656e64656e6379207769746820616460448201527f646974696f6e616c2043444e732c207265706f7369746f726965732c206f72206064820152667363726970747360c81b608482015260a401610f87565b612a9660018301846131b2565b506000838152600583016020526040812081815590612ab86001830182613427565b612ac6600383016000613427565b612ad4600583016000613427565b5060070180546001600160481b031916905560405183907f60e2aa021c4f5303dd65e2173f0180636e4d42eaefc6187278e92bee9d06aa7290600090a2505050565b612b26637ce07d7360e11b612c9c565b612b2f82612d3b565b80612b38612c4c565b60008481526005919091016020526040902060030190612b589082613b95565b50817f774918414e4887efe5349a305fe253ee8b1e3fe0c2117012f0c215645693cbfd8260405161225291906134e7565b60606000612b95612c4c565b90506000612ba582600301612f12565b90506000816001600160401b03811115612bc157612bc1613547565b604051908082528060200260200182016040528015612bf457816020015b6060815260200190600190039081612bdf5790505b50905060005b82811015611d8557612c12611d506003860183612f1c565b828281518110612c2457612c24613aef565b6020908102919091010152600101612bfa565b6000610fc4612c44612c4c565b600301612f12565b7fb1832496845cc2c2d1bd0879f9ba0b1ef7ffcfdc79a541ee494477d8e10b9a3190565b80821061257c5760405162461bcd60e51b8152600401610f8790613cc8565b60606000610c03836131be565b612ca7333083610b56565b61298e5760405162461bcd60e51b815260206004820152601660248201527513db9b1e4810591b5a5b881050d308185b1b1bddd95960521b6044820152606401610f87565b805160000361298e5760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d656d70747920737472696e6760281b6044820152606401610f87565b612d5081612d47612c4c565b6001019061321a565b61298e5760405162461bcd60e51b815260206004820152601960248201527811195c195b99195b98de48191bd95cc81b9bdd08195e1a5cdd603a1b6044820152606401610f87565b612dad81612da4612c4c565b6003019061321a565b61298e5760405162461bcd60e51b815260206004820152601b60248201527a131a58d95b9cd9481d1e5c1948191bd95cc81b9bdd08195e1a5cdd602a1b6044820152606401610f87565b6000807f42797465636f646553746f726167655f56312e302e305f5f5f5f5f5f5f5f5f203084604051602001612e2f93929190613f7b565b60405160208183030381529060405290508051602082016000f091506001600160a01b038216612ea15760405162461bcd60e51b815260206004820152601e60248201527f436f6e7472616374417353746f726167653a205772697465204572726f7200006044820152606401610f87565b50919050565b606060005b828160ff1660208110612ec157612ec1613aef565b1a60f81b6001600160f81b03191615801590612ee0575060208160ff16105b15612ef75780612eef81613fdc565b915050612eac565b60405191506040820160405280825282602083015250919050565b600061075c825490565b6000610c038383613226565b612f3181612658565b61298e5760405162461bcd60e51b815260206004820152601b60248201527a10dbdc994818dbdb9d1c9858dd081b9bdd081cdd5c1c1bdc9d1959602a1b6044820152606401610f87565b6001600160a01b03811661298e5760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d7a65726f206164647265737360281b6044820152606401610f87565b60008060005b60208160ff16101561302f576000868260ff1660208110612ff857612ff8613aef565b1a9050801580159061300d575060808160ff16105b15613026578560ff168160ff1603613026578260010192505b50600101612fd5565b8360ff168260ff1614925050509392505050565b6000610c038383613250565b6000610c03836001600160a01b038416613250565b3361306d611c6f565b6001600160a01b031614611ab95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610f87565b6130cc8161329a565b806130d5612c4c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6000610c03836001600160a01b0384166132ec565b60208151111561298e5760405162461bcd60e51b815260206004820152600f60248201526e537472696e6720746f6f206c6f6e6760881b6044820152606401610f87565b8051600090829082036131655750600092915050565b50506020015190565b600054610100900460ff166131955760405162461bcd60e51b8152600401610f8790613ffb565b611ab96133df565b6000610c03836001600160a01b03841661340f565b6000610c0383836132ec565b60608160000180548060200260200160405190810160405280929190818152602001828054801561320e57602002820191906000526020600020905b8154815260200190600101908083116131fa575b50505050509050919050565b6000610c03838361340f565b600082600001828154811061323d5761323d613aef565b9060005260206000200154905092915050565b600061325c838361340f565b6132925750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561075c565b50600061075c565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081815260018301602052604081205480156133d5576000613310600183613b05565b855490915060009061332490600190613b05565b905081811461338957600086600001828154811061334457613344613aef565b906000526020600020015490508087600001848154811061336757613367613aef565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061339a5761339a614046565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061075c565b600091505061075c565b600054610100900460ff166134065760405162461bcd60e51b8152600401610f8790613ffb565b611ab9336130c3565b60009081526001919091016020526040902054151590565b508054613433906139e1565b6000825580601f10613443575050565b601f01602090049060005260206000209081019061298e91905b80821115613471576000815560010161345d565b5090565b6000806040838503121561348857600080fd5b50508035926020909101359150565b60005b838110156134b257818101518382015260200161349a565b50506000910152565b600081518084526134d3816020860160208601613497565b601f01601f19169290920160200192915050565b602081526000610c0360208301846134bb565b6020808252825182820181905260009190848201906040850190845b8181101561353b5783516001600160a01b031683529284019291840191600101613516565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561358557613585613547565b604052919050565b60006001600160401b038211156135a6576135a6613547565b50601f01601f191660200190565b600082601f8301126135c557600080fd5b81356135d86135d38261358d565b61355d565b8181528460208386010111156135ed57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060006060848603121561361f57600080fd5b833592506020840135915060408401356001600160401b0381111561364357600080fd5b61364f868287016135b4565b9150509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b038116811461298e57600080fd5b60008060006060848603121561369757600080fd5b83356136a28161366d565b925060208401356136b28161366d565b915060408401356001600160e01b0319811681146136cf57600080fd5b809150509250925092565b6000602082840312156136ec57600080fd5b5035919050565b60006101208083526137078184018d6134bb565b9050828103602084015261371b818c6134bb565b9050828103604084015261372f818b6134bb565b905062ffffff808a166060850152838203608085015261374f828a6134bb565b915080881660a085015283820360c085015261376b82886134bb565b925085151560e085015280851661010085015250509a9950505050505050505050565b6000806000606084860312156137a357600080fd5b83356137ae8161366d565b95602085013595506040909401359392505050565b600080604083850312156137d657600080fd5b82356137e18161366d565b946020939093013593505050565b6000806040838503121561380257600080fd5b8235915060208301356138148161366d565b809150509250929050565b6000806040838503121561383257600080fd5b8235915060208301356001600160401b0381111561384f57600080fd5b61385b858286016135b4565b9150509250929050565b600080600080600060a0868803121561387d57600080fd5b853594506020860135935060408601356001600160401b03808211156138a257600080fd5b6138ae89838a016135b4565b945060608801359150808211156138c457600080fd5b6138d089838a016135b4565b935060808801359150808211156138e657600080fd5b506138f3888289016135b4565b9150509295509295909350565b60006020828403121561391257600080fd5b8135610c038161366d565b60006020828403121561392f57600080fd5b81356001600160401b0381111561394557600080fd5b610fa7848285016135b4565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156139a657603f198886030184526139948583516134bb565b94509285019290850190600101613978565b5092979650505050505050565b6000806000606084860312156139c857600080fd5b833592506020840135915060408401356136cf8161366d565b600181811c908216806139f557607f821691505b602082108103612ea157634e487b7160e01b600052602260045260246000fd5b60006020808385031215613a2857600080fd5b82516001600160401b0380821115613a3f57600080fd5b818501915085601f830112613a5357600080fd5b815181811115613a6557613a65613547565b8060051b9150613a7684830161355d565b8181529183018401918481019088841115613a9057600080fd5b938501935b83851015613aba5784519250613aaa8361366d565b8282529385019390850190613a95565b98975050505050505050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561075c5761075c613ac6565b634e487b7160e01b600052603260045260246000fd5b8181038181111561075c5761075c613ac6565b600060018201613b2a57613b2a613ac6565b5060010190565b601f821115613b7b57600081815260208120601f850160051c81016020861015613b585750805b601f850160051c820191505b81811015613b7757828155600101613b64565b5050505b505050565b600019600383901b1c191660019190911b1790565b81516001600160401b03811115613bae57613bae613547565b613bc281613bbc84546139e1565b84613b31565b602080601f831160018114613bf15760008415613bdf5750858301515b613be98582613b80565b865550613b77565b600085815260208120601f198616915b82811015613c2057888601518255948401946001909101908401613c01565b5085821015613c3e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b604081526000613c6160408301856134bb565b90508260208301529392505050565b600060208284031215613c8257600080fd5b81518015158114610c0357600080fd5b600060208284031215613ca457600080fd5b5051919050565b600060208284031215613cbd57600080fd5b8151610c038161366d565b602080825260129082015271496e646578206f7574206f662072616e676560701b604082015260600190565b6000613d026135d38461358d565b9050828152838383011115613d1657600080fd5b610c03836020830184613497565b600082601f830112613d3557600080fd5b610c0383835160208501613cf4565b600080600060608486031215613d5957600080fd5b83516001600160401b0380821115613d7057600080fd5b613d7c87838801613d24565b94506020860151915080821115613d9257600080fd5b50613d9f86828701613d24565b925050604084015190509250925092565b62ffffff8181168382160190808211156111a3576111a3613ac6565b600060208284031215613dde57600080fd5b81516001600160401b03811115613df457600080fd5b8201601f81018413613e0557600080fd5b610fa784825160208401613cf4565b600060208284031215613e2657600080fd5b81516001600160401b03811115613e3c57600080fd5b610fa784828501613d24565b62ffffff8281168282160390808211156111a3576111a3613ac6565b606081526000613e7760608301866134bb565b8281036020840152613e8981866134bb565b90508281036040840152613e9d81856134bb565b9695505050505050565b818103613eb2575050565b613ebc82546139e1565b6001600160401b03811115613ed357613ed3613547565b613ee181613bbc84546139e1565b6000601f821160018114613f0f5760008315613efd5750848201545b613f078482613b80565b855550613f74565b600085815260209020601f19841690600086815260209020845b83811015613f495782860154825560019586019590910190602001613f29565b5085831015613f675781850154600019600388901b60f8161c191681555b50505060018360011b0184555b5050505050565b6a600b5981380380925939f360a81b8152607f60f91b600b820152600c81018490526000602c8201819052606084901b6001600160601b03191660388301528251613fcd81604c850160208701613497565b91909101604c01949350505050565b600060ff821660ff8103613ff257613ff2613ac6565b60010192915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052603160045260246000fdfe5d7871759f44bc77f64c9eb647afdcf4a49d2fbba70fc64411a3bdc750b05274f79e11fc86b9bf37d5dfd4359c053136f7c046da6a08f9cf7ca56d80d5aab839a2646970667358221220326589ba14d727ae0994d9a0528697bb8342bbef7d51ea532944df4512aa85c464736f6c63430008130033",
1189
1429
  "linkReferences": {
1190
1430
  "contracts/libs/v0.8.x/BytecodeStorageV1.sol": {
1191
1431
  "BytecodeStorageReader": [
1192
1432
  {
1193
1433
  "length": 20,
1194
- "start": 3852
1434
+ "start": 5096
1195
1435
  },
1196
1436
  {
1197
1437
  "length": 20,
1198
- "start": 4013
1438
+ "start": 5257
1199
1439
  },
1200
1440
  {
1201
1441
  "length": 20,
1202
- "start": 4147
1442
+ "start": 5391
1203
1443
  },
1204
1444
  {
1205
1445
  "length": 20,
1206
- "start": 5823
1446
+ "start": 6972
1447
+ },
1448
+ {
1449
+ "length": 20,
1450
+ "start": 8590
1207
1451
  }
1208
1452
  ]
1209
1453
  }
@@ -1213,19 +1457,23 @@
1213
1457
  "BytecodeStorageReader": [
1214
1458
  {
1215
1459
  "length": 20,
1216
- "start": 3820
1460
+ "start": 5064
1461
+ },
1462
+ {
1463
+ "length": 20,
1464
+ "start": 5225
1217
1465
  },
1218
1466
  {
1219
1467
  "length": 20,
1220
- "start": 3981
1468
+ "start": 5359
1221
1469
  },
1222
1470
  {
1223
1471
  "length": 20,
1224
- "start": 4115
1472
+ "start": 6940
1225
1473
  },
1226
1474
  {
1227
1475
  "length": 20,
1228
- "start": 5791
1476
+ "start": 8558
1229
1477
  }
1230
1478
  ]
1231
1479
  }