@artblocks/contracts 1.0.3 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (383) hide show
  1. package/README.md +32 -25
  2. package/artifacts/contracts/AdminACLV0.sol/AdminACLV0.json +2 -2
  3. package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +2 -2
  4. package/artifacts/contracts/DependencyRegistryV0.sol/DependencyRegistryV0.json +212 -17
  5. package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +6 -6
  6. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV0.sol/MinterDAExpV0.json +2 -2
  7. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV1.sol/MinterDAExpV1.json +2 -2
  8. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +2 -2
  9. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +2 -2
  10. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +2 -2
  11. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol/MinterDAExpSettlementV1.json +2 -2
  12. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV0.sol/MinterDALinV0.json +2 -2
  13. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV1.sol/MinterDALinV1.json +2 -2
  14. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +2 -2
  15. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +2 -2
  16. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV0.sol/MinterHolderV0.json +2 -2
  17. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol/MinterHolderV1.json +2 -2
  18. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +2 -2
  19. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +2 -2
  20. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV0.sol/MinterMerkleV0.json +2 -2
  21. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol/MinterMerkleV1.json +2 -2
  22. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol/MinterMerkleV2.json +2 -2
  23. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +2 -2
  24. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +2 -2
  25. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV0.sol/MinterSetPriceV0.json +2 -2
  26. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV1.sol/MinterSetPriceV1.json +2 -2
  27. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +2 -2
  28. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +2 -2
  29. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol/MinterSetPriceERC20V0.json +2 -2
  30. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol/MinterSetPriceERC20V1.json +2 -2
  31. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +2 -2
  32. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +2 -2
  33. package/artifacts/contracts/engine/V2/GenArt721CoreV2_ENGINE_FLEX.sol/GenArt721CoreV2_ENGINE_FLEX.json +2 -2
  34. package/artifacts/contracts/engine/V2/GenArt721CoreV2_PBAB.sol/GenArt721CoreV2_PBAB.json +2 -2
  35. package/artifacts/contracts/engine/V2/GenArt721CoreV2_PRTNR.sol/GenArt721CoreV2_PRTNR.json +2 -2
  36. package/artifacts/contracts/engine/V2/GenArt721MinterBurner_PBAB.sol/GenArt721MinterBurner_PBAB.json +2 -2
  37. package/artifacts/contracts/engine/V2/GenArt721MinterDAExp_PBAB.sol/GenArt721MinterDAExp_PBAB.json +2 -2
  38. package/artifacts/contracts/engine/V2/GenArt721Minter_PBAB.sol/GenArt721Minter_PBAB.json +2 -2
  39. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +6 -11
  40. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +6 -11
  41. package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +6 -11
  42. package/artifacts/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol/AdminACLV0_PROHIBITION.json +2 -2
  43. package/artifacts/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol/GenArt721CoreV3_Engine_Flex_PROHIBITION.json +6 -11
  44. package/artifacts/contracts/engine-registry/CoreRegistryV1.sol/CoreRegistryV1.json +12 -12
  45. package/artifacts/contracts/engine-registry/EngineRegistryV0.sol/EngineRegistryV0.json +2 -2
  46. package/artifacts/contracts/explorations/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +6 -6
  47. package/artifacts/contracts/interfaces/{0.5.x → v0.5.x}/IBonusContract.sol/IBonusContract.json +1 -1
  48. package/artifacts/contracts/interfaces/{0.5.x → v0.5.x}/IGenArt721CoreContractV1.sol/IGenArt721CoreContractV1.json +1 -1
  49. package/artifacts/contracts/interfaces/{0.5.x → v0.5.x}/IGenArt721CoreV2_PBAB.sol/IGenArt721CoreV2_PBAB.json +1 -1
  50. package/artifacts/contracts/interfaces/{0.5.x → v0.5.x}/IRandomizer.sol/IRandomizer.json +1 -1
  51. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IAdminACLV0.sol/IAdminACLV0.json +1 -1
  52. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IArtblocksRoyaltyOverride.sol/IArtblocksRoyaltyOverride.json +1 -1
  53. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IBonusContract.sol/IBonusContract.json +1 -1
  54. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IBytecodeStorageReader.sol/IBytecodeStorageReader.json +1 -1
  55. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/ICoreRegistryV1.sol/ICoreRegistryV1.json +7 -7
  56. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IDelegationRegistry.sol/IDelegationRegistry.json +1 -1
  57. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IDependencyRegistryCompatibleV0.sol/IDependencyRegistryCompatibleV0.json +1 -1
  58. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +22 -3
  59. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IEngineRegistryV0.sol/IEngineRegistryV0.json +1 -1
  60. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlementV0.sol/IFilteredMinterDAExpSettlementV0.json +1 -1
  61. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlementV1.sol/IFilteredMinterDAExpSettlementV1.json +1 -1
  62. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlement_Mixin.sol/IFilteredMinterDAExpSettlement_Mixin.json +1 -1
  63. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpV0.sol/IFilteredMinterDAExpV0.json +1 -1
  64. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpV1.sol/IFilteredMinterDAExpV1.json +1 -1
  65. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDALinV0.sol/IFilteredMinterDALinV0.json +1 -1
  66. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDALinV1.sol/IFilteredMinterDALinV1.json +1 -1
  67. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV0.sol/IFilteredMinterHolderV0.json +1 -1
  68. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV1.sol/IFilteredMinterHolderV1.json +1 -1
  69. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV2.sol/IFilteredMinterHolderV2.json +1 -1
  70. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV0.sol/IFilteredMinterMerkleV0.json +1 -1
  71. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV1.sol/IFilteredMinterMerkleV1.json +1 -1
  72. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV2.sol/IFilteredMinterMerkleV2.json +1 -1
  73. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterSEAV0.sol/IFilteredMinterSEAV0.json +1 -1
  74. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV0.sol/IFilteredMinterV0.json +1 -1
  75. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV1.sol/IFilteredMinterV1.json +1 -1
  76. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV2.sol/IFilteredMinterV2.json +1 -1
  77. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractExposesHashSeed.sol/IGenArt721CoreContractExposesHashSeed.json +1 -1
  78. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV1.sol/IGenArt721CoreContractV1.json +1 -1
  79. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +1 -1
  80. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3WithSharedRandomizer.sol/IGenArt721CoreContractV3WithSharedRandomizer.json +24 -0
  81. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +1 -1
  82. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +1 -1
  83. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +1 -1
  84. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreV2_PBAB.sol/IGenArt721CoreV2_PBAB.json +1 -1
  85. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IManifold.sol/IManifold.json +1 -1
  86. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IMinterBaseV0.sol/IMinterBaseV0.json +1 -1
  87. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IMinterFilterV0.sol/IMinterFilterV0.json +1 -1
  88. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IMinterFilterV1.sol/IMinterFilterV1.json +104 -19
  89. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IMintingAPICoreV0.sol/IMintingAPICoreV0.json +1 -1
  90. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IMintingAPIMinterV0.sol/IMintingAPIMinterV0.json +1 -1
  91. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IPseudorandomAtomic.sol/IPseudorandomAtomic.json +1 -1
  92. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizer.sol/IRandomizer.json +1 -1
  93. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizerPolyptychV0.sol/IRandomizerPolyptychV0.json +1 -1
  94. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizerV2.sol/IRandomizerV2.json +1 -1
  95. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizer_V3CoreBase.sol/IRandomizer_V3CoreBase.json +1 -1
  96. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol/ISharedMinterDAExpSettlementV0.json +114 -0
  97. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpV0.sol/ISharedMinterDAExpV0.json +37 -0
  98. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDALinV0.sol/ISharedMinterDALinV0.json +37 -0
  99. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAV0.sol/ISharedMinterDAV0.json +50 -0
  100. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterHolderERC20V0.sol/ISharedMinterHolderERC20V0.json +158 -0
  101. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterHolderV0.sol/ISharedMinterHolderV0.json +128 -0
  102. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterMerkleV0.sol/ISharedMinterMerkleV0.json +97 -0
  103. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol/ISharedMinterSEAV0.json +29 -0
  104. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSimplePurchaseV0.sol/ISharedMinterSimplePurchaseV0.json +64 -0
  105. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterV0.sol/ISharedMinterV0.json +117 -0
  106. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/ISharedRandomizerV0.sol/ISharedRandomizerV0.json +52 -36
  107. package/artifacts/contracts/interfaces/{0.8.x → v0.8.x}/IWETH.sol/IWETH.json +1 -1
  108. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Address.json +2 -2
  109. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Counters.json +2 -2
  110. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/CustomERC721Metadata.json +2 -2
  111. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/ERC721.json +2 -2
  112. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/ERC721Enumerable.json +2 -2
  113. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/GenArt721CoreV1.json +2 -2
  114. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/SafeMath.json +2 -2
  115. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Strings.json +2 -2
  116. package/artifacts/contracts/legacy/GenArt721LegacyMinter.sol/GenArt721LegacyMinter.json +2 -2
  117. package/artifacts/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol/DelegationRegistry.json +2 -2
  118. package/artifacts/contracts/libs/{0.5.x → v0.5.x}/CustomERC721Metadata.sol/CustomERC721Metadata.json +3 -3
  119. package/artifacts/contracts/libs/{0.5.x → v0.5.x}/IERC20.sol/IERC20.json +1 -1
  120. package/artifacts/contracts/libs/{0.5.x → v0.5.x}/SafeMath.sol/SafeMath.json +3 -3
  121. package/artifacts/contracts/libs/{0.5.x → v0.5.x}/Strings.sol/Strings.json +3 -3
  122. package/artifacts/contracts/libs/v0.8.x/ABHelpers.sol/ABHelpers.json +10 -0
  123. package/artifacts/contracts/libs/v0.8.x/AuthLib.sol/AuthLib.json +10 -0
  124. package/artifacts/contracts/libs/{0.8.x → v0.8.x}/BytecodeStorageV0.sol/BytecodeStorage.json +3 -3
  125. package/artifacts/contracts/libs/{0.8.x → v0.8.x}/BytecodeStorageV1.sol/BytecodeStorageReader.json +3 -3
  126. package/artifacts/contracts/libs/{0.8.x → v0.8.x}/BytecodeStorageV1.sol/BytecodeStorageWriter.json +3 -3
  127. package/artifacts/contracts/libs/{0.8.x → v0.8.x}/Bytes32Strings.sol/Bytes32Strings.json +3 -3
  128. package/artifacts/contracts/libs/{0.8.x → v0.8.x}/ERC721_PackedHashSeed.sol/ERC721_PackedHashSeed.json +3 -3
  129. package/artifacts/contracts/libs/{0.8.x → v0.8.x}/SSTORE2.sol/SSTORE2.json +3 -3
  130. package/artifacts/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol/DAExpLib.json +67 -0
  131. package/artifacts/contracts/libs/v0.8.x/minter-libs/DALib.sol/DALib.json +30 -0
  132. package/artifacts/contracts/libs/v0.8.x/minter-libs/DALinLib.sol/DALinLib.json +67 -0
  133. package/artifacts/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol/GenericMinterEventsLib.json +346 -0
  134. package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.json +36 -0
  135. package/artifacts/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol/MerkleLib.json +37 -0
  136. package/artifacts/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol/PolyptychLib.json +10 -0
  137. package/artifacts/contracts/libs/v0.8.x/minter-libs/SEALib.sol/SEALib.json +261 -0
  138. package/artifacts/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol/SetPriceLib.json +55 -0
  139. package/artifacts/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol/SettlementExpLib.json +48 -0
  140. package/artifacts/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol/SplitFundsLib.json +42 -0
  141. package/artifacts/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol/TokenHolderLib.json +86 -0
  142. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV0.sol/MinterFilterV0.json +2 -2
  143. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
  144. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +96 -40
  145. package/artifacts/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol/MinterDAExpHolderV5.json +662 -0
  146. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +2 -20
  147. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol/MinterDAExpSettlementV3.json +619 -0
  148. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV4.sol/MinterDAExpV4.json +2 -2
  149. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV5.sol/MinterDAExpV5.json +418 -0
  150. package/artifacts/contracts/minter-suite/Minters/MinterDALinHolderV5.sol/MinterDALinHolderV5.json +662 -0
  151. package/artifacts/contracts/minter-suite/Minters/MinterDALinV4.sol/MinterDALinV4.json +2 -2
  152. package/artifacts/contracts/minter-suite/Minters/MinterDALinV5.sol/MinterDALinV5.json +418 -0
  153. package/artifacts/contracts/minter-suite/Minters/MinterHolderV4.sol/MinterHolderV4.json +2 -2
  154. package/artifacts/contracts/minter-suite/Minters/MinterMerkleV5.sol/MinterMerkleV5.json +2 -2
  155. package/artifacts/contracts/minter-suite/Minters/MinterPolyptychV0.sol/MinterPolyptychV0.json +2 -2
  156. package/artifacts/contracts/minter-suite/Minters/MinterSEAV0.sol/MinterSEAV0.json +2 -2
  157. package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +659 -0
  158. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +2 -2
  159. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol/MinterSetPriceERC20V5.json +452 -0
  160. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol/MinterSetPriceHolderV5.json +600 -0
  161. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol/MinterSetPriceMerkleV5.json +633 -0
  162. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol/MinterSetPricePolyptychERC20V5.json +782 -0
  163. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol/MinterSetPricePolyptychV5.json +676 -0
  164. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV4.sol/MinterSetPriceV4.json +2 -2
  165. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV5.sol/MinterSetPriceV5.json +356 -0
  166. package/artifacts/contracts/mock/BytecodeV0TextCR_DMock.sol/BytecodeV0TextCR_DMock.json +2 -2
  167. package/artifacts/contracts/mock/BytecodeV1LibCallsMock.sol/BytecodeV1LibCallsMock.json +2 -2
  168. package/artifacts/contracts/mock/BytecodeV1TextCR_DMock.sol/BytecodeV1TextCR_DMock.json +4 -4
  169. package/artifacts/contracts/mock/DeadReceiverBidderMock.sol/DeadReceiverBidderMock.json +25 -2
  170. package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +2 -2
  171. package/artifacts/contracts/mock/ERC20Mock.sol/ERC20Mock.json +28 -2
  172. package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +6 -11
  173. package/artifacts/contracts/mock/MockAdminACLV0.sol/MockAdminACLV0Events.json +2 -2
  174. package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +2 -2
  175. package/artifacts/contracts/mock/OriginRegisterMock.sol/OriginRegisterMock.json +2 -2
  176. package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +2 -2
  177. package/artifacts/contracts/mock/ReentrancyHolderMock.sol/ReentrancyHolderMock.json +2 -2
  178. package/artifacts/contracts/mock/ReentrancyHolderMockShared.sol/ReentrancyHolderMockShared.json +136 -0
  179. package/artifacts/contracts/mock/ReentrancyMerkleMock.sol/ReentrancyMerkleMock.json +2 -2
  180. package/artifacts/contracts/mock/ReentrancyMerkleMockShared.sol/ReentrancyMerkleMockShared.json +105 -0
  181. package/artifacts/contracts/mock/ReentrancyMock.sol/ReentrancyMock.json +2 -2
  182. package/artifacts/contracts/mock/ReentrancyMockShared.sol/ReentrancyMockShared.json +100 -0
  183. package/artifacts/contracts/mock/ReentrancySEAMock.sol/ReentrancySEAAutoBidderMock.json +2 -2
  184. package/artifacts/contracts/mock/ReentrancySEAMockShared.sol/ReentrancySEAAutoBidderMockShared.json +69 -0
  185. package/artifacts/contracts/mock/SSTORE2Mock.sol/SSTORE2Mock.json +2 -2
  186. package/artifacts/contracts/randomizer/deprecated/BasicRandomizer.sol/BasicRandomizer.json +2 -2
  187. package/artifacts/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +2 -2
  188. package/artifacts/contracts/randomizer/deprecated/RandomizerV2.sol/BasicRandomizerV2.json +2 -2
  189. package/artifacts/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol/PseudorandomAtomic.json +2 -2
  190. package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +58 -42
  191. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride.sol/GenArt721RoyaltyOverride.json +2 -2
  192. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol/GenArt721RoyaltyOverride_PBAB.json +2 -2
  193. package/contracts/AdminACLV0.sol +1 -1
  194. package/contracts/AdminACLV1.sol +1 -1
  195. package/contracts/DependencyRegistryV0.sol +300 -123
  196. package/contracts/GenArt721CoreV3.sol +27 -12
  197. package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV0.sol +3 -3
  198. package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV1.sol +3 -3
  199. package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol +3 -3
  200. package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol +3 -3
  201. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol +3 -3
  202. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol +3 -3
  203. package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV0.sol +3 -3
  204. package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV1.sol +3 -3
  205. package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol +3 -3
  206. package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol +3 -3
  207. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV0.sol +3 -3
  208. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol +3 -3
  209. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol +4 -4
  210. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol +4 -4
  211. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV0.sol +3 -3
  212. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol +3 -3
  213. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol +4 -4
  214. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol +4 -4
  215. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol +4 -4
  216. package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV0.sol +3 -3
  217. package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV1.sol +3 -3
  218. package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol +3 -3
  219. package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol +3 -3
  220. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol +3 -3
  221. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol +3 -3
  222. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol +3 -3
  223. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol +3 -3
  224. package/contracts/archive/readme.md +16 -0
  225. package/contracts/engine/README.md +21 -0
  226. package/contracts/engine/V2/GenArt721CoreV2_ENGINE_FLEX.sol +2 -2
  227. package/contracts/engine/V2/GenArt721CoreV2_PBAB.sol +2 -2
  228. package/contracts/engine/V2/GenArt721CoreV2_PRTNR.sol +3 -3
  229. package/contracts/engine/V2/GenArt721MinterBurner_PBAB.sol +2 -2
  230. package/contracts/engine/V2/GenArt721MinterDAExp_PBAB.sol +1 -1
  231. package/contracts/engine/V2/GenArt721Minter_PBAB.sol +2 -2
  232. package/contracts/engine/V3/GenArt721CoreV3_Engine.sol +31 -22
  233. package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +31 -22
  234. package/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol +12 -18
  235. package/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol +1 -1
  236. package/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol +23 -24
  237. package/contracts/engine/V3/forks/PROHIBITION/interfaces/IAdminACLV0_PROHIBITION.sol +1 -1
  238. package/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol +1 -1
  239. package/contracts/engine-registry/CoreRegistryV1.sol +58 -65
  240. package/contracts/engine-registry/EngineRegistryV0.sol +1 -1
  241. package/contracts/explorations/GenArt721CoreV3_Explorations.sol +27 -12
  242. package/contracts/interfaces/{0.8.x → v0.8.x}/ICoreRegistryV1.sol +6 -8
  243. package/contracts/interfaces/{0.8.x → v0.8.x}/IDependencyRegistryV0.sol +5 -2
  244. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3WithSharedRandomizer.sol +23 -0
  245. package/contracts/interfaces/{0.8.x → v0.8.x}/IMinterFilterV1.sol +45 -19
  246. package/contracts/interfaces/v0.8.x/IRandomizer_V3CoreBase.sol +23 -0
  247. package/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol +28 -0
  248. package/contracts/interfaces/v0.8.x/ISharedMinterDAExpV0.sol +12 -0
  249. package/contracts/interfaces/v0.8.x/ISharedMinterDALinV0.sol +12 -0
  250. package/contracts/interfaces/v0.8.x/ISharedMinterDAV0.sol +13 -0
  251. package/contracts/interfaces/v0.8.x/ISharedMinterHolderERC20V0.sol +47 -0
  252. package/contracts/interfaces/v0.8.x/ISharedMinterHolderV0.sol +41 -0
  253. package/contracts/interfaces/v0.8.x/ISharedMinterMerkleV0.sol +34 -0
  254. package/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol +15 -0
  255. package/contracts/interfaces/v0.8.x/ISharedMinterSimplePurchaseV0.sol +28 -0
  256. package/contracts/interfaces/v0.8.x/ISharedMinterV0.sol +43 -0
  257. package/contracts/interfaces/v0.8.x/ISharedRandomizerV0.sol +123 -0
  258. package/contracts/legacy/GenArt721CoreV1.sol +2 -2
  259. package/contracts/legacy/GenArt721LegacyMinter.sol +5 -5
  260. package/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol +1 -1
  261. package/contracts/libs/v0.8.x/ABHelpers.sol +55 -0
  262. package/contracts/libs/v0.8.x/AuthLib.sol +196 -0
  263. package/contracts/libs/{0.8.x → v0.8.x}/Bytes32Strings.sol +5 -5
  264. package/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol +250 -0
  265. package/contracts/libs/v0.8.x/minter-libs/DALib.sol +26 -0
  266. package/contracts/libs/v0.8.x/minter-libs/DALinLib.sol +216 -0
  267. package/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol +171 -0
  268. package/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol +488 -0
  269. package/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol +384 -0
  270. package/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol +240 -0
  271. package/contracts/libs/v0.8.x/minter-libs/SEALib.sol +995 -0
  272. package/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol +166 -0
  273. package/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol +770 -0
  274. package/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol +741 -0
  275. package/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol +291 -0
  276. package/contracts/minter-suite/MinterFilter/MinterFilterV0.sol +3 -3
  277. package/contracts/minter-suite/MinterFilter/MinterFilterV1.sol +5 -5
  278. package/contracts/minter-suite/MinterFilter/MinterFilterV2.sol +414 -297
  279. package/contracts/minter-suite/Minters/MinterBase_v0_1_1.sol +4 -4
  280. package/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol +866 -0
  281. package/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol +4 -57
  282. package/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol +886 -0
  283. package/contracts/minter-suite/Minters/MinterDAExpV4.sol +3 -3
  284. package/contracts/minter-suite/Minters/MinterDAExpV5.sol +545 -0
  285. package/contracts/minter-suite/Minters/MinterDALinHolderV5.sol +857 -0
  286. package/contracts/minter-suite/Minters/MinterDALinV4.sol +3 -3
  287. package/contracts/minter-suite/Minters/MinterDALinV5.sol +534 -0
  288. package/contracts/minter-suite/Minters/MinterHolderV4.sol +4 -4
  289. package/contracts/minter-suite/Minters/MinterMerkleV5.sol +4 -4
  290. package/contracts/minter-suite/Minters/MinterPolyptychV0.sol +6 -6
  291. package/contracts/minter-suite/Minters/MinterSEAV0.sol +3 -3
  292. package/contracts/minter-suite/Minters/MinterSEAV1.sol +853 -0
  293. package/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol +5 -5
  294. package/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol +545 -0
  295. package/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol +730 -0
  296. package/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol +714 -0
  297. package/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol +1012 -0
  298. package/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol +868 -0
  299. package/contracts/minter-suite/Minters/MinterSetPriceV4.sol +3 -3
  300. package/contracts/minter-suite/Minters/MinterSetPriceV5.sol +414 -0
  301. package/contracts/mock/BytecodeV0TextCR_DMock.sol +1 -1
  302. package/contracts/mock/BytecodeV1LibCallsMock.sol +1 -1
  303. package/contracts/mock/BytecodeV1TextCR_DMock.sol +1 -1
  304. package/contracts/mock/DeadReceiverBidderMock.sol +15 -0
  305. package/contracts/mock/DummySharedMinter.sol +2 -2
  306. package/contracts/mock/ERC20Mock.sol +16 -0
  307. package/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol +11 -18
  308. package/contracts/mock/MockAdminACLV0.sol +1 -1
  309. package/contracts/mock/MockAdminACLV0_PROHIBITION.sol +1 -1
  310. package/contracts/mock/OriginRegisterMock.sol +1 -1
  311. package/contracts/mock/ReentrancyHolderMock.sol +1 -1
  312. package/contracts/mock/ReentrancyHolderMockShared.sol +59 -0
  313. package/contracts/mock/ReentrancyMerkleMock.sol +1 -1
  314. package/contracts/mock/ReentrancyMerkleMockShared.sol +58 -0
  315. package/contracts/mock/ReentrancyMock.sol +1 -1
  316. package/contracts/mock/ReentrancyMockShared.sol +48 -0
  317. package/contracts/mock/ReentrancySEAMock.sol +1 -1
  318. package/contracts/mock/ReentrancySEAMockShared.sol +40 -0
  319. package/contracts/mock/SSTORE2Mock.sol +1 -1
  320. package/contracts/randomizer/deprecated/BasicRandomizer.sol +1 -1
  321. package/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol +2 -2
  322. package/contracts/randomizer/deprecated/RandomizerV2.sol +2 -2
  323. package/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol +1 -1
  324. package/contracts/randomizer/shared/SharedRandomizerV0.sol +134 -111
  325. package/contracts/royalty-registry/GenArt721RoyaltyOverride.sol +2 -2
  326. package/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol +2 -2
  327. package/package.json +57 -36
  328. package/LICENSE +0 -165
  329. package/contracts/interfaces/0.8.x/IRandomizer_V3CoreBase.sol +0 -10
  330. package/contracts/interfaces/0.8.x/ISharedRandomizerV0.sol +0 -105
  331. /package/contracts/interfaces/{0.5.x → v0.5.x}/IBonusContract.sol +0 -0
  332. /package/contracts/interfaces/{0.5.x → v0.5.x}/IGenArt721CoreContractV1.sol +0 -0
  333. /package/contracts/interfaces/{0.5.x → v0.5.x}/IGenArt721CoreV2_PBAB.sol +0 -0
  334. /package/contracts/interfaces/{0.5.x → v0.5.x}/IRandomizer.sol +0 -0
  335. /package/contracts/interfaces/{0.8.x → v0.8.x}/IAdminACLV0.sol +0 -0
  336. /package/contracts/interfaces/{0.8.x → v0.8.x}/IArtblocksRoyaltyOverride.sol +0 -0
  337. /package/contracts/interfaces/{0.8.x → v0.8.x}/IBonusContract.sol +0 -0
  338. /package/contracts/interfaces/{0.8.x → v0.8.x}/IBytecodeStorageReader.sol +0 -0
  339. /package/contracts/interfaces/{0.8.x → v0.8.x}/IDelegationRegistry.sol +0 -0
  340. /package/contracts/interfaces/{0.8.x → v0.8.x}/IDependencyRegistryCompatibleV0.sol +0 -0
  341. /package/contracts/interfaces/{0.8.x → v0.8.x}/IEngineRegistryV0.sol +0 -0
  342. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlementV0.sol +0 -0
  343. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlementV1.sol +0 -0
  344. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpSettlement_Mixin.sol +0 -0
  345. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpV0.sol +0 -0
  346. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDAExpV1.sol +0 -0
  347. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDALinV0.sol +0 -0
  348. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterDALinV1.sol +0 -0
  349. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV0.sol +0 -0
  350. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV1.sol +0 -0
  351. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterHolderV2.sol +0 -0
  352. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV0.sol +0 -0
  353. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV1.sol +0 -0
  354. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterMerkleV2.sol +0 -0
  355. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterSEAV0.sol +0 -0
  356. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV0.sol +0 -0
  357. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV1.sol +0 -0
  358. /package/contracts/interfaces/{0.8.x → v0.8.x}/IFilteredMinterV2.sol +0 -0
  359. /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractExposesHashSeed.sol +0 -0
  360. /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV1.sol +0 -0
  361. /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3.sol +0 -0
  362. /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Base.sol +0 -0
  363. /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Engine.sol +0 -0
  364. /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreContractV3_Engine_Flex.sol +0 -0
  365. /package/contracts/interfaces/{0.8.x → v0.8.x}/IGenArt721CoreV2_PBAB.sol +0 -0
  366. /package/contracts/interfaces/{0.8.x → v0.8.x}/IManifold.sol +0 -0
  367. /package/contracts/interfaces/{0.8.x → v0.8.x}/IMinterBaseV0.sol +0 -0
  368. /package/contracts/interfaces/{0.8.x → v0.8.x}/IMinterFilterV0.sol +0 -0
  369. /package/contracts/interfaces/{0.8.x → v0.8.x}/IMintingAPICoreV0.sol +0 -0
  370. /package/contracts/interfaces/{0.8.x → v0.8.x}/IMintingAPIMinterV0.sol +0 -0
  371. /package/contracts/interfaces/{0.8.x → v0.8.x}/IPseudorandomAtomic.sol +0 -0
  372. /package/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizer.sol +0 -0
  373. /package/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizerPolyptychV0.sol +0 -0
  374. /package/contracts/interfaces/{0.8.x → v0.8.x}/IRandomizerV2.sol +0 -0
  375. /package/contracts/interfaces/{0.8.x → v0.8.x}/IWETH.sol +0 -0
  376. /package/contracts/libs/{0.5.x → v0.5.x}/CustomERC721Metadata.sol +0 -0
  377. /package/contracts/libs/{0.5.x → v0.5.x}/IERC20.sol +0 -0
  378. /package/contracts/libs/{0.5.x → v0.5.x}/SafeMath.sol +0 -0
  379. /package/contracts/libs/{0.5.x → v0.5.x}/Strings.sol +0 -0
  380. /package/contracts/libs/{0.8.x → v0.8.x}/BytecodeStorageV0.sol +0 -0
  381. /package/contracts/libs/{0.8.x → v0.8.x}/BytecodeStorageV1.sol +0 -0
  382. /package/contracts/libs/{0.8.x → v0.8.x}/ERC721_PackedHashSeed.sol +0 -0
  383. /package/contracts/libs/{0.8.x → v0.8.x}/SSTORE2.sol +0 -0
@@ -12,6 +12,12 @@
12
12
  "name": "_dependencyType",
13
13
  "type": "bytes32"
14
14
  },
15
+ {
16
+ "indexed": true,
17
+ "internalType": "bytes32",
18
+ "name": "_licenseType",
19
+ "type": "bytes32"
20
+ },
15
21
  {
16
22
  "indexed": false,
17
23
  "internalType": "string",
@@ -218,6 +224,19 @@
218
224
  "name": "Initialized",
219
225
  "type": "event"
220
226
  },
227
+ {
228
+ "anonymous": false,
229
+ "inputs": [
230
+ {
231
+ "indexed": true,
232
+ "internalType": "bytes32",
233
+ "name": "_licenseType",
234
+ "type": "bytes32"
235
+ }
236
+ ],
237
+ "name": "LicenseTypeAdded",
238
+ "type": "event"
239
+ },
221
240
  {
222
241
  "anonymous": false,
223
242
  "inputs": [
@@ -314,6 +333,11 @@
314
333
  "name": "_dependencyType",
315
334
  "type": "bytes32"
316
335
  },
336
+ {
337
+ "internalType": "bytes32",
338
+ "name": "_licenseType",
339
+ "type": "bytes32"
340
+ },
317
341
  {
318
342
  "internalType": "string",
319
343
  "name": "_preferredCDN",
@@ -389,6 +413,37 @@
389
413
  "stateMutability": "nonpayable",
390
414
  "type": "function"
391
415
  },
416
+ {
417
+ "inputs": [
418
+ {
419
+ "internalType": "bytes32",
420
+ "name": "_dependencyType",
421
+ "type": "bytes32"
422
+ },
423
+ {
424
+ "internalType": "address",
425
+ "name": "_scriptPointer",
426
+ "type": "address"
427
+ }
428
+ ],
429
+ "name": "addDependencyScriptPointer",
430
+ "outputs": [],
431
+ "stateMutability": "nonpayable",
432
+ "type": "function"
433
+ },
434
+ {
435
+ "inputs": [
436
+ {
437
+ "internalType": "bytes32",
438
+ "name": "_licenseType",
439
+ "type": "bytes32"
440
+ }
441
+ ],
442
+ "name": "addLicenseType",
443
+ "outputs": [],
444
+ "stateMutability": "nonpayable",
445
+ "type": "function"
446
+ },
392
447
  {
393
448
  "inputs": [
394
449
  {
@@ -480,7 +535,7 @@
480
535
  "type": "uint256"
481
536
  }
482
537
  ],
483
- "name": "getDependencyAdditionalCDNAtIndex",
538
+ "name": "getDependencyAdditionalCDN",
484
539
  "outputs": [
485
540
  {
486
541
  "internalType": "string",
@@ -504,7 +559,7 @@
504
559
  "type": "uint256"
505
560
  }
506
561
  ],
507
- "name": "getDependencyAdditionalRepositoryAtIndex",
562
+ "name": "getDependencyAdditionalRepository",
508
563
  "outputs": [
509
564
  {
510
565
  "internalType": "string",
@@ -530,6 +585,11 @@
530
585
  "name": "typeAndVersion",
531
586
  "type": "string"
532
587
  },
588
+ {
589
+ "internalType": "string",
590
+ "name": "licenseType",
591
+ "type": "string"
592
+ },
533
593
  {
534
594
  "internalType": "string",
535
595
  "name": "preferredCDN",
@@ -582,7 +642,7 @@
582
642
  "type": "uint256"
583
643
  }
584
644
  ],
585
- "name": "getDependencyScriptAtIndex",
645
+ "name": "getDependencyScript",
586
646
  "outputs": [
587
647
  {
588
648
  "internalType": "string",
@@ -606,7 +666,7 @@
606
666
  "type": "uint256"
607
667
  }
608
668
  ],
609
- "name": "getDependencyScriptBytecodeAddressAtIndex",
669
+ "name": "getDependencyScriptBytecodeAddress",
610
670
  "outputs": [
611
671
  {
612
672
  "internalType": "address",
@@ -617,6 +677,30 @@
617
677
  "stateMutability": "view",
618
678
  "type": "function"
619
679
  },
680
+ {
681
+ "inputs": [
682
+ {
683
+ "internalType": "bytes32",
684
+ "name": "_dependencyType",
685
+ "type": "bytes32"
686
+ },
687
+ {
688
+ "internalType": "uint256",
689
+ "name": "_index",
690
+ "type": "uint256"
691
+ }
692
+ ],
693
+ "name": "getDependencyScriptBytecodeStorageVersion",
694
+ "outputs": [
695
+ {
696
+ "internalType": "bytes32",
697
+ "name": "",
698
+ "type": "bytes32"
699
+ }
700
+ ],
701
+ "stateMutability": "view",
702
+ "type": "function"
703
+ },
620
704
  {
621
705
  "inputs": [
622
706
  {
@@ -644,7 +728,7 @@
644
728
  "type": "uint256"
645
729
  }
646
730
  ],
647
- "name": "getDependencyTypeAtIndex",
731
+ "name": "getDependencyType",
648
732
  "outputs": [
649
733
  {
650
734
  "internalType": "string",
@@ -713,7 +797,52 @@
713
797
  "type": "uint256"
714
798
  }
715
799
  ],
716
- "name": "getSupportedCoreContractAtIndex",
800
+ "name": "getLicenseType",
801
+ "outputs": [
802
+ {
803
+ "internalType": "string",
804
+ "name": "",
805
+ "type": "string"
806
+ }
807
+ ],
808
+ "stateMutability": "view",
809
+ "type": "function"
810
+ },
811
+ {
812
+ "inputs": [],
813
+ "name": "getLicenseTypeCount",
814
+ "outputs": [
815
+ {
816
+ "internalType": "uint256",
817
+ "name": "",
818
+ "type": "uint256"
819
+ }
820
+ ],
821
+ "stateMutability": "view",
822
+ "type": "function"
823
+ },
824
+ {
825
+ "inputs": [],
826
+ "name": "getLicenseTypes",
827
+ "outputs": [
828
+ {
829
+ "internalType": "string[]",
830
+ "name": "",
831
+ "type": "string[]"
832
+ }
833
+ ],
834
+ "stateMutability": "view",
835
+ "type": "function"
836
+ },
837
+ {
838
+ "inputs": [
839
+ {
840
+ "internalType": "uint256",
841
+ "name": "_index",
842
+ "type": "uint256"
843
+ }
844
+ ],
845
+ "name": "getSupportedCoreContract",
717
846
  "outputs": [
718
847
  {
719
848
  "internalType": "address",
@@ -763,6 +892,25 @@
763
892
  "stateMutability": "nonpayable",
764
893
  "type": "function"
765
894
  },
895
+ {
896
+ "inputs": [
897
+ {
898
+ "internalType": "address",
899
+ "name": "coreContractAddress",
900
+ "type": "address"
901
+ }
902
+ ],
903
+ "name": "isSupportedCoreContract",
904
+ "outputs": [
905
+ {
906
+ "internalType": "bool",
907
+ "name": "",
908
+ "type": "bool"
909
+ }
910
+ ],
911
+ "stateMutability": "view",
912
+ "type": "function"
913
+ },
766
914
  {
767
915
  "inputs": [],
768
916
  "name": "owner",
@@ -802,7 +950,7 @@
802
950
  "type": "uint256"
803
951
  }
804
952
  ],
805
- "name": "removeDependencyAdditionalCDNAtIndex",
953
+ "name": "removeDependencyAdditionalCDN",
806
954
  "outputs": [],
807
955
  "stateMutability": "nonpayable",
808
956
  "type": "function"
@@ -820,7 +968,7 @@
820
968
  "type": "uint256"
821
969
  }
822
970
  ],
823
- "name": "removeDependencyAdditionalRepositoryAtIndex",
971
+ "name": "removeDependencyAdditionalRepository",
824
972
  "outputs": [],
825
973
  "stateMutability": "nonpayable",
826
974
  "type": "function"
@@ -907,7 +1055,7 @@
907
1055
  "type": "string"
908
1056
  }
909
1057
  ],
910
- "name": "updateDependencyAdditionalCDNAtIndex",
1058
+ "name": "updateDependencyAdditionalCDN",
911
1059
  "outputs": [],
912
1060
  "stateMutability": "nonpayable",
913
1061
  "type": "function"
@@ -930,7 +1078,7 @@
930
1078
  "type": "string"
931
1079
  }
932
1080
  ],
933
- "name": "updateDependencyAdditionalRepositoryAtIndex",
1081
+ "name": "updateDependencyAdditionalRepository",
934
1082
  "outputs": [],
935
1083
  "stateMutability": "nonpayable",
936
1084
  "type": "function"
@@ -998,7 +1146,7 @@
998
1146
  },
999
1147
  {
1000
1148
  "internalType": "uint256",
1001
- "name": "_scriptId",
1149
+ "name": "_index",
1002
1150
  "type": "uint256"
1003
1151
  },
1004
1152
  {
@@ -1011,26 +1159,73 @@
1011
1159
  "outputs": [],
1012
1160
  "stateMutability": "nonpayable",
1013
1161
  "type": "function"
1162
+ },
1163
+ {
1164
+ "inputs": [
1165
+ {
1166
+ "internalType": "bytes32",
1167
+ "name": "_dependencyType",
1168
+ "type": "bytes32"
1169
+ },
1170
+ {
1171
+ "internalType": "uint256",
1172
+ "name": "_index",
1173
+ "type": "uint256"
1174
+ },
1175
+ {
1176
+ "internalType": "address",
1177
+ "name": "_scriptPointer",
1178
+ "type": "address"
1179
+ }
1180
+ ],
1181
+ "name": "updateDependencyScriptPointer",
1182
+ "outputs": [],
1183
+ "stateMutability": "nonpayable",
1184
+ "type": "function"
1014
1185
  }
1015
1186
  ],
1016
- "bytecode": "0x608060405234801561001057600080fd5b50612d82806100206000396000f3fe608060405234801561001057600080fd5b50600436106101c75760003560e01c80637cbb45c8116101005780637cbb45c81461038e57806389f8ba4f146103965780638da5cb5b146103a957806392f4f506146103b15780639d5c4b78146103e9578063a809c1fc146103fc578063b491702c1461040f578063b86b69f114610422578063bbf2aefb1461042a578063be3d3ee61461043d578063c4d66de814610450578063da7810fe14610463578063dbc71ccb14610476578063dc33f4ae14610489578063f146f17f1461049c578063f2fde38b146104af578063f73f4991146104c2578063f8ac18be146104d5578063f9c0fae6146104e857600080fd5b806304e3c7f6146101cc57806307f9f786146101e1578063199eb8e0146101ff5780631a051d49146102125780631e9bef4614610225578063230448b11461024557806325ffb37614610268578063336af8101461028f5780633bd7cfa2146102af578063474bbdc2146102c257806351eda999146102d557806352ccc021146102ea5780635668bc5e146102fd5780635710f83d1461033a578063596224dc1461034d57806359d8a733146103605780636c4056a814610373578063715018a614610386575b600080fd5b6101df6101da36600461232e565b6104fb565b005b6101e961060b565b6040516101f69190612350565b60405180910390f35b6101df61020d3660046123b9565b6106ba565b6101df610220366004612497565b610715565b606554610238906001600160a01b031681565b6040516101f691906124e6565b6102586102533660046124fa565b6107f0565b60405190151581526020016101f6565b61027b61027636600461254e565b61089c565b6040516101f69897969594939291906125b7565b6102a261029d36600461232e565b610ab3565b6040516101f6919061263c565b6101df6102bd36600461264f565b610b65565b6102a26102d0366004612695565b610bd6565b6102dd610d12565b6040516101f691906126bf565b6101df6102f836600461254e565b610dd1565b61032c61030b36600461254e565b600090815260686020526040902060060154600160301b900462ffffff1690565b6040519081526020016101f6565b6101df61034836600461264f565b610ee5565b6101df61035b366004612497565b610fab565b61023861036e36600461254e565b611067565b6102a261038136600461254e565b6110c2565b6101df61111f565b61032c611133565b6101df6103a436600461232e565b611144565b610238611227565b6102386103bf36600461232e565b6000918252606860209081526040808420928452600590920190529020546001600160a01b031690565b6102a26103f736600461232e565b61123b565b6101df61040a366004612721565b611266565b6102a261041d36600461232e565b61139c565b61032c6113fe565b6101df6104383660046127b2565b61140a565b6101df61044b36600461264f565b61148b565b6101df61045e3660046123b9565b6114ed565b6101df610471366004612497565b611608565b6101df6104843660046123b9565b6116ae565b6101df61049736600461264f565b61175f565b6101df6104aa36600461264f565b611831565b6101df6104bd3660046123b9565b6118e2565b6101df6104d0366004612695565b61195b565b6101df6104e336600461254e565b611a2b565b6101df6104f636600461264f565b611b95565b61050b630271e3fb60e11b611bfa565b61051482611c4a565b600082815260686020526040902060068101546301000000900462ffffff1680831061055b5760405162461bcd60e51b8152600401610552906127e5565b60405180910390fd5b600061056860018361282d565b60008681526068602090815260408083208484526003908101835281842089855290880190925290912091925061059f90826128d8565b50600081815260038401602052604081206105b9916122e0565b60068301805465ffffff0000001916630100000062ffffff841602179055604051849086907fc02725dfc9639e3399432cdae3db1c062229f4cc41bcc18631517617c020b71c90600090a35050505050565b606060006106196069611ca1565b90506000816001600160401b03811115610635576106356123d4565b60405190808252806020026020018201604052801561065e578160200160208202803683370190505b50905060005b828110156106b357610677606982611cab565b828281518110610689576106896129b2565b6001600160a01b0390921660209283029190910190910152806106ab816129c8565b915050610664565b5092915050565b6106c962ccf5c760e51b611bfa565b6106d281611cbe565b6106dd606982611d13565b506040516001600160a01b038216907f2453d2f77bae1012d39e2257356d2566625ebe0ffd6094198aa051689dc65ba090600090a250565b610725631a051d4960e01b611bfa565b61072e81611d28565b61073783611c4a565b60008381526068602052604090206006810154600160301b900462ffffff16831061079c5760405162461bcd60e51b81526020600482015260156024820152747363726970744964206f7574206f662072616e676560581b6044820152606401610552565b6107a582611d77565b600084815260058301602052604080822080546001600160a01b0319166001600160a01b03949094169390931790925590518591600080516020612d2d83398151915291a250505050565b6000806107fb611227565b6001600160a01b03161415801561089457506065546040516217798b60e61b81526001600160a01b03868116600483015285811660248301526001600160e01b031985166044830152909116906305de62c0906064016020604051808303816000875af1158015610870573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089491906129e1565b949350505050565b60008181526068602052604081206060918291829082908290829081906108c28a611e27565b60068201548254839162ffffff808216926002850192630100000081048316926004870192600160301b909204168015159187906108ff90612840565b80601f016020809104026020016040519081016040528092919081815260200182805461092b90612840565b80156109785780601f1061094d57610100808354040283529160200191610978565b820191906000526020600020905b81548152906001019060200180831161095b57829003601f168201915b5050505050965084805461098b90612840565b80601f01602080910402602001604051908101604052809291908181526020018280546109b790612840565b8015610a045780601f106109d957610100808354040283529160200191610a04565b820191906000526020600020905b8154815290600101906020018083116109e757829003601f168201915b50505050509450828054610a1790612840565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4390612840565b8015610a905780601f10610a6557610100808354040283529160200191610a90565b820191906000526020600020905b815481529060010190602001808311610a7357829003601f168201915b505050505092509850985098509850985098509850985050919395975091939597565b60008281526068602090815260408083208484526003019091529020805460609190610ade90612840565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0a90612840565b8015610b575780601f10610b2c57610100808354040283529160200191610b57565b820191906000526020600020905b815481529060010190602001808311610b3a57829003601f168201915b505050505090505b92915050565b610b75631debe7d160e11b611bfa565b610b7e82611c4a565b6000828152606860205260409020600401610b998282612a03565b50817f9959f3af1c0191277b92c192984b5ca38adaf82d8465332b4da850e0e6a199f482604051610bca919061263c565b60405180910390a25050565b6060610be183611cbe565b6001600160a01b0383166000908152606b602090815260408083208584529091529020548015610c1c57610c1481611e27565b915050610b5f565b604051633ae7357560e21b8152600481018490526001600160a01b0385169063eb9cd5d490602401600060405180830381865afa925050508015610c8257506040513d6000823e601f3d908101601f19168201604052610c7f9190810190612afb565b60015b610d065760405162461bcd60e51b815260206004820152604960248201527f436f6e747261637420646f6573206e6f7420696d706c656d656e742070726f6a60448201527f65637453637269707444657461696c7320616e6420686173206e6f206f7665726064820152683934b2329039b2ba1760b91b608482015260a401610552565b82945050505050610b5f565b60606000610d206066611ca1565b6001600160401b03811115610d3757610d376123d4565b604051908082528060200260200182016040528015610d6a57816020015b6060815260200190600190039081610d555790505b5090506000610d796066611ca1565b905060005b81811015610dc957610d99610d94606683611cab565b611e27565b838281518110610dab57610dab6129b2565b60200260200101819052508080610dc1906129c8565b915050610d7e565b509092915050565b610de16352ccc02160e01b611bfa565b610dea81611c4a565b60008181526068602052604090206006810154600160301b900462ffffff16610e555760405162461bcd60e51b815260206004820152601e60248201527f746865726520617265206e6f207363726970747320746f2072656d6f766500006044820152606401610552565b60068101546005820190600090610e7a90600190600160301b900462ffffff16612b67565b62ffffff908116825260208201929092526040908101600090812080546001600160a01b031916905560068401805462ffffff60301b198116600160301b918290048616600019019095160293909317909255518391600080516020612d2d83398151915291a25050565b610ef5635710f83d60e01b611bfa565b610efe81611d28565b610f0782611c4a565b600082815260686020908152604080832060068101546301000000900462ffffff16808552600382019093529220610f3f8482612a03565b50610f4b816001612b83565b8260060160036101000a81548162ffffff021916908362ffffff160217905550837ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde8483604051610f9d929190612b96565b60405180910390a250505050565b610fbb631658893760e21b611bfa565b610fc481611d28565b610fcd83611c4a565b600083815260686020526040902060068101546301000000900462ffffff1680841061100b5760405162461bcd60e51b8152600401610552906127e5565b600084815260038301602052604090206110258482612a03565b50847ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde8486604051611058929190612b96565b60405180910390a25050505050565b6000816110746069611ca1565b116110b75760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b6044820152606401610552565b610b5f606983611cab565b6060816110cf6066611ca1565b116111115760405162461bcd60e51b8152602060048201526012602482015271496e646578206f7574206f662072616e676560701b6044820152606401610552565b610b5f610d94606684611cab565b611127611e92565b6111316000611ef1565b565b600061113f6066611ca1565b905090565b6111546389f8ba4f60e01b611bfa565b61115d82611c4a565b6000828152606860205260409020600681015462ffffff168083106111945760405162461bcd60e51b8152600401610552906127e5565b60006111a160018361282d565b600081815260018501602052604080822087835291209192506111c490826128d8565b50600081815260018401602052604081206111de916122e0565b60068301805462ffffff191662ffffff8316179055604051849086907f225454b600cf489553fde6e3b7f5e458b1093c035390b678067ea799b3b016cd90600090a35050505050565b600061113f6033546001600160a01b031690565b60008281526068602090815260408083208484526001019091529020805460609190610ade90612840565b611276632a02707f60e21b611bfa565b611281606685611f1c565b156112ce5760405162461bcd60e51b815260206004820152601e60248201527f446570656e64656e6379207479706520616c72656164792065786973747300006044820152606401610552565b6112db8460406001611f28565b6113245760405162461bcd60e51b815260206004820152601a60248201527901b5d5cdd0818dbdb9d185a5b88195e1858dd1b1e481bdb9948160361b6044820152606401610552565b61132f606685611f9b565b506000848152606860205260409020806113498582612a03565b50600281016113588482612a03565b50600481016113678382612a03565b50847f39626dd6a5a74e9944752116c5e878fbb4c1ac0cab72cd316f6f25ee19cff76585858560405161105893929190612bb8565b6000828152606860205260409020600681015460609190600160301b900462ffffff1683106113db575050604080516020810190915260008152610b5f565b6000838152600582016020526040902054610894906001600160a01b0316611fa7565b600061113f6069611ca1565b61141a63bbf2aefb60e01b611bfa565b61142381611c4a565b61142c83611cbe565b6001600160a01b0383166000818152606b6020908152604080832086845282529182902084905590518381528492917f27d39273f3676c181ec3de60b583da776123d9f9517761fb91f370a83c798918910160405180910390a3505050565b61149b635f1e9f7360e11b611bfa565b6114a482611c4a565b60008281526068602052604090206114bc8282612a03565b50817fc9890a31ec780bb5a8a017d683d3913f97260548d71c2cee78194ed2833f023582604051610bca919061263c565b600054610100900460ff161580801561150d5750600054600160ff909116105b806115275750303b158015611527575060005460ff166001145b61158a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610552565b6000805460ff1916600117905580156115ad576000805461ff0019166101001790555b6115b5612026565b6115be82611ef1565b8015611604576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b611618636d3c087f60e11b611bfa565b61162181611d28565b61162a83611c4a565b6000838152606860205260409020600681015462ffffff168084106116615760405162461bcd60e51b8152600401610552906127e5565b6000848152600183016020526040902061167b8482612a03565b50847f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d8486604051611058929190612b96565b6116be63dbc71ccb60e01b611bfa565b6116c781612055565b6116d26069826120a9565b1561171c5760405162461bcd60e51b815260206004820152601a60248201527910dbdb9d1c9858dd08185b1c9958591e481cdd5c1c1bdc9d195960321b6044820152606401610552565b6117276069826120be565b506040516001600160a01b038216907f59e1b889b92ad05213b7934a67c5d824348c868455d1c741a2cfe16e46d832dc90600090a250565b61176f636e19fa5760e11b611bfa565b61177881611d28565b61178182611c4a565b600082815260686020526040902061179882611d77565b600682018054600160301b9081900462ffffff9081166000908152600586016020526040902080546001600160a01b0319166001600160a01b03959095169490941790935590546117ee92919004166001612bfb565b60068201805462ffffff92909216600160301b0262ffffff60301b199092169190911790556040518390600080516020612d2d83398151915290600090a2505050565b61184163f146f17f60e01b611bfa565b61184a81611d28565b61185382611c4a565b6000828152606860209081526040808320600681015462ffffff168085526001820190935292206118848482612a03565b50611890816001612b83565b8260060160006101000a81548162ffffff021916908362ffffff160217905550837f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d8483604051610f9d929190612b96565b6118ea611e92565b6001600160a01b03811661194f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610552565b61195881611ef1565b50565b61196b63f73f499160e01b611bfa565b6001600160a01b0382166000908152606b602090815260408083208484529091529020546119d95760405162461bcd60e51b815260206004820152601b60248201527a139bc81bdd995c9c9a5919481cd95d08199bdc881c1c9bda9958dd602a1b6044820152606401610552565b6001600160a01b0382166000818152606b60209081526040808320858452909152808220829055518392917f0732620824c0200808d04ab037f3abc3c31853170b90f5a855d32f44486048ed91a35050565b611a3b637c560c5f60e11b611bfa565b611a4481611c4a565b6000818152606860205260409020600681015462ffffff16158015611a77575060068101546301000000900462ffffff16155b8015611a9157506006810154600160301b900462ffffff16155b611b135760405162461bcd60e51b815260206004820152604760248201527f43616e6e6f742072656d6f766520646570656e64656e6379207769746820616460448201527f646974696f6e616c2043444e732c207265706f7369746f726965732c206f72206064820152667363726970747360c81b608482015260a401610552565b611b1e6066836120d3565b50600082815260686020526040812090611b3882826122e0565b611b466002830160006122e0565b611b546004830160006122e0565b5060060180546001600160481b031916905560405182907f60e2aa021c4f5303dd65e2173f0180636e4d42eaefc6187278e92bee9d06aa7290600090a25050565b611ba5637ce07d7360e11b611bfa565b611bae82611c4a565b6000828152606860205260409020600201611bc98282612a03565b50817f774918414e4887efe5349a305fe253ee8b1e3fe0c2117012f0c215645693cbfd82604051610bca919061263c565b611c053330836107f0565b6119585760405162461bcd60e51b815260206004820152601660248201527513db9b1e4810591b5a5b881050d308185b1b1bddd95960521b6044820152606401610552565b611c55606682611f1c565b6119585760405162461bcd60e51b815260206004820152601e60248201527f446570656e64656e6379207479706520646f6573206e6f7420657869737400006044820152606401610552565b6000610b5f825490565b6000611cb783836120df565b9392505050565b611cc96069826120a9565b6119585760405162461bcd60e51b815260206004820152601b60248201527a10dbdc994818dbdb9d1c9858dd081b9bdd081cdd5c1c1bdc9d1959602a1b6044820152606401610552565b6000611cb7836001600160a01b038416612109565b80516000036119585760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d656d70747920737472696e6760281b6044820152606401610552565b6000807f42797465636f646553746f726167655f56312e302e305f5f5f5f5f5f5f5f5f203084604051602001611daf93929190612c17565b60405160208183030381529060405290508051602082016000f091506001600160a01b038216611e215760405162461bcd60e51b815260206004820152601e60248201527f436f6e7472616374417353746f726167653a205772697465204572726f7200006044820152606401610552565b50919050565b606060005b828160ff1660208110611e4157611e416129b2565b1a60f81b6001600160f81b03191615801590611e60575060208160ff16105b15611e775780611e6f81612c78565b915050611e2c565b60405191506040820160405280825282602083015250919050565b33611e9b611227565b6001600160a01b0316146111315760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610552565b611efa816121fc565b606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611cb7838361224e565b600080805b60208160ff161015611f87576000868260ff1660208110611f5057611f506129b2565b1a90508015801590611f65575060808160ff16105b15611f7e578560ff168160ff1603611f7e578260010192505b50600101611f2d565b8360ff168260ff1614925050509392505050565b6000611cb78383612266565b604051630eacc5e760e31b815260609073__$f5e9d4569caf27524ac52628f2516ab106$__906375662f3890611fe19085906004016124e6565b600060405180830381865af4158015611ffe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b5f9190810190612c97565b600054610100900460ff1661204d5760405162461bcd60e51b815260040161055290612ccb565b6111316122b0565b6001600160a01b0381166119585760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d7a65726f206164647265737360281b6044820152606401610552565b6000611cb7836001600160a01b03841661224e565b6000611cb7836001600160a01b038416612266565b6000611cb78383612109565b60008260000182815481106120f6576120f66129b2565b9060005260206000200154905092915050565b600081815260018301602052604081205480156121f257600061212d60018361282d565b85549091506000906121419060019061282d565b90508181146121a6576000866000018281548110612161576121616129b2565b9060005260206000200154905080876000018481548110612184576121846129b2565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806121b7576121b7612d16565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610b5f565b6000915050610b5f565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60009081526001919091016020526040902054151590565b6000612272838361224e565b6122a857508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610b5f565b506000610b5f565b600054610100900460ff166122d75760405162461bcd60e51b815260040161055290612ccb565b61113133611ef1565b5080546122ec90612840565b6000825580601f106122fc575050565b601f01602090049060005260206000209081019061195891905b8082111561232a5760008155600101612316565b5090565b6000806040838503121561234157600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b818110156123915783516001600160a01b03168352928401929184019160010161236c565b50909695505050505050565b80356001600160a01b03811681146123b457600080fd5b919050565b6000602082840312156123cb57600080fd5b611cb78261239d565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612412576124126123d4565b604052919050565b60006001600160401b03821115612433576124336123d4565b50601f01601f191660200190565b600082601f83011261245257600080fd5b81356124656124608261241a565b6123ea565b81815284602083860101111561247a57600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000606084860312156124ac57600080fd5b833592506020840135915060408401356001600160401b038111156124d057600080fd5b6124dc86828701612441565b9150509250925092565b6001600160a01b0391909116815260200190565b60008060006060848603121561250f57600080fd5b6125188461239d565b92506125266020850161239d565b915060408401356001600160e01b03198116811461254357600080fd5b809150509250925092565b60006020828403121561256057600080fd5b5035919050565b60005b8381101561258257818101518382015260200161256a565b50506000910152565b600081518084526125a3816020860160208601612567565b601f01601f19169290920160200192915050565b60006101008083526125cb8184018c61258b565b905082810360208401526125df818b61258b565b905062ffffff808a16604085015283820360608501526125ff828a61258b565b9150808816608085015283820360a085015261261b828861258b565b925085151560c085015280851660e085015250509998505050505050505050565b602081526000611cb7602083018461258b565b6000806040838503121561266257600080fd5b8235915060208301356001600160401b0381111561267f57600080fd5b61268b85828601612441565b9150509250929050565b600080604083850312156126a857600080fd5b6126b18361239d565b946020939093013593505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561271457603f1988860301845261270285835161258b565b945092850192908501906001016126e6565b5092979650505050505050565b6000806000806080858703121561273757600080fd5b8435935060208501356001600160401b038082111561275557600080fd5b61276188838901612441565b9450604087013591508082111561277757600080fd5b61278388838901612441565b9350606087013591508082111561279957600080fd5b506127a687828801612441565b91505092959194509250565b6000806000606084860312156127c757600080fd5b6127d08461239d565b95602085013595506040909401359392505050565b602080825260189082015277417373657420696e646578206f7574206f662072616e676560401b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b5f57610b5f612817565b600181811c9082168061285457607f821691505b602082108103611e2157634e487b7160e01b600052602260045260246000fd5b601f8211156128be57600081815260208120601f850160051c8101602086101561289b5750805b601f850160051c820191505b818110156128ba578281556001016128a7565b5050505b505050565b600019600383901b1c191660019190911b1790565b8181036128e3575050565b6128ed8254612840565b6001600160401b03811115612904576129046123d4565b612918816129128454612840565b84612874565b6000601f82116001811461294657600083156129345750848201545b61293e84826128c3565b8555506129ab565b600085815260209020601f19841690600086815260209020845b838110156129805782860154825560019586019590910190602001612960565b508583101561299e5781850154600019600388901b60f8161c191681555b50505060018360011b0184555b5050505050565b634e487b7160e01b600052603260045260246000fd5b6000600182016129da576129da612817565b5060010190565b6000602082840312156129f357600080fd5b81518015158114611cb757600080fd5b81516001600160401b03811115612a1c57612a1c6123d4565b612a2a816129128454612840565b602080601f831160018114612a595760008415612a475750858301515b612a5185826128c3565b8655506128ba565b600085815260208120601f198616915b82811015612a8857888601518255948401946001909101908401612a69565b5085821015612aa65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082601f830112612ac757600080fd5b8151612ad56124608261241a565b818152846020838601011115612aea57600080fd5b610894826020830160208701612567565b600080600060608486031215612b1057600080fd5b83516001600160401b0380821115612b2757600080fd5b612b3387838801612ab6565b94506020860151915080821115612b4957600080fd5b50612b5686828701612ab6565b925050604084015190509250925092565b62ffffff8281168282160390808211156106b3576106b3612817565b80820180821115610b5f57610b5f612817565b604081526000612ba9604083018561258b565b90508260208301529392505050565b606081526000612bcb606083018661258b565b8281036020840152612bdd818661258b565b90508281036040840152612bf1818561258b565b9695505050505050565b62ffffff8181168382160190808211156106b3576106b3612817565b6a600b5981380380925939f360a81b8152607f60f91b600b820152600c81018490526000602c8201819052606084901b6001600160601b03191660388301528251612c6981604c850160208701612567565b91909101604c01949350505050565b600060ff821660ff8103612c8e57612c8e612817565b60010192915050565b600060208284031215612ca957600080fd5b81516001600160401b03811115612cbf57600080fd5b61089484828501612ab6565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052603160045260246000fdfef79e11fc86b9bf37d5dfd4359c053136f7c046da6a08f9cf7ca56d80d5aab839a2646970667358221220f8421f52350556c4d909b162126d6c06dfe7e06ec4c838c22fd94fb9c99876be64736f6c63430008130033",
1017
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101c75760003560e01c80637cbb45c8116101005780637cbb45c81461038e57806389f8ba4f146103965780638da5cb5b146103a957806392f4f506146103b15780639d5c4b78146103e9578063a809c1fc146103fc578063b491702c1461040f578063b86b69f114610422578063bbf2aefb1461042a578063be3d3ee61461043d578063c4d66de814610450578063da7810fe14610463578063dbc71ccb14610476578063dc33f4ae14610489578063f146f17f1461049c578063f2fde38b146104af578063f73f4991146104c2578063f8ac18be146104d5578063f9c0fae6146104e857600080fd5b806304e3c7f6146101cc57806307f9f786146101e1578063199eb8e0146101ff5780631a051d49146102125780631e9bef4614610225578063230448b11461024557806325ffb37614610268578063336af8101461028f5780633bd7cfa2146102af578063474bbdc2146102c257806351eda999146102d557806352ccc021146102ea5780635668bc5e146102fd5780635710f83d1461033a578063596224dc1461034d57806359d8a733146103605780636c4056a814610373578063715018a614610386575b600080fd5b6101df6101da36600461232e565b6104fb565b005b6101e961060b565b6040516101f69190612350565b60405180910390f35b6101df61020d3660046123b9565b6106ba565b6101df610220366004612497565b610715565b606554610238906001600160a01b031681565b6040516101f691906124e6565b6102586102533660046124fa565b6107f0565b60405190151581526020016101f6565b61027b61027636600461254e565b61089c565b6040516101f69897969594939291906125b7565b6102a261029d36600461232e565b610ab3565b6040516101f6919061263c565b6101df6102bd36600461264f565b610b65565b6102a26102d0366004612695565b610bd6565b6102dd610d12565b6040516101f691906126bf565b6101df6102f836600461254e565b610dd1565b61032c61030b36600461254e565b600090815260686020526040902060060154600160301b900462ffffff1690565b6040519081526020016101f6565b6101df61034836600461264f565b610ee5565b6101df61035b366004612497565b610fab565b61023861036e36600461254e565b611067565b6102a261038136600461254e565b6110c2565b6101df61111f565b61032c611133565b6101df6103a436600461232e565b611144565b610238611227565b6102386103bf36600461232e565b6000918252606860209081526040808420928452600590920190529020546001600160a01b031690565b6102a26103f736600461232e565b61123b565b6101df61040a366004612721565b611266565b6102a261041d36600461232e565b61139c565b61032c6113fe565b6101df6104383660046127b2565b61140a565b6101df61044b36600461264f565b61148b565b6101df61045e3660046123b9565b6114ed565b6101df610471366004612497565b611608565b6101df6104843660046123b9565b6116ae565b6101df61049736600461264f565b61175f565b6101df6104aa36600461264f565b611831565b6101df6104bd3660046123b9565b6118e2565b6101df6104d0366004612695565b61195b565b6101df6104e336600461254e565b611a2b565b6101df6104f636600461264f565b611b95565b61050b630271e3fb60e11b611bfa565b61051482611c4a565b600082815260686020526040902060068101546301000000900462ffffff1680831061055b5760405162461bcd60e51b8152600401610552906127e5565b60405180910390fd5b600061056860018361282d565b60008681526068602090815260408083208484526003908101835281842089855290880190925290912091925061059f90826128d8565b50600081815260038401602052604081206105b9916122e0565b60068301805465ffffff0000001916630100000062ffffff841602179055604051849086907fc02725dfc9639e3399432cdae3db1c062229f4cc41bcc18631517617c020b71c90600090a35050505050565b606060006106196069611ca1565b90506000816001600160401b03811115610635576106356123d4565b60405190808252806020026020018201604052801561065e578160200160208202803683370190505b50905060005b828110156106b357610677606982611cab565b828281518110610689576106896129b2565b6001600160a01b0390921660209283029190910190910152806106ab816129c8565b915050610664565b5092915050565b6106c962ccf5c760e51b611bfa565b6106d281611cbe565b6106dd606982611d13565b506040516001600160a01b038216907f2453d2f77bae1012d39e2257356d2566625ebe0ffd6094198aa051689dc65ba090600090a250565b610725631a051d4960e01b611bfa565b61072e81611d28565b61073783611c4a565b60008381526068602052604090206006810154600160301b900462ffffff16831061079c5760405162461bcd60e51b81526020600482015260156024820152747363726970744964206f7574206f662072616e676560581b6044820152606401610552565b6107a582611d77565b600084815260058301602052604080822080546001600160a01b0319166001600160a01b03949094169390931790925590518591600080516020612d2d83398151915291a250505050565b6000806107fb611227565b6001600160a01b03161415801561089457506065546040516217798b60e61b81526001600160a01b03868116600483015285811660248301526001600160e01b031985166044830152909116906305de62c0906064016020604051808303816000875af1158015610870573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089491906129e1565b949350505050565b60008181526068602052604081206060918291829082908290829081906108c28a611e27565b60068201548254839162ffffff808216926002850192630100000081048316926004870192600160301b909204168015159187906108ff90612840565b80601f016020809104026020016040519081016040528092919081815260200182805461092b90612840565b80156109785780601f1061094d57610100808354040283529160200191610978565b820191906000526020600020905b81548152906001019060200180831161095b57829003601f168201915b5050505050965084805461098b90612840565b80601f01602080910402602001604051908101604052809291908181526020018280546109b790612840565b8015610a045780601f106109d957610100808354040283529160200191610a04565b820191906000526020600020905b8154815290600101906020018083116109e757829003601f168201915b50505050509450828054610a1790612840565b80601f0160208091040260200160405190810160405280929190818152602001828054610a4390612840565b8015610a905780601f10610a6557610100808354040283529160200191610a90565b820191906000526020600020905b815481529060010190602001808311610a7357829003601f168201915b505050505092509850985098509850985098509850985050919395975091939597565b60008281526068602090815260408083208484526003019091529020805460609190610ade90612840565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0a90612840565b8015610b575780601f10610b2c57610100808354040283529160200191610b57565b820191906000526020600020905b815481529060010190602001808311610b3a57829003601f168201915b505050505090505b92915050565b610b75631debe7d160e11b611bfa565b610b7e82611c4a565b6000828152606860205260409020600401610b998282612a03565b50817f9959f3af1c0191277b92c192984b5ca38adaf82d8465332b4da850e0e6a199f482604051610bca919061263c565b60405180910390a25050565b6060610be183611cbe565b6001600160a01b0383166000908152606b602090815260408083208584529091529020548015610c1c57610c1481611e27565b915050610b5f565b604051633ae7357560e21b8152600481018490526001600160a01b0385169063eb9cd5d490602401600060405180830381865afa925050508015610c8257506040513d6000823e601f3d908101601f19168201604052610c7f9190810190612afb565b60015b610d065760405162461bcd60e51b815260206004820152604960248201527f436f6e747261637420646f6573206e6f7420696d706c656d656e742070726f6a60448201527f65637453637269707444657461696c7320616e6420686173206e6f206f7665726064820152683934b2329039b2ba1760b91b608482015260a401610552565b82945050505050610b5f565b60606000610d206066611ca1565b6001600160401b03811115610d3757610d376123d4565b604051908082528060200260200182016040528015610d6a57816020015b6060815260200190600190039081610d555790505b5090506000610d796066611ca1565b905060005b81811015610dc957610d99610d94606683611cab565b611e27565b838281518110610dab57610dab6129b2565b60200260200101819052508080610dc1906129c8565b915050610d7e565b509092915050565b610de16352ccc02160e01b611bfa565b610dea81611c4a565b60008181526068602052604090206006810154600160301b900462ffffff16610e555760405162461bcd60e51b815260206004820152601e60248201527f746865726520617265206e6f207363726970747320746f2072656d6f766500006044820152606401610552565b60068101546005820190600090610e7a90600190600160301b900462ffffff16612b67565b62ffffff908116825260208201929092526040908101600090812080546001600160a01b031916905560068401805462ffffff60301b198116600160301b918290048616600019019095160293909317909255518391600080516020612d2d83398151915291a25050565b610ef5635710f83d60e01b611bfa565b610efe81611d28565b610f0782611c4a565b600082815260686020908152604080832060068101546301000000900462ffffff16808552600382019093529220610f3f8482612a03565b50610f4b816001612b83565b8260060160036101000a81548162ffffff021916908362ffffff160217905550837ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde8483604051610f9d929190612b96565b60405180910390a250505050565b610fbb631658893760e21b611bfa565b610fc481611d28565b610fcd83611c4a565b600083815260686020526040902060068101546301000000900462ffffff1680841061100b5760405162461bcd60e51b8152600401610552906127e5565b600084815260038301602052604090206110258482612a03565b50847ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde8486604051611058929190612b96565b60405180910390a25050505050565b6000816110746069611ca1565b116110b75760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b6044820152606401610552565b610b5f606983611cab565b6060816110cf6066611ca1565b116111115760405162461bcd60e51b8152602060048201526012602482015271496e646578206f7574206f662072616e676560701b6044820152606401610552565b610b5f610d94606684611cab565b611127611e92565b6111316000611ef1565b565b600061113f6066611ca1565b905090565b6111546389f8ba4f60e01b611bfa565b61115d82611c4a565b6000828152606860205260409020600681015462ffffff168083106111945760405162461bcd60e51b8152600401610552906127e5565b60006111a160018361282d565b600081815260018501602052604080822087835291209192506111c490826128d8565b50600081815260018401602052604081206111de916122e0565b60068301805462ffffff191662ffffff8316179055604051849086907f225454b600cf489553fde6e3b7f5e458b1093c035390b678067ea799b3b016cd90600090a35050505050565b600061113f6033546001600160a01b031690565b60008281526068602090815260408083208484526001019091529020805460609190610ade90612840565b611276632a02707f60e21b611bfa565b611281606685611f1c565b156112ce5760405162461bcd60e51b815260206004820152601e60248201527f446570656e64656e6379207479706520616c72656164792065786973747300006044820152606401610552565b6112db8460406001611f28565b6113245760405162461bcd60e51b815260206004820152601a60248201527901b5d5cdd0818dbdb9d185a5b88195e1858dd1b1e481bdb9948160361b6044820152606401610552565b61132f606685611f9b565b506000848152606860205260409020806113498582612a03565b50600281016113588482612a03565b50600481016113678382612a03565b50847f39626dd6a5a74e9944752116c5e878fbb4c1ac0cab72cd316f6f25ee19cff76585858560405161105893929190612bb8565b6000828152606860205260409020600681015460609190600160301b900462ffffff1683106113db575050604080516020810190915260008152610b5f565b6000838152600582016020526040902054610894906001600160a01b0316611fa7565b600061113f6069611ca1565b61141a63bbf2aefb60e01b611bfa565b61142381611c4a565b61142c83611cbe565b6001600160a01b0383166000818152606b6020908152604080832086845282529182902084905590518381528492917f27d39273f3676c181ec3de60b583da776123d9f9517761fb91f370a83c798918910160405180910390a3505050565b61149b635f1e9f7360e11b611bfa565b6114a482611c4a565b60008281526068602052604090206114bc8282612a03565b50817fc9890a31ec780bb5a8a017d683d3913f97260548d71c2cee78194ed2833f023582604051610bca919061263c565b600054610100900460ff161580801561150d5750600054600160ff909116105b806115275750303b158015611527575060005460ff166001145b61158a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610552565b6000805460ff1916600117905580156115ad576000805461ff0019166101001790555b6115b5612026565b6115be82611ef1565b8015611604576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b611618636d3c087f60e11b611bfa565b61162181611d28565b61162a83611c4a565b6000838152606860205260409020600681015462ffffff168084106116615760405162461bcd60e51b8152600401610552906127e5565b6000848152600183016020526040902061167b8482612a03565b50847f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d8486604051611058929190612b96565b6116be63dbc71ccb60e01b611bfa565b6116c781612055565b6116d26069826120a9565b1561171c5760405162461bcd60e51b815260206004820152601a60248201527910dbdb9d1c9858dd08185b1c9958591e481cdd5c1c1bdc9d195960321b6044820152606401610552565b6117276069826120be565b506040516001600160a01b038216907f59e1b889b92ad05213b7934a67c5d824348c868455d1c741a2cfe16e46d832dc90600090a250565b61176f636e19fa5760e11b611bfa565b61177881611d28565b61178182611c4a565b600082815260686020526040902061179882611d77565b600682018054600160301b9081900462ffffff9081166000908152600586016020526040902080546001600160a01b0319166001600160a01b03959095169490941790935590546117ee92919004166001612bfb565b60068201805462ffffff92909216600160301b0262ffffff60301b199092169190911790556040518390600080516020612d2d83398151915290600090a2505050565b61184163f146f17f60e01b611bfa565b61184a81611d28565b61185382611c4a565b6000828152606860209081526040808320600681015462ffffff168085526001820190935292206118848482612a03565b50611890816001612b83565b8260060160006101000a81548162ffffff021916908362ffffff160217905550837f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d8483604051610f9d929190612b96565b6118ea611e92565b6001600160a01b03811661194f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610552565b61195881611ef1565b50565b61196b63f73f499160e01b611bfa565b6001600160a01b0382166000908152606b602090815260408083208484529091529020546119d95760405162461bcd60e51b815260206004820152601b60248201527a139bc81bdd995c9c9a5919481cd95d08199bdc881c1c9bda9958dd602a1b6044820152606401610552565b6001600160a01b0382166000818152606b60209081526040808320858452909152808220829055518392917f0732620824c0200808d04ab037f3abc3c31853170b90f5a855d32f44486048ed91a35050565b611a3b637c560c5f60e11b611bfa565b611a4481611c4a565b6000818152606860205260409020600681015462ffffff16158015611a77575060068101546301000000900462ffffff16155b8015611a9157506006810154600160301b900462ffffff16155b611b135760405162461bcd60e51b815260206004820152604760248201527f43616e6e6f742072656d6f766520646570656e64656e6379207769746820616460448201527f646974696f6e616c2043444e732c207265706f7369746f726965732c206f72206064820152667363726970747360c81b608482015260a401610552565b611b1e6066836120d3565b50600082815260686020526040812090611b3882826122e0565b611b466002830160006122e0565b611b546004830160006122e0565b5060060180546001600160481b031916905560405182907f60e2aa021c4f5303dd65e2173f0180636e4d42eaefc6187278e92bee9d06aa7290600090a25050565b611ba5637ce07d7360e11b611bfa565b611bae82611c4a565b6000828152606860205260409020600201611bc98282612a03565b50817f774918414e4887efe5349a305fe253ee8b1e3fe0c2117012f0c215645693cbfd82604051610bca919061263c565b611c053330836107f0565b6119585760405162461bcd60e51b815260206004820152601660248201527513db9b1e4810591b5a5b881050d308185b1b1bddd95960521b6044820152606401610552565b611c55606682611f1c565b6119585760405162461bcd60e51b815260206004820152601e60248201527f446570656e64656e6379207479706520646f6573206e6f7420657869737400006044820152606401610552565b6000610b5f825490565b6000611cb783836120df565b9392505050565b611cc96069826120a9565b6119585760405162461bcd60e51b815260206004820152601b60248201527a10dbdc994818dbdb9d1c9858dd081b9bdd081cdd5c1c1bdc9d1959602a1b6044820152606401610552565b6000611cb7836001600160a01b038416612109565b80516000036119585760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d656d70747920737472696e6760281b6044820152606401610552565b6000807f42797465636f646553746f726167655f56312e302e305f5f5f5f5f5f5f5f5f203084604051602001611daf93929190612c17565b60405160208183030381529060405290508051602082016000f091506001600160a01b038216611e215760405162461bcd60e51b815260206004820152601e60248201527f436f6e7472616374417353746f726167653a205772697465204572726f7200006044820152606401610552565b50919050565b606060005b828160ff1660208110611e4157611e416129b2565b1a60f81b6001600160f81b03191615801590611e60575060208160ff16105b15611e775780611e6f81612c78565b915050611e2c565b60405191506040820160405280825282602083015250919050565b33611e9b611227565b6001600160a01b0316146111315760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610552565b611efa816121fc565b606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000611cb7838361224e565b600080805b60208160ff161015611f87576000868260ff1660208110611f5057611f506129b2565b1a90508015801590611f65575060808160ff16105b15611f7e578560ff168160ff1603611f7e578260010192505b50600101611f2d565b8360ff168260ff1614925050509392505050565b6000611cb78383612266565b604051630eacc5e760e31b815260609073__$f5e9d4569caf27524ac52628f2516ab106$__906375662f3890611fe19085906004016124e6565b600060405180830381865af4158015611ffe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b5f9190810190612c97565b600054610100900460ff1661204d5760405162461bcd60e51b815260040161055290612ccb565b6111316122b0565b6001600160a01b0381166119585760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d7a65726f206164647265737360281b6044820152606401610552565b6000611cb7836001600160a01b03841661224e565b6000611cb7836001600160a01b038416612266565b6000611cb78383612109565b60008260000182815481106120f6576120f66129b2565b9060005260206000200154905092915050565b600081815260018301602052604081205480156121f257600061212d60018361282d565b85549091506000906121419060019061282d565b90508181146121a6576000866000018281548110612161576121616129b2565b9060005260206000200154905080876000018481548110612184576121846129b2565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806121b7576121b7612d16565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610b5f565b6000915050610b5f565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60009081526001919091016020526040902054151590565b6000612272838361224e565b6122a857508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610b5f565b506000610b5f565b600054610100900460ff166122d75760405162461bcd60e51b815260040161055290612ccb565b61113133611ef1565b5080546122ec90612840565b6000825580601f106122fc575050565b601f01602090049060005260206000209081019061195891905b8082111561232a5760008155600101612316565b5090565b6000806040838503121561234157600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b818110156123915783516001600160a01b03168352928401929184019160010161236c565b50909695505050505050565b80356001600160a01b03811681146123b457600080fd5b919050565b6000602082840312156123cb57600080fd5b611cb78261239d565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612412576124126123d4565b604052919050565b60006001600160401b03821115612433576124336123d4565b50601f01601f191660200190565b600082601f83011261245257600080fd5b81356124656124608261241a565b6123ea565b81815284602083860101111561247a57600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000606084860312156124ac57600080fd5b833592506020840135915060408401356001600160401b038111156124d057600080fd5b6124dc86828701612441565b9150509250925092565b6001600160a01b0391909116815260200190565b60008060006060848603121561250f57600080fd5b6125188461239d565b92506125266020850161239d565b915060408401356001600160e01b03198116811461254357600080fd5b809150509250925092565b60006020828403121561256057600080fd5b5035919050565b60005b8381101561258257818101518382015260200161256a565b50506000910152565b600081518084526125a3816020860160208601612567565b601f01601f19169290920160200192915050565b60006101008083526125cb8184018c61258b565b905082810360208401526125df818b61258b565b905062ffffff808a16604085015283820360608501526125ff828a61258b565b9150808816608085015283820360a085015261261b828861258b565b925085151560c085015280851660e085015250509998505050505050505050565b602081526000611cb7602083018461258b565b6000806040838503121561266257600080fd5b8235915060208301356001600160401b0381111561267f57600080fd5b61268b85828601612441565b9150509250929050565b600080604083850312156126a857600080fd5b6126b18361239d565b946020939093013593505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561271457603f1988860301845261270285835161258b565b945092850192908501906001016126e6565b5092979650505050505050565b6000806000806080858703121561273757600080fd5b8435935060208501356001600160401b038082111561275557600080fd5b61276188838901612441565b9450604087013591508082111561277757600080fd5b61278388838901612441565b9350606087013591508082111561279957600080fd5b506127a687828801612441565b91505092959194509250565b6000806000606084860312156127c757600080fd5b6127d08461239d565b95602085013595506040909401359392505050565b602080825260189082015277417373657420696e646578206f7574206f662072616e676560401b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b81810381811115610b5f57610b5f612817565b600181811c9082168061285457607f821691505b602082108103611e2157634e487b7160e01b600052602260045260246000fd5b601f8211156128be57600081815260208120601f850160051c8101602086101561289b5750805b601f850160051c820191505b818110156128ba578281556001016128a7565b5050505b505050565b600019600383901b1c191660019190911b1790565b8181036128e3575050565b6128ed8254612840565b6001600160401b03811115612904576129046123d4565b612918816129128454612840565b84612874565b6000601f82116001811461294657600083156129345750848201545b61293e84826128c3565b8555506129ab565b600085815260209020601f19841690600086815260209020845b838110156129805782860154825560019586019590910190602001612960565b508583101561299e5781850154600019600388901b60f8161c191681555b50505060018360011b0184555b5050505050565b634e487b7160e01b600052603260045260246000fd5b6000600182016129da576129da612817565b5060010190565b6000602082840312156129f357600080fd5b81518015158114611cb757600080fd5b81516001600160401b03811115612a1c57612a1c6123d4565b612a2a816129128454612840565b602080601f831160018114612a595760008415612a475750858301515b612a5185826128c3565b8655506128ba565b600085815260208120601f198616915b82811015612a8857888601518255948401946001909101908401612a69565b5085821015612aa65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082601f830112612ac757600080fd5b8151612ad56124608261241a565b818152846020838601011115612aea57600080fd5b610894826020830160208701612567565b600080600060608486031215612b1057600080fd5b83516001600160401b0380821115612b2757600080fd5b612b3387838801612ab6565b94506020860151915080821115612b4957600080fd5b50612b5686828701612ab6565b925050604084015190509250925092565b62ffffff8281168282160390808211156106b3576106b3612817565b80820180821115610b5f57610b5f612817565b604081526000612ba9604083018561258b565b90508260208301529392505050565b606081526000612bcb606083018661258b565b8281036020840152612bdd818661258b565b90508281036040840152612bf1818561258b565b9695505050505050565b62ffffff8181168382160190808211156106b3576106b3612817565b6a600b5981380380925939f360a81b8152607f60f91b600b820152600c81018490526000602c8201819052606084901b6001600160601b03191660388301528251612c6981604c850160208701612567565b91909101604c01949350505050565b600060ff821660ff8103612c8e57612c8e612817565b60010192915050565b600060208284031215612ca957600080fd5b81516001600160401b03811115612cbf57600080fd5b61089484828501612ab6565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052603160045260246000fdfef79e11fc86b9bf37d5dfd4359c053136f7c046da6a08f9cf7ca56d80d5aab839a2646970667358221220f8421f52350556c4d909b162126d6c06dfe7e06ec4c838c22fd94fb9c99876be64736f6c63430008130033",
1187
+ "bytecode": "0x608060405234801561001057600080fd5b50613417806100206000396000f3fe608060405234801561001057600080fd5b506004361061021e5760003560e01c8063a1a7a47b1161012c578063a1a7a47b1461041c578063b86b69f11461042f578063ba22851214610437578063bbf2aefb1461044a578063bd880b461461045d578063be3d3ee614610470578063c073927014610483578063c0cd565f14610496578063c4d66de8146104a9578063caaa3bb7146104bc578063cc86ba4b146104cf578063cea2961a146104e2578063dbc71ccb146104f5578063dc33f4ae14610508578063dfa3be531461051b578063f0b993821461052e578063f146f17f14610541578063f2fde38b14610554578063f73f499114610567578063f8ac18be1461057a578063f9c0fae61461058d578063fb5cd19b146105a0578063fed37e82146105a857600080fd5b8062e879031461022357806307f9f7861461024c5780631376218614610261578063199eb8e0146102765780631a051d49146102895780631e9bef461461029c578063230448b1146102bc57806325ffb376146102df5780633bd7cfa2146103075780633e76919a1461031a578063474bbdc21461032d5780634bd1a38714610340578063518cb3df1461035357806351eda9991461036657806352ccc0211461037b5780635668bc5e1461038e5780635710f83d146103cb57806366d549a1146103de5780636dfa9f56146103f1578063715018a6146104045780637cbb45c81461040c5780638da5cb5b14610414575b600080fd5b610236610231366004612908565b6105b0565b604051610243919061297a565b60405180910390f35b61025461067a565b604051610243919061298d565b61027461026f366004612a9d565b610729565b005b610274610284366004612b08565b6107c9565b610274610297366004612a9d565b61087f565b6065546102af906001600160a01b031681565b6040516102439190612b23565b6102cf6102ca366004612b37565b61091f565b6040519015158152602001610243565b6102f26102ed366004612b8b565b6109cd565b60405161024399989796959493929190612ba4565b610274610315366004612c3f565b610c01565b6102af610328366004612b8b565b610c72565b61023661033b366004612c85565b610c92565b61027461034e366004612caf565b610dce565b610236610361366004612908565b610e91565b61036e611080565b6040516102439190612cdb565b610274610389366004612b8b565b61112e565b6103bd61039c366004612b8b565b600090815260686020526040902060070154600160301b900462ffffff1690565b604051908152602001610243565b6102746103d9366004612c3f565b611242565b6102746103ec366004612d3d565b6112fa565b6102746103ff366004612908565b611443565b610274611535565b6103bd611549565b6102af61155a565b61027461042a366004612908565b61156e565b6103bd61163c565b6103bd610445366004612908565b611648565b610274610458366004612dd8565b611718565b61023661046b366004612b8b565b611799565b61027461047e366004612c3f565b6117b7565b610274610491366004612b8b565b61181c565b6102746104a4366004612e0b565b611908565b6102746104b7366004612b08565b611998565b6102746104ca366004612a9d565b611ab3565b6102366104dd366004612b8b565b611b4c565b6102cf6104f0366004612b08565b611b6a565b610274610503366004612b08565b611b77565b610274610516366004612c3f565b611c1b565b6102af610529366004612908565b611caa565b61023661053c366004612908565b611cf3565b61027461054f366004612c3f565b611d3c565b610274610562366004612b08565b611ded565b610274610575366004612c85565b611e66565b610274610588366004612b8b565b611f36565b61027461059b366004612c3f565b6120a6565b61036e61210b565b6103bd6121b4565b60008281526068602052604090206007810154606091906105d790849062ffffff166121c0565b6000838152600282016020526040902080546105f290612e40565b80601f016020809104026020016040519081016040528092919081815260200182805461061e90612e40565b801561066b5780601f106106405761010080835404028352916020019161066b565b820191906000526020600020905b81548152906001019060200180831161064e57829003601f168201915b50505050509150505b92915050565b60606000610688606b612204565b90506000816001600160401b038111156106a4576106a46129da565b6040519080825280602002602001820160405280156106cd578160200160208202803683370190505b50905060005b82811015610722576106e6606b8261220e565b8282815181106106f8576106f8612e74565b6001600160a01b03909216602092830291909101909101528061071a81612ea0565b9150506106d3565b5092915050565b6107396309bb10c360e11b61221a565b6107428161226a565b61074b836122b9565b6000838152606860205260409020600781015461076e90849062ffffff166121c0565b600083815260028201602052604090206107888382612f1d565b50837f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d83856040516107bb929190612fd6565b60405180910390a250505050565b6107d862ccf5c760e51b61221a565b6107e3606b82612310565b6108485760405162461bcd60e51b815260206004820152602b60248201527f436f726520636f6e747261637420616c72656164792072656d6f766564206f7260448201526a081b9bdd081a5b881cd95d60aa1b60648201526084015b60405180910390fd5b6040516001600160a01b038216907f2453d2f77bae1012d39e2257356d2566625ebe0ffd6094198aa051689dc65ba090600090a250565b61088f631a051d4960e01b61221a565b6108988161226a565b6108a1836122b9565b600083815260686020526040902060078101546108cb908490600160301b900462ffffff166121c0565b6108d482612325565b600084815260068301602052604080822080546001600160a01b0319166001600160a01b039490941693909317909255905185916000805160206133c283398151915291a250505050565b60008061092a61155a565b6001600160a01b0316141580156109c357506065546040516217798b60e61b81526001600160a01b03868116600483015285811660248301526001600160e01b031985166044830152909116906305de62c0906064016020604051808303816000875af115801561099f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c39190612ff8565b90505b9392505050565b606080606060006060600060606000806000606860008c815260200190815260200160002090506109fd8b6123d5565b8154610a08906123d5565b6007830154600184018054909162ffffff8082169260038801926301000000810483169260058a0192600160301b90920416801515918790610a4990612e40565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7590612e40565b8015610ac25780601f10610a9757610100808354040283529160200191610ac2565b820191906000526020600020905b815481529060010190602001808311610aa557829003601f168201915b50505050509650848054610ad590612e40565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0190612e40565b8015610b4e5780601f10610b2357610100808354040283529160200191610b4e565b820191906000526020600020905b815481529060010190602001808311610b3157829003601f168201915b50505050509450828054610b6190612e40565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8d90612e40565b8015610bda5780601f10610baf57610100808354040283529160200191610bda565b820191906000526020600020905b815481529060010190602001808311610bbd57829003601f168201915b50505050509250995099509950995099509950995099509950509193959799909294969850565b610c11631debe7d160e11b61221a565b610c1a826122b9565b6000828152606860205260409020600501610c358282612f1d565b50817f9959f3af1c0191277b92c192984b5ca38adaf82d8465332b4da850e0e6a199f482604051610c66919061297a565b60405180910390a25050565b6000610c8782610c82606b612204565b6121c0565b610674606b8361220e565b6060610c9d83612440565b6001600160a01b0383166000908152606d602090815260408083208584529091529020548015610cd857610cd0816123d5565b915050610674565b604051633ae7357560e21b8152600481018490526001600160a01b0385169063eb9cd5d490602401600060405180830381865afa925050508015610d3e57506040513d6000823e601f3d908101601f19168201604052610d3b919081019061306a565b60015b610dc25760405162461bcd60e51b815260206004820152604960248201527f436f6e747261637420646f6573206e6f7420696d706c656d656e742070726f6a60448201527f65637453637269707444657461696c7320616e6420686173206e6f206f7665726064820152683934b2329039b2ba1760b91b608482015260a40161083f565b82945050505050610674565b610dde634bd1a38760e01b61221a565b610de781612495565b610df0826122b9565b6000828152606860209081526040808320600781018054600160301b9081900462ffffff9081168752600684019095529290942080546001600160a01b0319166001600160a01b0387161790559254610e4e929190041660016130d6565b60078201805462ffffff92909216600160301b0262ffffff60301b1990921691909117905560405183906000805160206133c283398151915290600090a2505050565b6000828152606860205260409020600781015460609190610ebf908490600160301b900462ffffff166121c0565b600083815260068201602052604080822054905163cc31a33160e01b81526001600160a01b03909116919073__$55f4e50e6128becd8bf164b272db98df09$__9063cc31a33190610f14908590600401612b23565b602060405180830381865af4158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5591906130f2565b90507f554e4b4e4f574e5f56455253494f4e5f535452494e475f5f5f5f5f5f5f5f5f20810361100457604051632475d70960e01b815273__$55f4e50e6128becd8bf164b272db98df09$__90632475d70990610fb5908590600401612b23565b600060405180830381865af4158015610fd2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ffa919081019061310b565b9350505050610674565b604051630eacc5e760e31b815273__$55f4e50e6128becd8bf164b272db98df09$__906375662f389061103b908590600401612b23565b600060405180830381865af4158015611058573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ffa9190810190613153565b6060600061108e6066612204565b90506000816001600160401b038111156110aa576110aa6129da565b6040519080825280602002602001820160405280156110dd57816020015b60608152602001906001900390816110c85790505b50905060005b82811015610722576110fe6110f960668361220e565b6123d5565b82828151811061111057611110612e74565b6020026020010181905250808061112690612ea0565b9150506110e3565b61113e6352ccc02160e01b61221a565b611147816122b9565b60008181526068602052604090206007810154600160301b900462ffffff166111b25760405162461bcd60e51b815260206004820152601e60248201527f746865726520617265206e6f207363726970747320746f2072656d6f76650000604482015260640161083f565b600781015460068201906000906111d790600190600160301b900462ffffff16613187565b62ffffff908116825260208201929092526040908101600090812080546001600160a01b031916905560078401805462ffffff60301b198116600160301b9182900486166000190190951602939093179092555183916000805160206133c283398151915291a25050565b611252635710f83d60e01b61221a565b61125b8161226a565b611264826122b9565b600082815260686020908152604080832060078101546301000000900462ffffff1680855260048201909352922061129c8482612f1d565b506112a88160016131a3565b8260070160036101000a81548162ffffff021916908362ffffff160217905550837ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde84836040516107bb929190612fd6565b61130a6366d549a160e01b61221a565b611313846124e9565b611320856040600161253e565b6113695760405162461bcd60e51b815260206004820152601a60248201527901b5d5cdd0818dbdb9d185a5b88195e1858dd1b1e481bdb9948160361b604482015260640161083f565b6113746066866125b2565b6113c05760405162461bcd60e51b815260206004820152601e60248201527f446570656e64656e6379207479706520616c7265616479206578697374730000604482015260640161083f565b6000858152606860205260409020848155600181016113df8582612f1d565b50600381016113ee8482612f1d565b50600581016113fd8382612f1d565b5084867f14d15ecf0e955bdd7a921efba642deef4d718696d3fc369454c84817fed0fb77868686604051611433939291906131b6565b60405180910390a3505050505050565b6114536336fd4fab60e11b61221a565b61145c826122b9565b600082815260686020526040902060078101546301000000900462ffffff1661148583826121c0565b60006114926001836131f9565b6000868152606860209081526040808320848452600490810183528184208985529088019092529091209192506114c9908261320c565b50600081815260048401602052604081206114e3916128ba565b60078301805465ffffff0000001916630100000062ffffff841602179055604051849086907fc02725dfc9639e3399432cdae3db1c062229f4cc41bcc18631517617c020b71c90600090a35050505050565b61153d6125be565b611547600061261d565b565b60006115556066612204565b905090565b60006115556033546001600160a01b031690565b61157e63a1a7a47b60e01b61221a565b611587826122b9565b6000828152606860205260409020600781015462ffffff166115a983826121c0565b60006115b66001836131f9565b600081815260028501602052604080822087835291209192506115d9908261320c565b50600081815260028401602052604081206115f3916128ba565b60078301805462ffffff191662ffffff8316179055604051849086907f225454b600cf489553fde6e3b7f5e458b1093c035390b678067ea799b3b016cd90600090a35050505050565b6000611555606b612204565b60008281526068602052604081206007810154611672908490600160301b900462ffffff166121c0565b60008481526068602090815260408083208684526006019091529081902054905163cc31a33160e01b815273__$55f4e50e6128becd8bf164b272db98df09$__9163cc31a331916116cf916001600160a01b031690600401612b23565b602060405180830381865af41580156116ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171091906130f2565b949350505050565b61172863bbf2aefb60e01b61221a565b611731816122b9565b61173a83612440565b6001600160a01b0383166000818152606d6020908152604080832086845282529182902084905590518381528492917f27d39273f3676c181ec3de60b583da776123d9f9517761fb91f370a83c798918910160405180910390a3505050565b60606117a982610c826066612204565b6106746110f960668461220e565b6117c7635f1e9f7360e11b61221a565b6117d0826122b9565b60008281526068602052604090206001016117eb8282612f1d565b50817fc9890a31ec780bb5a8a017d683d3913f97260548d71c2cee78194ed2833f023582604051610c66919061297a565b61182c630c07392760e41b61221a565b6118376069826125b2565b6118815760405162461bcd60e51b815260206004820152601b60248201527a4c6963656e7365207479706520616c72656164792065786973747360281b604482015260640161083f565b806118da5760405162461bcd60e51b815260206004820152602360248201527f4c6963656e736520747970652063616e6e6f7420626520656d70747920737472604482015262696e6760e81b606482015260840161083f565b60405181907fad5dcce4588345db351371d105540f3fb69966f418d923539f19d5f44a1cfc4b90600090a250565b61191863c0cd565f60e01b61221a565b61192181612495565b61192a836122b9565b60008381526068602052604090206007810154611954908490600160301b900462ffffff166121c0565b600083815260068201602052604080822080546001600160a01b0319166001600160a01b0386161790555185916000805160206133c283398151915291a250505050565b600054610100900460ff16158080156119b85750600054600160ff909116105b806119d25750303b1580156119d2575060005460ff166001145b611a355760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161083f565b6000805460ff191660011790558015611a58576000805461ff0019166101001790555b611a60612648565b611a698261261d565b8015611aaf576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b611ac363caaa3bb760e01b61221a565b611acc8161226a565b611ad5836122b9565b60008381526068602052604090206007810154611aff9084906301000000900462ffffff166121c0565b60008381526004820160205260409020611b198382612f1d565b50837ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde83856040516107bb929190612fd6565b6060611b5c82610c826069612204565b6106746110f960698461220e565b6000610674606b83612677565b611b8763dbc71ccb60e01b61221a565b611b9081612495565b611b9b606b8261268c565b611be45760405162461bcd60e51b815260206004820152601a60248201527910dbdb9d1c9858dd08185b1c9958591e481cdd5c1c1bdc9d195960321b604482015260640161083f565b6040516001600160a01b038216907f59e1b889b92ad05213b7934a67c5d824348c868455d1c741a2cfe16e46d832dc90600090a250565b611c2b636e19fa5760e11b61221a565b611c348161226a565b611c3d826122b9565b6000828152606860205260409020611c5482612325565b600782018054600160301b9081900462ffffff9081166000908152600686016020526040902080546001600160a01b0319166001600160a01b0395909516949094179093559054610e4e929190041660016130d6565b60008281526068602052604081206007810154611cd4908490600160301b900462ffffff166121c0565b60009283526006016020525060409020546001600160a01b0316919050565b6000828152606860205260409020600781015460609190611d219084906301000000900462ffffff166121c0565b6000838152600482016020526040902080546105f290612e40565b611d4c63f146f17f60e01b61221a565b611d558161226a565b611d5e826122b9565b6000828152606860209081526040808320600781015462ffffff16808552600282019093529220611d8f8482612f1d565b50611d9b8160016131a3565b8260070160006101000a81548162ffffff021916908362ffffff160217905550837f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d84836040516107bb929190612fd6565b611df56125be565b6001600160a01b038116611e5a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161083f565b611e638161261d565b50565b611e7663f73f499160e01b61221a565b6001600160a01b0382166000908152606d60209081526040808320848452909152902054611ee45760405162461bcd60e51b815260206004820152601b60248201527a139bc81bdd995c9c9a5919481cd95d08199bdc881c1c9bda9958dd602a1b604482015260640161083f565b6001600160a01b0382166000818152606d60209081526040808320858452909152808220829055518392917f0732620824c0200808d04ab037f3abc3c31853170b90f5a855d32f44486048ed91a35050565b611f46637c560c5f60e11b61221a565b611f4f816122b9565b6000818152606860205260409020600781015462ffffff16158015611f82575060078101546301000000900462ffffff16155b8015611f9c57506007810154600160301b900462ffffff16155b61201e5760405162461bcd60e51b815260206004820152604760248201527f43616e6e6f742072656d6f766520646570656e64656e6379207769746820616460448201527f646974696f6e616c2043444e732c207265706f7369746f726965732c206f72206064820152667363726970747360c81b608482015260a40161083f565b6120296066836126a1565b5060008281526068602052604081208181559061204960018301826128ba565b6120576003830160006128ba565b6120656005830160006128ba565b5060070180546001600160481b031916905560405182907f60e2aa021c4f5303dd65e2173f0180636e4d42eaefc6187278e92bee9d06aa7290600090a25050565b6120b6637ce07d7360e11b61221a565b6120bf826122b9565b60008281526068602052604090206003016120da8282612f1d565b50817f774918414e4887efe5349a305fe253ee8b1e3fe0c2117012f0c215645693cbfd82604051610c66919061297a565b606060006121196069612204565b90506000816001600160401b03811115612135576121356129da565b60405190808252806020026020018201604052801561216857816020015b60608152602001906001900390816121535790505b50905060005b82811015610722576121846110f960698361220e565b82828151811061219657612196612e74565b602002602001018190525080806121ac90612ea0565b91505061216e565b60006115556069612204565b808210611aaf5760405162461bcd60e51b8152602060048201526012602482015271496e646578206f7574206f662072616e676560701b604482015260640161083f565b6000610674825490565b60006109c683836126ad565b61222533308361091f565b611e635760405162461bcd60e51b815260206004820152601660248201527513db9b1e4810591b5a5b881050d308185b1b1bddd95960521b604482015260640161083f565b8051600003611e635760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d656d70747920737472696e6760281b604482015260640161083f565b6122c46066826126d7565b611e635760405162461bcd60e51b815260206004820152601e60248201527f446570656e64656e6379207479706520646f6573206e6f742065786973740000604482015260640161083f565b60006109c6836001600160a01b0384166126e3565b6000807f42797465636f646553746f726167655f56312e302e305f5f5f5f5f5f5f5f5f20308460405160200161235d939291906132e0565b60405160208183030381529060405290508051602082016000f091506001600160a01b0382166123cf5760405162461bcd60e51b815260206004820152601e60248201527f436f6e7472616374417353746f726167653a205772697465204572726f720000604482015260640161083f565b50919050565b606060005b828160ff16602081106123ef576123ef612e74565b1a60f81b6001600160f81b0319161580159061240e575060208160ff16105b15612425578061241d81613341565b9150506123da565b60405191506040820160405280825282602083015250919050565b61244b606b82612677565b611e635760405162461bcd60e51b815260206004820152601b60248201527a10dbdc994818dbdb9d1c9858dd081b9bdd081cdd5c1c1bdc9d1959602a1b604482015260640161083f565b6001600160a01b038116611e635760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d7a65726f206164647265737360281b604482015260640161083f565b6124f46069826126d7565b611e635760405162461bcd60e51b815260206004820152601b60248201527a131a58d95b9cd9481d1e5c1948191bd95cc81b9bdd08195e1a5cdd602a1b604482015260640161083f565b60008060005b60208160ff16101561259e576000868260ff166020811061256757612567612e74565b1a9050801580159061257c575060808160ff16105b15612595578560ff168160ff1603612595578260010192505b50600101612544565b8360ff168260ff1614925050509392505050565b60006109c683836127d6565b336125c761155a565b6001600160a01b0316146115475760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161083f565b61262681612820565b606580546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff1661266f5760405162461bcd60e51b815260040161083f90613360565b611547612872565b60006109c6836001600160a01b0384166128a2565b60006109c6836001600160a01b0384166127d6565b60006109c683836126e3565b60008260000182815481106126c4576126c4612e74565b9060005260206000200154905092915050565b60006109c683836128a2565b600081815260018301602052604081205480156127cc5760006127076001836131f9565b855490915060009061271b906001906131f9565b905081811461278057600086600001828154811061273b5761273b612e74565b906000526020600020015490508087600001848154811061275e5761275e612e74565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612791576127916133ab565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610674565b6000915050610674565b60006127e283836128a2565b61281857508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610674565b506000610674565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166128995760405162461bcd60e51b815260040161083f90613360565b6115473361261d565b60009081526001919091016020526040902054151590565b5080546128c690612e40565b6000825580601f106128d6575050565b601f016020900490600052602060002090810190611e6391905b8082111561290457600081556001016128f0565b5090565b6000806040838503121561291b57600080fd5b50508035926020909101359150565b60005b8381101561294557818101518382015260200161292d565b50506000910152565b6000815180845261296681602086016020860161292a565b601f01601f19169290920160200192915050565b6020815260006109c6602083018461294e565b6020808252825182820181905260009190848201906040850190845b818110156129ce5783516001600160a01b0316835292840192918401916001016129a9565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612a1857612a186129da565b604052919050565b60006001600160401b03821115612a3957612a396129da565b50601f01601f191660200190565b600082601f830112612a5857600080fd5b8135612a6b612a6682612a20565b6129f0565b818152846020838601011115612a8057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215612ab257600080fd5b833592506020840135915060408401356001600160401b03811115612ad657600080fd5b612ae286828701612a47565b9150509250925092565b80356001600160a01b0381168114612b0357600080fd5b919050565b600060208284031215612b1a57600080fd5b6109c682612aec565b6001600160a01b0391909116815260200190565b600080600060608486031215612b4c57600080fd5b612b5584612aec565b9250612b6360208501612aec565b915060408401356001600160e01b031981168114612b8057600080fd5b809150509250925092565b600060208284031215612b9d57600080fd5b5035919050565b6000610120808352612bb88184018d61294e565b90508281036020840152612bcc818c61294e565b90508281036040840152612be0818b61294e565b905062ffffff808a1660608501528382036080850152612c00828a61294e565b915080881660a085015283820360c0850152612c1c828861294e565b925085151560e085015280851661010085015250509a9950505050505050505050565b60008060408385031215612c5257600080fd5b8235915060208301356001600160401b03811115612c6f57600080fd5b612c7b85828601612a47565b9150509250929050565b60008060408385031215612c9857600080fd5b612ca183612aec565b946020939093013593505050565b60008060408385031215612cc257600080fd5b82359150612cd260208401612aec565b90509250929050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015612d3057603f19888603018452612d1e85835161294e565b94509285019290850190600101612d02565b5092979650505050505050565b600080600080600060a08688031215612d5557600080fd5b853594506020860135935060408601356001600160401b0380821115612d7a57600080fd5b612d8689838a01612a47565b94506060880135915080821115612d9c57600080fd5b612da889838a01612a47565b93506080880135915080821115612dbe57600080fd5b50612dcb88828901612a47565b9150509295509295909350565b600080600060608486031215612ded57600080fd5b612df684612aec565b95602085013595506040909401359392505050565b600080600060608486031215612e2057600080fd5b8335925060208401359150612e3760408501612aec565b90509250925092565b600181811c90821680612e5457607f821691505b6020821081036123cf57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201612eb257612eb2612e8a565b5060010190565b601f821115612f0357600081815260208120601f850160051c81016020861015612ee05750805b601f850160051c820191505b81811015612eff57828155600101612eec565b5050505b505050565b600019600383901b1c191660019190911b1790565b81516001600160401b03811115612f3657612f366129da565b612f4a81612f448454612e40565b84612eb9565b602080601f831160018114612f795760008415612f675750858301515b612f718582612f08565b865550612eff565b600085815260208120601f198616915b82811015612fa857888601518255948401946001909101908401612f89565b5085821015612fc65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b604081526000612fe9604083018561294e565b90508260208301529392505050565b60006020828403121561300a57600080fd5b815180151581146109c657600080fd5b6000613028612a6684612a20565b905082815283838301111561303c57600080fd5b6109c683602083018461292a565b600082601f83011261305b57600080fd5b6109c68383516020850161301a565b60008060006060848603121561307f57600080fd5b83516001600160401b038082111561309657600080fd5b6130a28783880161304a565b945060208601519150808211156130b857600080fd5b506130c58682870161304a565b925050604084015190509250925092565b62ffffff81811683821601908082111561072257610722612e8a565b60006020828403121561310457600080fd5b5051919050565b60006020828403121561311d57600080fd5b81516001600160401b0381111561313357600080fd5b8201601f8101841361314457600080fd5b6117108482516020840161301a565b60006020828403121561316557600080fd5b81516001600160401b0381111561317b57600080fd5b6117108482850161304a565b62ffffff82811682821603908082111561072257610722612e8a565b8082018082111561067457610674612e8a565b6060815260006131c9606083018661294e565b82810360208401526131db818661294e565b905082810360408401526131ef818561294e565b9695505050505050565b8181038181111561067457610674612e8a565b818103613217575050565b6132218254612e40565b6001600160401b03811115613238576132386129da565b61324681612f448454612e40565b6000601f82116001811461327457600083156132625750848201545b61326c8482612f08565b8555506132d9565b600085815260209020601f19841690600086815260209020845b838110156132ae578286015482556001958601959091019060200161328e565b50858310156132cc5781850154600019600388901b60f8161c191681555b50505060018360011b0184555b5050505050565b6a600b5981380380925939f360a81b8152607f60f91b600b820152600c81018490526000602c8201819052606084901b6001600160601b0319166038830152825161333281604c85016020870161292a565b91909101604c01949350505050565b600060ff821660ff810361335757613357612e8a565b60010192915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052603160045260246000fdfef79e11fc86b9bf37d5dfd4359c053136f7c046da6a08f9cf7ca56d80d5aab839a26469706673582212205b1972e39cf6def9309ed94f77ac484c7cbc7cbad3af5a90481b15e5a272762c64736f6c63430008130033",
1188
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061021e5760003560e01c8063a1a7a47b1161012c578063a1a7a47b1461041c578063b86b69f11461042f578063ba22851214610437578063bbf2aefb1461044a578063bd880b461461045d578063be3d3ee614610470578063c073927014610483578063c0cd565f14610496578063c4d66de8146104a9578063caaa3bb7146104bc578063cc86ba4b146104cf578063cea2961a146104e2578063dbc71ccb146104f5578063dc33f4ae14610508578063dfa3be531461051b578063f0b993821461052e578063f146f17f14610541578063f2fde38b14610554578063f73f499114610567578063f8ac18be1461057a578063f9c0fae61461058d578063fb5cd19b146105a0578063fed37e82146105a857600080fd5b8062e879031461022357806307f9f7861461024c5780631376218614610261578063199eb8e0146102765780631a051d49146102895780631e9bef461461029c578063230448b1146102bc57806325ffb376146102df5780633bd7cfa2146103075780633e76919a1461031a578063474bbdc21461032d5780634bd1a38714610340578063518cb3df1461035357806351eda9991461036657806352ccc0211461037b5780635668bc5e1461038e5780635710f83d146103cb57806366d549a1146103de5780636dfa9f56146103f1578063715018a6146104045780637cbb45c81461040c5780638da5cb5b14610414575b600080fd5b610236610231366004612908565b6105b0565b604051610243919061297a565b60405180910390f35b61025461067a565b604051610243919061298d565b61027461026f366004612a9d565b610729565b005b610274610284366004612b08565b6107c9565b610274610297366004612a9d565b61087f565b6065546102af906001600160a01b031681565b6040516102439190612b23565b6102cf6102ca366004612b37565b61091f565b6040519015158152602001610243565b6102f26102ed366004612b8b565b6109cd565b60405161024399989796959493929190612ba4565b610274610315366004612c3f565b610c01565b6102af610328366004612b8b565b610c72565b61023661033b366004612c85565b610c92565b61027461034e366004612caf565b610dce565b610236610361366004612908565b610e91565b61036e611080565b6040516102439190612cdb565b610274610389366004612b8b565b61112e565b6103bd61039c366004612b8b565b600090815260686020526040902060070154600160301b900462ffffff1690565b604051908152602001610243565b6102746103d9366004612c3f565b611242565b6102746103ec366004612d3d565b6112fa565b6102746103ff366004612908565b611443565b610274611535565b6103bd611549565b6102af61155a565b61027461042a366004612908565b61156e565b6103bd61163c565b6103bd610445366004612908565b611648565b610274610458366004612dd8565b611718565b61023661046b366004612b8b565b611799565b61027461047e366004612c3f565b6117b7565b610274610491366004612b8b565b61181c565b6102746104a4366004612e0b565b611908565b6102746104b7366004612b08565b611998565b6102746104ca366004612a9d565b611ab3565b6102366104dd366004612b8b565b611b4c565b6102cf6104f0366004612b08565b611b6a565b610274610503366004612b08565b611b77565b610274610516366004612c3f565b611c1b565b6102af610529366004612908565b611caa565b61023661053c366004612908565b611cf3565b61027461054f366004612c3f565b611d3c565b610274610562366004612b08565b611ded565b610274610575366004612c85565b611e66565b610274610588366004612b8b565b611f36565b61027461059b366004612c3f565b6120a6565b61036e61210b565b6103bd6121b4565b60008281526068602052604090206007810154606091906105d790849062ffffff166121c0565b6000838152600282016020526040902080546105f290612e40565b80601f016020809104026020016040519081016040528092919081815260200182805461061e90612e40565b801561066b5780601f106106405761010080835404028352916020019161066b565b820191906000526020600020905b81548152906001019060200180831161064e57829003601f168201915b50505050509150505b92915050565b60606000610688606b612204565b90506000816001600160401b038111156106a4576106a46129da565b6040519080825280602002602001820160405280156106cd578160200160208202803683370190505b50905060005b82811015610722576106e6606b8261220e565b8282815181106106f8576106f8612e74565b6001600160a01b03909216602092830291909101909101528061071a81612ea0565b9150506106d3565b5092915050565b6107396309bb10c360e11b61221a565b6107428161226a565b61074b836122b9565b6000838152606860205260409020600781015461076e90849062ffffff166121c0565b600083815260028201602052604090206107888382612f1d565b50837f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d83856040516107bb929190612fd6565b60405180910390a250505050565b6107d862ccf5c760e51b61221a565b6107e3606b82612310565b6108485760405162461bcd60e51b815260206004820152602b60248201527f436f726520636f6e747261637420616c72656164792072656d6f766564206f7260448201526a081b9bdd081a5b881cd95d60aa1b60648201526084015b60405180910390fd5b6040516001600160a01b038216907f2453d2f77bae1012d39e2257356d2566625ebe0ffd6094198aa051689dc65ba090600090a250565b61088f631a051d4960e01b61221a565b6108988161226a565b6108a1836122b9565b600083815260686020526040902060078101546108cb908490600160301b900462ffffff166121c0565b6108d482612325565b600084815260068301602052604080822080546001600160a01b0319166001600160a01b039490941693909317909255905185916000805160206133c283398151915291a250505050565b60008061092a61155a565b6001600160a01b0316141580156109c357506065546040516217798b60e61b81526001600160a01b03868116600483015285811660248301526001600160e01b031985166044830152909116906305de62c0906064016020604051808303816000875af115801561099f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c39190612ff8565b90505b9392505050565b606080606060006060600060606000806000606860008c815260200190815260200160002090506109fd8b6123d5565b8154610a08906123d5565b6007830154600184018054909162ffffff8082169260038801926301000000810483169260058a0192600160301b90920416801515918790610a4990612e40565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7590612e40565b8015610ac25780601f10610a9757610100808354040283529160200191610ac2565b820191906000526020600020905b815481529060010190602001808311610aa557829003601f168201915b50505050509650848054610ad590612e40565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0190612e40565b8015610b4e5780601f10610b2357610100808354040283529160200191610b4e565b820191906000526020600020905b815481529060010190602001808311610b3157829003601f168201915b50505050509450828054610b6190612e40565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8d90612e40565b8015610bda5780601f10610baf57610100808354040283529160200191610bda565b820191906000526020600020905b815481529060010190602001808311610bbd57829003601f168201915b50505050509250995099509950995099509950995099509950509193959799909294969850565b610c11631debe7d160e11b61221a565b610c1a826122b9565b6000828152606860205260409020600501610c358282612f1d565b50817f9959f3af1c0191277b92c192984b5ca38adaf82d8465332b4da850e0e6a199f482604051610c66919061297a565b60405180910390a25050565b6000610c8782610c82606b612204565b6121c0565b610674606b8361220e565b6060610c9d83612440565b6001600160a01b0383166000908152606d602090815260408083208584529091529020548015610cd857610cd0816123d5565b915050610674565b604051633ae7357560e21b8152600481018490526001600160a01b0385169063eb9cd5d490602401600060405180830381865afa925050508015610d3e57506040513d6000823e601f3d908101601f19168201604052610d3b919081019061306a565b60015b610dc25760405162461bcd60e51b815260206004820152604960248201527f436f6e747261637420646f6573206e6f7420696d706c656d656e742070726f6a60448201527f65637453637269707444657461696c7320616e6420686173206e6f206f7665726064820152683934b2329039b2ba1760b91b608482015260a40161083f565b82945050505050610674565b610dde634bd1a38760e01b61221a565b610de781612495565b610df0826122b9565b6000828152606860209081526040808320600781018054600160301b9081900462ffffff9081168752600684019095529290942080546001600160a01b0319166001600160a01b0387161790559254610e4e929190041660016130d6565b60078201805462ffffff92909216600160301b0262ffffff60301b1990921691909117905560405183906000805160206133c283398151915290600090a2505050565b6000828152606860205260409020600781015460609190610ebf908490600160301b900462ffffff166121c0565b600083815260068201602052604080822054905163cc31a33160e01b81526001600160a01b03909116919073__$55f4e50e6128becd8bf164b272db98df09$__9063cc31a33190610f14908590600401612b23565b602060405180830381865af4158015610f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5591906130f2565b90507f554e4b4e4f574e5f56455253494f4e5f535452494e475f5f5f5f5f5f5f5f5f20810361100457604051632475d70960e01b815273__$55f4e50e6128becd8bf164b272db98df09$__90632475d70990610fb5908590600401612b23565b600060405180830381865af4158015610fd2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ffa919081019061310b565b9350505050610674565b604051630eacc5e760e31b815273__$55f4e50e6128becd8bf164b272db98df09$__906375662f389061103b908590600401612b23565b600060405180830381865af4158015611058573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ffa9190810190613153565b6060600061108e6066612204565b90506000816001600160401b038111156110aa576110aa6129da565b6040519080825280602002602001820160405280156110dd57816020015b60608152602001906001900390816110c85790505b50905060005b82811015610722576110fe6110f960668361220e565b6123d5565b82828151811061111057611110612e74565b6020026020010181905250808061112690612ea0565b9150506110e3565b61113e6352ccc02160e01b61221a565b611147816122b9565b60008181526068602052604090206007810154600160301b900462ffffff166111b25760405162461bcd60e51b815260206004820152601e60248201527f746865726520617265206e6f207363726970747320746f2072656d6f76650000604482015260640161083f565b600781015460068201906000906111d790600190600160301b900462ffffff16613187565b62ffffff908116825260208201929092526040908101600090812080546001600160a01b031916905560078401805462ffffff60301b198116600160301b9182900486166000190190951602939093179092555183916000805160206133c283398151915291a25050565b611252635710f83d60e01b61221a565b61125b8161226a565b611264826122b9565b600082815260686020908152604080832060078101546301000000900462ffffff1680855260048201909352922061129c8482612f1d565b506112a88160016131a3565b8260070160036101000a81548162ffffff021916908362ffffff160217905550837ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde84836040516107bb929190612fd6565b61130a6366d549a160e01b61221a565b611313846124e9565b611320856040600161253e565b6113695760405162461bcd60e51b815260206004820152601a60248201527901b5d5cdd0818dbdb9d185a5b88195e1858dd1b1e481bdb9948160361b604482015260640161083f565b6113746066866125b2565b6113c05760405162461bcd60e51b815260206004820152601e60248201527f446570656e64656e6379207479706520616c7265616479206578697374730000604482015260640161083f565b6000858152606860205260409020848155600181016113df8582612f1d565b50600381016113ee8482612f1d565b50600581016113fd8382612f1d565b5084867f14d15ecf0e955bdd7a921efba642deef4d718696d3fc369454c84817fed0fb77868686604051611433939291906131b6565b60405180910390a3505050505050565b6114536336fd4fab60e11b61221a565b61145c826122b9565b600082815260686020526040902060078101546301000000900462ffffff1661148583826121c0565b60006114926001836131f9565b6000868152606860209081526040808320848452600490810183528184208985529088019092529091209192506114c9908261320c565b50600081815260048401602052604081206114e3916128ba565b60078301805465ffffff0000001916630100000062ffffff841602179055604051849086907fc02725dfc9639e3399432cdae3db1c062229f4cc41bcc18631517617c020b71c90600090a35050505050565b61153d6125be565b611547600061261d565b565b60006115556066612204565b905090565b60006115556033546001600160a01b031690565b61157e63a1a7a47b60e01b61221a565b611587826122b9565b6000828152606860205260409020600781015462ffffff166115a983826121c0565b60006115b66001836131f9565b600081815260028501602052604080822087835291209192506115d9908261320c565b50600081815260028401602052604081206115f3916128ba565b60078301805462ffffff191662ffffff8316179055604051849086907f225454b600cf489553fde6e3b7f5e458b1093c035390b678067ea799b3b016cd90600090a35050505050565b6000611555606b612204565b60008281526068602052604081206007810154611672908490600160301b900462ffffff166121c0565b60008481526068602090815260408083208684526006019091529081902054905163cc31a33160e01b815273__$55f4e50e6128becd8bf164b272db98df09$__9163cc31a331916116cf916001600160a01b031690600401612b23565b602060405180830381865af41580156116ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171091906130f2565b949350505050565b61172863bbf2aefb60e01b61221a565b611731816122b9565b61173a83612440565b6001600160a01b0383166000818152606d6020908152604080832086845282529182902084905590518381528492917f27d39273f3676c181ec3de60b583da776123d9f9517761fb91f370a83c798918910160405180910390a3505050565b60606117a982610c826066612204565b6106746110f960668461220e565b6117c7635f1e9f7360e11b61221a565b6117d0826122b9565b60008281526068602052604090206001016117eb8282612f1d565b50817fc9890a31ec780bb5a8a017d683d3913f97260548d71c2cee78194ed2833f023582604051610c66919061297a565b61182c630c07392760e41b61221a565b6118376069826125b2565b6118815760405162461bcd60e51b815260206004820152601b60248201527a4c6963656e7365207479706520616c72656164792065786973747360281b604482015260640161083f565b806118da5760405162461bcd60e51b815260206004820152602360248201527f4c6963656e736520747970652063616e6e6f7420626520656d70747920737472604482015262696e6760e81b606482015260840161083f565b60405181907fad5dcce4588345db351371d105540f3fb69966f418d923539f19d5f44a1cfc4b90600090a250565b61191863c0cd565f60e01b61221a565b61192181612495565b61192a836122b9565b60008381526068602052604090206007810154611954908490600160301b900462ffffff166121c0565b600083815260068201602052604080822080546001600160a01b0319166001600160a01b0386161790555185916000805160206133c283398151915291a250505050565b600054610100900460ff16158080156119b85750600054600160ff909116105b806119d25750303b1580156119d2575060005460ff166001145b611a355760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161083f565b6000805460ff191660011790558015611a58576000805461ff0019166101001790555b611a60612648565b611a698261261d565b8015611aaf576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b611ac363caaa3bb760e01b61221a565b611acc8161226a565b611ad5836122b9565b60008381526068602052604090206007810154611aff9084906301000000900462ffffff166121c0565b60008381526004820160205260409020611b198382612f1d565b50837ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde83856040516107bb929190612fd6565b6060611b5c82610c826069612204565b6106746110f960698461220e565b6000610674606b83612677565b611b8763dbc71ccb60e01b61221a565b611b9081612495565b611b9b606b8261268c565b611be45760405162461bcd60e51b815260206004820152601a60248201527910dbdb9d1c9858dd08185b1c9958591e481cdd5c1c1bdc9d195960321b604482015260640161083f565b6040516001600160a01b038216907f59e1b889b92ad05213b7934a67c5d824348c868455d1c741a2cfe16e46d832dc90600090a250565b611c2b636e19fa5760e11b61221a565b611c348161226a565b611c3d826122b9565b6000828152606860205260409020611c5482612325565b600782018054600160301b9081900462ffffff9081166000908152600686016020526040902080546001600160a01b0319166001600160a01b0395909516949094179093559054610e4e929190041660016130d6565b60008281526068602052604081206007810154611cd4908490600160301b900462ffffff166121c0565b60009283526006016020525060409020546001600160a01b0316919050565b6000828152606860205260409020600781015460609190611d219084906301000000900462ffffff166121c0565b6000838152600482016020526040902080546105f290612e40565b611d4c63f146f17f60e01b61221a565b611d558161226a565b611d5e826122b9565b6000828152606860209081526040808320600781015462ffffff16808552600282019093529220611d8f8482612f1d565b50611d9b8160016131a3565b8260070160006101000a81548162ffffff021916908362ffffff160217905550837f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d84836040516107bb929190612fd6565b611df56125be565b6001600160a01b038116611e5a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161083f565b611e638161261d565b50565b611e7663f73f499160e01b61221a565b6001600160a01b0382166000908152606d60209081526040808320848452909152902054611ee45760405162461bcd60e51b815260206004820152601b60248201527a139bc81bdd995c9c9a5919481cd95d08199bdc881c1c9bda9958dd602a1b604482015260640161083f565b6001600160a01b0382166000818152606d60209081526040808320858452909152808220829055518392917f0732620824c0200808d04ab037f3abc3c31853170b90f5a855d32f44486048ed91a35050565b611f46637c560c5f60e11b61221a565b611f4f816122b9565b6000818152606860205260409020600781015462ffffff16158015611f82575060078101546301000000900462ffffff16155b8015611f9c57506007810154600160301b900462ffffff16155b61201e5760405162461bcd60e51b815260206004820152604760248201527f43616e6e6f742072656d6f766520646570656e64656e6379207769746820616460448201527f646974696f6e616c2043444e732c207265706f7369746f726965732c206f72206064820152667363726970747360c81b608482015260a40161083f565b6120296066836126a1565b5060008281526068602052604081208181559061204960018301826128ba565b6120576003830160006128ba565b6120656005830160006128ba565b5060070180546001600160481b031916905560405182907f60e2aa021c4f5303dd65e2173f0180636e4d42eaefc6187278e92bee9d06aa7290600090a25050565b6120b6637ce07d7360e11b61221a565b6120bf826122b9565b60008281526068602052604090206003016120da8282612f1d565b50817f774918414e4887efe5349a305fe253ee8b1e3fe0c2117012f0c215645693cbfd82604051610c66919061297a565b606060006121196069612204565b90506000816001600160401b03811115612135576121356129da565b60405190808252806020026020018201604052801561216857816020015b60608152602001906001900390816121535790505b50905060005b82811015610722576121846110f960698361220e565b82828151811061219657612196612e74565b602002602001018190525080806121ac90612ea0565b91505061216e565b60006115556069612204565b808210611aaf5760405162461bcd60e51b8152602060048201526012602482015271496e646578206f7574206f662072616e676560701b604482015260640161083f565b6000610674825490565b60006109c683836126ad565b61222533308361091f565b611e635760405162461bcd60e51b815260206004820152601660248201527513db9b1e4810591b5a5b881050d308185b1b1bddd95960521b604482015260640161083f565b8051600003611e635760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d656d70747920737472696e6760281b604482015260640161083f565b6122c46066826126d7565b611e635760405162461bcd60e51b815260206004820152601e60248201527f446570656e64656e6379207479706520646f6573206e6f742065786973740000604482015260640161083f565b60006109c6836001600160a01b0384166126e3565b6000807f42797465636f646553746f726167655f56312e302e305f5f5f5f5f5f5f5f5f20308460405160200161235d939291906132e0565b60405160208183030381529060405290508051602082016000f091506001600160a01b0382166123cf5760405162461bcd60e51b815260206004820152601e60248201527f436f6e7472616374417353746f726167653a205772697465204572726f720000604482015260640161083f565b50919050565b606060005b828160ff16602081106123ef576123ef612e74565b1a60f81b6001600160f81b0319161580159061240e575060208160ff16105b15612425578061241d81613341565b9150506123da565b60405191506040820160405280825282602083015250919050565b61244b606b82612677565b611e635760405162461bcd60e51b815260206004820152601b60248201527a10dbdc994818dbdb9d1c9858dd081b9bdd081cdd5c1c1bdc9d1959602a1b604482015260640161083f565b6001600160a01b038116611e635760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d7a65726f206164647265737360281b604482015260640161083f565b6124f46069826126d7565b611e635760405162461bcd60e51b815260206004820152601b60248201527a131a58d95b9cd9481d1e5c1948191bd95cc81b9bdd08195e1a5cdd602a1b604482015260640161083f565b60008060005b60208160ff16101561259e576000868260ff166020811061256757612567612e74565b1a9050801580159061257c575060808160ff16105b15612595578560ff168160ff1603612595578260010192505b50600101612544565b8360ff168260ff1614925050509392505050565b60006109c683836127d6565b336125c761155a565b6001600160a01b0316146115475760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161083f565b61262681612820565b606580546001600160a01b0319166001600160a01b0392909216919091179055565b600054610100900460ff1661266f5760405162461bcd60e51b815260040161083f90613360565b611547612872565b60006109c6836001600160a01b0384166128a2565b60006109c6836001600160a01b0384166127d6565b60006109c683836126e3565b60008260000182815481106126c4576126c4612e74565b9060005260206000200154905092915050565b60006109c683836128a2565b600081815260018301602052604081205480156127cc5760006127076001836131f9565b855490915060009061271b906001906131f9565b905081811461278057600086600001828154811061273b5761273b612e74565b906000526020600020015490508087600001848154811061275e5761275e612e74565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612791576127916133ab565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610674565b6000915050610674565b60006127e283836128a2565b61281857508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610674565b506000610674565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166128995760405162461bcd60e51b815260040161083f90613360565b6115473361261d565b60009081526001919091016020526040902054151590565b5080546128c690612e40565b6000825580601f106128d6575050565b601f016020900490600052602060002090810190611e6391905b8082111561290457600081556001016128f0565b5090565b6000806040838503121561291b57600080fd5b50508035926020909101359150565b60005b8381101561294557818101518382015260200161292d565b50506000910152565b6000815180845261296681602086016020860161292a565b601f01601f19169290920160200192915050565b6020815260006109c6602083018461294e565b6020808252825182820181905260009190848201906040850190845b818110156129ce5783516001600160a01b0316835292840192918401916001016129a9565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612a1857612a186129da565b604052919050565b60006001600160401b03821115612a3957612a396129da565b50601f01601f191660200190565b600082601f830112612a5857600080fd5b8135612a6b612a6682612a20565b6129f0565b818152846020838601011115612a8057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215612ab257600080fd5b833592506020840135915060408401356001600160401b03811115612ad657600080fd5b612ae286828701612a47565b9150509250925092565b80356001600160a01b0381168114612b0357600080fd5b919050565b600060208284031215612b1a57600080fd5b6109c682612aec565b6001600160a01b0391909116815260200190565b600080600060608486031215612b4c57600080fd5b612b5584612aec565b9250612b6360208501612aec565b915060408401356001600160e01b031981168114612b8057600080fd5b809150509250925092565b600060208284031215612b9d57600080fd5b5035919050565b6000610120808352612bb88184018d61294e565b90508281036020840152612bcc818c61294e565b90508281036040840152612be0818b61294e565b905062ffffff808a1660608501528382036080850152612c00828a61294e565b915080881660a085015283820360c0850152612c1c828861294e565b925085151560e085015280851661010085015250509a9950505050505050505050565b60008060408385031215612c5257600080fd5b8235915060208301356001600160401b03811115612c6f57600080fd5b612c7b85828601612a47565b9150509250929050565b60008060408385031215612c9857600080fd5b612ca183612aec565b946020939093013593505050565b60008060408385031215612cc257600080fd5b82359150612cd260208401612aec565b90509250929050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015612d3057603f19888603018452612d1e85835161294e565b94509285019290850190600101612d02565b5092979650505050505050565b600080600080600060a08688031215612d5557600080fd5b853594506020860135935060408601356001600160401b0380821115612d7a57600080fd5b612d8689838a01612a47565b94506060880135915080821115612d9c57600080fd5b612da889838a01612a47565b93506080880135915080821115612dbe57600080fd5b50612dcb88828901612a47565b9150509295509295909350565b600080600060608486031215612ded57600080fd5b612df684612aec565b95602085013595506040909401359392505050565b600080600060608486031215612e2057600080fd5b8335925060208401359150612e3760408501612aec565b90509250925092565b600181811c90821680612e5457607f821691505b6020821081036123cf57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201612eb257612eb2612e8a565b5060010190565b601f821115612f0357600081815260208120601f850160051c81016020861015612ee05750805b601f850160051c820191505b81811015612eff57828155600101612eec565b5050505b505050565b600019600383901b1c191660019190911b1790565b81516001600160401b03811115612f3657612f366129da565b612f4a81612f448454612e40565b84612eb9565b602080601f831160018114612f795760008415612f675750858301515b612f718582612f08565b865550612eff565b600085815260208120601f198616915b82811015612fa857888601518255948401946001909101908401612f89565b5085821015612fc65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b604081526000612fe9604083018561294e565b90508260208301529392505050565b60006020828403121561300a57600080fd5b815180151581146109c657600080fd5b6000613028612a6684612a20565b905082815283838301111561303c57600080fd5b6109c683602083018461292a565b600082601f83011261305b57600080fd5b6109c68383516020850161301a565b60008060006060848603121561307f57600080fd5b83516001600160401b038082111561309657600080fd5b6130a28783880161304a565b945060208601519150808211156130b857600080fd5b506130c58682870161304a565b925050604084015190509250925092565b62ffffff81811683821601908082111561072257610722612e8a565b60006020828403121561310457600080fd5b5051919050565b60006020828403121561311d57600080fd5b81516001600160401b0381111561313357600080fd5b8201601f8101841361314457600080fd5b6117108482516020840161301a565b60006020828403121561316557600080fd5b81516001600160401b0381111561317b57600080fd5b6117108482850161304a565b62ffffff82811682821603908082111561072257610722612e8a565b8082018082111561067457610674612e8a565b6060815260006131c9606083018661294e565b82810360208401526131db818661294e565b905082810360408401526131ef818561294e565b9695505050505050565b8181038181111561067457610674612e8a565b818103613217575050565b6132218254612e40565b6001600160401b03811115613238576132386129da565b61324681612f448454612e40565b6000601f82116001811461327457600083156132625750848201545b61326c8482612f08565b8555506132d9565b600085815260209020601f19841690600086815260209020845b838110156132ae578286015482556001958601959091019060200161328e565b50858310156132cc5781850154600019600388901b60f8161c191681555b50505060018360011b0184555b5050505050565b6a600b5981380380925939f360a81b8152607f60f91b600b820152600c81018490526000602c8201819052606084901b6001600160601b0319166038830152825161333281604c85016020870161292a565b91909101604c01949350505050565b600060ff821660ff810361335757613357612e8a565b60010192915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052603160045260246000fdfef79e11fc86b9bf37d5dfd4359c053136f7c046da6a08f9cf7ca56d80d5aab839a26469706673582212205b1972e39cf6def9309ed94f77ac484c7cbc7cbad3af5a90481b15e5a272762c64736f6c63430008130033",
1018
1189
  "linkReferences": {
1019
- "contracts/libs/0.8.x/BytecodeStorageV1.sol": {
1190
+ "contracts/libs/v0.8.x/BytecodeStorageV1.sol": {
1020
1191
  "BytecodeStorageReader": [
1021
1192
  {
1022
1193
  "length": 20,
1023
- "start": 8153
1194
+ "start": 3852
1195
+ },
1196
+ {
1197
+ "length": 20,
1198
+ "start": 4013
1199
+ },
1200
+ {
1201
+ "length": 20,
1202
+ "start": 4147
1203
+ },
1204
+ {
1205
+ "length": 20,
1206
+ "start": 5823
1024
1207
  }
1025
1208
  ]
1026
1209
  }
1027
1210
  },
1028
1211
  "deployedLinkReferences": {
1029
- "contracts/libs/0.8.x/BytecodeStorageV1.sol": {
1212
+ "contracts/libs/v0.8.x/BytecodeStorageV1.sol": {
1030
1213
  "BytecodeStorageReader": [
1031
1214
  {
1032
1215
  "length": 20,
1033
- "start": 8121
1216
+ "start": 3820
1217
+ },
1218
+ {
1219
+ "length": 20,
1220
+ "start": 3981
1221
+ },
1222
+ {
1223
+ "length": 20,
1224
+ "start": 4115
1225
+ },
1226
+ {
1227
+ "length": 20,
1228
+ "start": 5791
1034
1229
  }
1035
1230
  ]
1036
1231
  }