@artblocks/contracts 1.3.2 → 1.4.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.
- package/README.md +11 -10
- package/artifacts/contracts/AdminACLV0RoyaltyRegistry.sol/AdminACLV0RoyaltyRegistry.json +193 -0
- package/artifacts/contracts/AdminACLV0RoyaltyRegistry.sol/IRoyaltyRegistry.json +35 -0
- package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +2 -2
- package/artifacts/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2.sol/BytecodeStorageReaderContractV2.json +2 -2
- package/artifacts/contracts/BytecodeStorageReaders/BytecodeStorageReaderContractV2_Web3Call.sol/BytecodeStorageReaderContractV2_Web3Call.json +2 -2
- package/artifacts/contracts/BytecodeStorageV2Writer.sol/BytecodeStorageV2Writer.json +2 -2
- package/artifacts/contracts/DependencyRegistryV0.sol/DependencyRegistryV0.json +210 -2
- package/artifacts/contracts/GenArt721CoreV3_Curated.sol/GenArt721CoreV3_Curated.json +235 -20
- package/artifacts/contracts/GenArt721CoreV3_Curated_Flex.sol/GenArt721CoreV3_Curated_Flex.json +3197 -0
- package/artifacts/contracts/GenArt721CoreV3_Explorations_Flex.sol/GenArt721CoreV3_Explorations_Flex.json +3192 -0
- package/artifacts/contracts/OwnedCreate2FactoryV0.sol/OwnedCreate2FactoryV0.json +2 -2
- package/artifacts/contracts/archive/GenArt721CoreV3.sol/GenArt721CoreV3.json +27 -2
- package/artifacts/contracts/archive/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +27 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV4.sol/MinterDAExpV4.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol/MinterDAExpSettlementV1.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV4.sol/MinterDALinV4.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol/MinterHolderV1.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV4.sol/MinterHolderV4.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol/MinterMerkleV1.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol/MinterMerkleV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV5.sol/MinterMerkleV5.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterPolyptych/MinterPolyptychV0.sol/IGenArt721CoreContractV3WithRandomizer.json +25 -0
- package/artifacts/contracts/archive/minter-suite/Minters/MinterPolyptych/MinterPolyptychV0.sol/MinterPolyptychV0.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSEA/MinterSEAV0.sol/MinterSEAV0.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV4.sol/MinterSetPriceV4.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +2 -2
- package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +2 -2
- package/artifacts/contracts/engine/V3/EngineFactoryV0.sol/EngineFactoryV0.json +28 -2
- package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +239 -20
- package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +267 -48
- package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +27 -2
- package/artifacts/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol/AdminACLV0_PROHIBITION.json +2 -2
- package/artifacts/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol/GenArt721CoreV3_Engine_Flex_PROHIBITION.json +27 -2
- package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.json +25 -0
- package/artifacts/contracts/engine/V3/transfer-hooks/AbstractTransferHook.sol/AbstractTransferHook.json +79 -0
- package/artifacts/contracts/engine/V3/transfer-hooks/OwnerHistoryTransferHook.sol/OwnerHistoryTransferHook.json +315 -0
- package/artifacts/contracts/generator/GenArt721GeneratorV0.sol/GenArt721GeneratorV0.json +2 -2
- package/artifacts/contracts/interfaces/v0.8.x/IClaimMinter.sol/IClaimMinter.json +189 -0
- package/artifacts/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +149 -0
- package/artifacts/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol/IEngineFactoryV0.json +26 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +25 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +25 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +123 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +123 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.json +25 -0
- package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol/IGenArt721CoreContractV3_Engine_PreV3p2.json +25 -0
- package/artifacts/contracts/interfaces/v0.8.x/IOwnerHistoryTransferHook.sol/IOwnerHistoryTransferHook.json +299 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISRHooks.sol/ISRHooks.json +432 -0
- package/artifacts/contracts/interfaces/v0.8.x/ISeaDropShimForContract.sol/ISeaDropShimForContract.json +0 -13
- package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterTieredAllowV0.sol/ISharedMinterTieredAllowV0.json +94 -0
- package/artifacts/contracts/interfaces/v0.8.x/ITransferHook.sol/ITransferHook.json +63 -0
- package/artifacts/contracts/libs/v0.8.x/AuthLib.sol/AuthLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageReader.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageWriter.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol/DependencyRegistryStorageLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/ENSLib.sol/ENSLib.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/ENSLib.sol/IUniversalResolver.json +45 -0
- package/artifacts/contracts/libs/v0.8.x/EnumerableSetUint16.sol/EnumerableSetUint16.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/FeistelWalkLib.sol/FeistelWalkLib.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/ImmutableUint16Array.sol/ImmutableUint16Array.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/V3EngineLib.sol/V3EngineLib.json +163 -0
- package/artifacts/contracts/libs/v0.8.x/V3FlexLib.sol/V3FlexLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/V3TransferHookLib.sol/V3TransferHookLib.json +79 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/OnChainAllowlistLib.sol/OnChainAllowlistLib.json +10 -0
- package/artifacts/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol/PolyptychLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/RAMLib.sol/RAMLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SEALib.sol/SEALib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol/SettlementExpLib.json +2 -2
- package/artifacts/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol/SplitFundsLib.json +2 -2
- package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
- package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol/MinterDAExpHolderV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol/MinterDAExpSettlementV3.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDAExpV5.sol/MinterDAExpV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDALinHolderV5.sol/MinterDALinHolderV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterDALinV5.sol/MinterDALinV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterMinPriceMerkleV0.sol/MinterMinPriceMerkleV0.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterMinPriceV0.sol/MinterMinPriceV0.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterRAMV0.sol/MinterRAMV0.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol/MinterSetPriceERC20V5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol/MinterSetPriceHolderV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol/MinterSetPriceMerkleV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceOnChainAllowV0.sol/MinterSetPriceOnChainAllowV0.json +522 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol/MinterSetPricePolyptychERC20V5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol/MinterSetPricePolyptychV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceTieredAllowV1.sol/MinterSetPriceTieredAllowV1.json +715 -0
- package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV5.sol/MinterSetPriceV5.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/MinterSlidingScaleV0.sol/MinterSlidingScaleV0.json +431 -0
- package/artifacts/contracts/minter-suite/Minters/one-off/ClaimMinter.sol/ClaimMinter.json +502 -0
- package/artifacts/contracts/minter-suite/Minters/one-off/MinterSetPriceTieredOnChainAllowV0.sol/MinterSetPriceTieredOnChainAllowV0.json +673 -0
- package/artifacts/contracts/minter-suite/Minters/one-off/MinterSetPriceV5_SingleCore.sol/MinterSetPriceV5_SingleCore.json +2 -2
- package/artifacts/contracts/minter-suite/Minters/one-off/SeaDropXArtBlocksShim.sol/SeaDropXArtBlocksShim.json +6 -19
- package/artifacts/contracts/mock/BytecodeV2TextCR_DMock.sol/BytecodeV2TextCR_DMock.json +2 -2
- package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +2 -2
- package/artifacts/contracts/mock/ENSLibMock.sol/ENSLibMock.json +30 -0
- package/artifacts/contracts/mock/EnumerableSetUint16Mock.sol/EnumerableSetUint16Mock.json +146 -0
- package/artifacts/contracts/mock/FeistelWalkLibMock.sol/FeistelWalkLibMock.json +142 -0
- package/artifacts/contracts/mock/ForceSendMock.sol/ForceSendMock.json +2 -2
- package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +2 -2
- package/artifacts/contracts/mock/ImmutableUint16ArrayMock.sol/ImmutableUint16ArrayMock.json +89 -0
- package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +2 -2
- package/artifacts/contracts/mock/MockGenArt721V3Core.sol/MockGenArt721V3Core.json +490 -0
- package/artifacts/contracts/mock/MockPMP.sol/MockPMP.json +523 -0
- package/artifacts/contracts/mock/MockTransferHook.sol/MockTransferHook.json +453 -0
- package/artifacts/contracts/mock/MockTransferHookTestHelpers.sol/MockBatchTransferrer.json +39 -0
- package/artifacts/contracts/mock/MockTransferHookTestHelpers.sol/MockForwardingERC721Receiver.json +71 -0
- package/artifacts/contracts/mock/MockTransferHookTestHelpers.sol/MockSpoofingCore.json +94 -0
- package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +2 -2
- package/artifacts/contracts/mock/ReentrancyBatchMockShared.sol/IBatchMinter.json +64 -0
- package/artifacts/contracts/mock/ReentrancyBatchMockShared.sol/ReentrancyBatchMockShared.json +113 -0
- package/artifacts/contracts/mock/RelayExecutorTestHelper.sol/MockTarget.json +74 -0
- package/artifacts/contracts/mock/RelayExecutorTestHelper.sol/RelayExecutorPartialRevertsTestHelper.json +138 -0
- package/artifacts/contracts/mock/RelayExecutorTestHelper.sol/RelayExecutorTestHelper.json +119 -0
- package/artifacts/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +2 -2
- package/artifacts/contracts/randomizer/deprecated/RandomizerV2.sol/BasicRandomizerV2.json +2 -2
- package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +2 -2
- package/artifacts/contracts/relay/RelayExecutor.sol/RelayExecutor.json +101 -0
- package/artifacts/contracts/relay/RelayExecutorPartialReverts.sol/RelayExecutorPartialReverts.json +120 -0
- package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverrideSplits.sol/GenArt721RoyaltyOverrideSplits.json +263 -0
- package/artifacts/contracts/utils/MintMulticallUtil.sol/IMinterSetPriceV5.json +40 -0
- package/artifacts/contracts/utils/MintMulticallUtil.sol/MintMulticallUtil.json +163 -0
- package/artifacts/contracts/web3call/PMPV0.sol/PMPV0.json +2 -2
- package/artifacts/contracts/web3call/PMPV1.sol/PMPV1.json +648 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectBaseGasFee.sol/InjectBaseGasFee.json +2 -2
- package/artifacts/contracts/web3call/augment-hooks/InjectBlockHeight.sol/InjectBlockHeight.json +83 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectBlockHeightAndArtistProjectOverrides.sol/InjectBlockHeightAndArtistProjectOverrides.json +226 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectBlockHeightAndNumOwnedProjectTokens.sol/InjectBlockHeightAndNumOwnedProjectTokens.json +182 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectBlockHeightProjectInvocationsAndArtistProjectOverrides.sol/InjectBlockHeightProjectInvocationsAndArtistProjectOverrides.json +226 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectBlockTimestamp.sol/InjectBlockTimestamp.json +83 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectBytesPerToken.sol/InjectBytesPerToken.json +358 -0
- package/artifacts/contracts/web3call/augment-hooks/InjectChromieSquiggleFloorPrice.sol/InjectChromieSquiggleFloorPrice.json +2 -2
- package/artifacts/contracts/web3call/augment-hooks/InjectIsNounsDaoMember.sol/InjectIsNounsDaoMember.json +2 -2
- package/artifacts/contracts/web3call/augment-hooks/InjectIsProjectFullyMinted.sol/InjectIsProjectFullyMinted.json +2 -2
- package/artifacts/contracts/web3call/augment-hooks/InjectPolyptychTokenHash.sol/InjectPolyptychTokenHash.json +2 -2
- package/artifacts/contracts/web3call/augment-hooks/InjectTokenHashSeed.sol/InjectTokenHashSeed.json +2 -2
- package/artifacts/contracts/web3call/augment-hooks/InjectTokenOwner.sol/InjectTokenOwner.json +2 -2
- package/artifacts/contracts/web3call/augment-hooks/InjectTokenOwnerEthBalance.sol/InjectTokenOwnerEthBalance.json +2 -2
- package/artifacts/contracts/web3call/augment-hooks/InjectUSDCTotalSupply.sol/InjectUSDCTotalSupply.json +2 -2
- package/artifacts/contracts/web3call/augment-hooks/SRHooks.sol/SRHooks.json +899 -0
- package/artifacts/contracts/web3call/combined-hooks/LiftHooks.sol/IGenArt721V0_Minimal.json +30 -0
- package/artifacts/contracts/web3call/combined-hooks/LiftHooks.sol/IRelic.json +35 -0
- package/artifacts/contracts/web3call/combined-hooks/LiftHooks.sol/LiftHooks.json +256 -0
- package/artifacts/contracts/web3call/configure-hooks/{abstractPMPConfigureHook.sol → AbstractPMPConfigureHook.sol}/AbstractPMPConfigureHook.json +1 -1
- package/artifacts/contracts/web3call/configure-hooks/PMPConfigureLockHook.sol/PMPConfigureLockHook.json +195 -0
- package/contracts/AdminACLV0RoyaltyRegistry.sol +142 -0
- package/contracts/DependencyRegistryV0.sol +143 -13
- package/contracts/GenArt721CoreV3_Curated.sol +1 -1
- package/contracts/GenArt721CoreV3_Curated_Flex.sol +173 -0
- package/contracts/GenArt721CoreV3_Explorations_Flex.sol +159 -0
- package/contracts/engine/V3/EngineFactoryV0.sol +20 -1
- package/contracts/engine/V3/GenArt721CoreV3_Engine.sol +286 -299
- package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +292 -301
- package/contracts/engine/V3/transfer-hooks/AbstractTransferHook.sol +101 -0
- package/contracts/engine/V3/transfer-hooks/OwnerHistoryTransferHook.sol +291 -0
- package/contracts/generator/GenArt721GeneratorV0.sol +145 -47
- package/contracts/helpers/ERC1967ProxyImport.sol +5 -0
- package/contracts/interfaces/v0.8.x/IArtblocksRoyaltyOverride.sol +1 -1
- package/contracts/interfaces/v0.8.x/IClaimMinter.sol +70 -0
- package/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol +95 -0
- package/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol +15 -0
- package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol +21 -2
- package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol +72 -0
- package/contracts/interfaces/v0.8.x/IOwnerHistoryTransferHook.sol +119 -0
- package/contracts/interfaces/v0.8.x/ISRHooks.sol +229 -0
- package/contracts/interfaces/v0.8.x/ISeaDropShimForContract.sol +0 -6
- package/contracts/interfaces/v0.8.x/ISharedMinterTieredAllowV0.sol +69 -0
- package/contracts/interfaces/v0.8.x/ITransferHook.sol +48 -0
- package/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol +12 -0
- package/contracts/libs/v0.8.x/ENSLib.sol +85 -0
- package/contracts/libs/v0.8.x/EnumerableSetUint16.sol +429 -0
- package/contracts/libs/v0.8.x/FeistelWalkLib.sol +221 -0
- package/contracts/libs/v0.8.x/ImmutableUint16Array.sol +201 -0
- package/contracts/libs/v0.8.x/V3EngineLib.sol +490 -0
- package/contracts/libs/v0.8.x/V3TransferHookLib.sol +251 -0
- package/contracts/libs/v0.8.x/minter-libs/OnChainAllowlistLib.sol +165 -0
- package/contracts/minter-suite/Minters/MinterSetPriceOnChainAllowV0.sol +632 -0
- package/contracts/minter-suite/Minters/MinterSetPriceTieredAllowV1.sol +871 -0
- package/contracts/minter-suite/Minters/MinterSlidingScaleV0.sol +493 -0
- package/contracts/minter-suite/Minters/one-off/ClaimMinter.sol +595 -0
- package/contracts/minter-suite/Minters/one-off/MinterSetPriceTieredOnChainAllowV0.sol +894 -0
- package/contracts/minter-suite/Minters/one-off/SeaDropXArtBlocksShim.sol +59 -41
- package/contracts/mock/ENSLibMock.sol +25 -0
- package/contracts/mock/EnumerableSetUint16Mock.sol +88 -0
- package/contracts/mock/FeistelWalkLibMock.sol +81 -0
- package/contracts/mock/ImmutableUint16ArrayMock.sol +62 -0
- package/contracts/mock/MockGenArt721V3Core.sol +416 -0
- package/contracts/mock/MockPMP.sol +287 -0
- package/contracts/mock/MockTransferHook.sol +160 -0
- package/contracts/mock/MockTransferHookTestHelpers.sol +96 -0
- package/contracts/mock/ReentrancyBatchMockShared.sol +53 -0
- package/contracts/mock/RelayExecutorTestHelper.sol +44 -0
- package/contracts/relay/RelayExecutor.sol +61 -0
- package/contracts/relay/RelayExecutorPartialReverts.sol +79 -0
- package/contracts/royalty-registry/GenArt721RoyaltyOverrideSplits.sol +130 -0
- package/contracts/utils/MintMulticallUtil.sol +103 -0
- package/contracts/web3call/PMPV1.sol +1204 -0
- package/contracts/web3call/augment-hooks/AbstractPMPAugmentHook.sol +1 -1
- package/contracts/web3call/augment-hooks/InjectBaseGasFee.sol +1 -1
- package/contracts/web3call/augment-hooks/InjectBlockHeight.sol +57 -0
- package/contracts/web3call/augment-hooks/InjectBlockHeightAndArtistProjectOverrides.sol +310 -0
- package/contracts/web3call/augment-hooks/InjectBlockHeightAndNumOwnedProjectTokens.sol +141 -0
- package/contracts/web3call/augment-hooks/InjectBlockHeightProjectInvocationsAndArtistProjectOverrides.sol +326 -0
- package/contracts/web3call/augment-hooks/InjectBlockTimestamp.sol +57 -0
- package/contracts/web3call/augment-hooks/InjectBytesPerToken.sol +279 -0
- package/contracts/web3call/augment-hooks/InjectIsProjectFullyMinted.sol +1 -1
- package/contracts/web3call/augment-hooks/InjectTokenHashSeed.sol +1 -1
- package/contracts/web3call/augment-hooks/InjectTokenOwner.sol +1 -1
- package/contracts/web3call/augment-hooks/InjectTokenOwnerEthBalance.sol +1 -1
- package/contracts/web3call/augment-hooks/SRHooks.sol +1722 -0
- package/contracts/web3call/combined-hooks/LiftHooks.sol +304 -0
- package/contracts/web3call/configure-hooks/{abstractPMPConfigureHook.sol → AbstractPMPConfigureHook.sol} +1 -1
- package/contracts/web3call/configure-hooks/PMPConfigureLockHook.sol +107 -0
- package/package.json +39 -24
|
@@ -1805,8 +1805,8 @@
|
|
|
1805
1805
|
"type": "function"
|
|
1806
1806
|
}
|
|
1807
1807
|
],
|
|
1808
|
-
"bytecode": "0x60c0604052600e8054600560a11b60ff60a01b199182168117909255600f8054909116909117905560fa60118190556013553480156200003e57600080fd5b506040516200601d3803806200601d83398101604081905262000061916200065f565b87876000620000718382620007d6565b506001620000808282620007d6565b5050506200009d62000097620002f160201b60201c565b620002f5565b856001600160a01b038116620000e95760405162461bcd60e51b815260206004820152601b602482015260008051602062005ffd83398151915260448201526064015b60405180910390fd5b856001600160a01b038116620001315760405162461bcd60e51b815260206004820152601b602482015260008051602062005ffd8339815191526044820152606401620000e0565b856001600160a01b038116620001795760405162461bcd60e51b815260206004820152601b602482015260008051602062005ffd8339815191526044820152606401620000e0565b856001600160a01b038116620001c15760405162461bcd60e51b815260206004820152601b602482015260008051602062005ffd8339815191526044820152606401620000e0565b84151560a0526001600160f81b038616608052600f80546001600160a01b03199081166001600160a01b038c81169182179093556012805483169091179055600e805482168d84169081179091556010805483169091179055600880548216928b169283179055600980546001810182556000919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af01805490911690911790556200026f87620002f5565b620002a66200027e3062000322565b604051602001620002909190620008a2565b60408051601f1981840301815291905262000340565b5050601580547fff00000000000000000000000000000000000000000000000000000000000000166001600160f81b039590951694909417909355506200096a975050505050505050565b3390565b620003008162000352565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60606200033a6001600160a01b0383166014620003a4565b92915050565b60166200034e8282620007d6565b5050565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60606000620003b58360026200090a565b620003c290600262000924565b6001600160401b03811115620003dc57620003dc62000564565b6040519080825280601f01601f19166020018201604052801562000407576020820181803683370190505b509050600360fc1b816000815181106200042557620004256200093a565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106200045757620004576200093a565b60200101906001600160f81b031916908160001a90535060006200047d8460026200090a565b6200048a90600162000924565b90505b60018111156200050c576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110620004c257620004c26200093a565b1a60f81b828281518110620004db57620004db6200093a565b60200101906001600160f81b031916908160001a90535060049490941c93620005048162000950565b90506200048d565b5083156200055d5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401620000e0565b9392505050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620005975781810151838201526020016200057d565b50506000910152565b600082601f830112620005b257600080fd5b81516001600160401b0380821115620005cf57620005cf62000564565b604051601f8301601f19908116603f01168101908282118183101715620005fa57620005fa62000564565b816040528381528660208588010111156200061457600080fd5b620006278460208301602089016200057a565b9695505050505050565b80516001600160a01b03811681146200064957600080fd5b919050565b805180151581146200064957600080fd5b600080600080600080600080610100898b0312156200067d57600080fd5b88516001600160401b03808211156200069557600080fd5b620006a38c838d01620005a0565b995060208b0151915080821115620006ba57600080fd5b50620006c98b828c01620005a0565b975050620006da60408a0162000631565b9550620006ea60608a0162000631565b9450620006fa60808a0162000631565b93506200070a60a08a0162000631565b60c08a01519093506001600160f81b03811681146200072857600080fd5b91506200073860e08a016200064e565b90509295985092959890939650565b600181811c908216806200075c57607f821691505b6020821081036200077d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620007d157600081815260208120601f850160051c81016020861015620007ac5750805b601f850160051c820191505b81811015620007cd57828155600101620007b8565b5050505b505050565b81516001600160401b03811115620007f257620007f262000564565b6200080a8162000803845462000747565b8462000783565b602080601f831160018114620008425760008415620008295750858301515b600019600386901b1c1916600185901b178555620007cd565b600085815260208120601f198616915b82811015620008735788860151825594840194600190910190840162000852565b5085821015620008925787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b7f68747470733a2f2f746f6b656e2e617274626c6f636b732e696f2f0000000000815260008251620008dc81601b8501602087016200057a565b602f60f81b601b939091019283015250601c01919050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200033a576200033a620008f4565b808201808211156200033a576200033a620008f4565b634e487b7160e01b600052603260045260246000fd5b600081620009625762000962620008f4565b506000190190565b60805160a051615643620009ba60003960008181610b380152611e0e015260008181610c8001528181611c3a0152818161229101528181612509015281816138160152613d9a01526156436000f3fe608060405234801561001057600080fd5b50600436106104145760003560e01c8063715018a611610223578063b75395e01161012c578063b75395e014610a39578063b7b04fae14610a4c578063b88d4fde14610a5f578063b971136814610a72578063bb3bafd614610a7a578063bd3d10e714610a9b578063c34a03b514610aae578063c6c7c5bf14610ac1578063c87b56dd14610ad4578063cc90e72514610ae7578063d03c390c14610afa578063db21a84614610b0d578063db2ff86114610b20578063e6032df214610b33578063e935b7b114610b5a578063e985e9c514610b6b578063eb9cd5d414610b7e578063ed8abfda14610ba0578063f2fde38b14610bca578063f313d73314610bdd578063f851a44014610c73578063f893c07b14610c7b57600080fd5b8063715018a61461080c57806376ee6fab146108145780638639415b146108275780638c3c9cdd146108795780638da5cb5b1461088c5780638dd91a561461089457806392f00233146108b857806395d89b41146108cb5780639a02e4fa146108d3578063a11ec70a1461090a578063a22cb4651461091d578063a3b2cca614610930578063a47d29cb14610943578063abcbb7b41461096f578063ac11fa1c14610977578063acad012414610997578063acd4c66f146109aa578063ad0305ce146109bc578063ad2cdfc4146109de578063ae45ad9814610a0b578063b1656ba314610a13578063b168762214610a2657600080fd5b806328ec8f501161032557806328ec8f50146106315780632b2741661461065e5780632b65e67d146106715780632b8258c5146106845780632d9c02051461068d57806330ef4c5f146106a057806336c7c12c146106b257806337859963146106c557806338c8e468146106d85780633bb22553146107045780633e48e8481461070d57806341814cd31461072057806342842e0e1461073357806348337282146107465780634e1d64af146107595780635508fd521461076157806358b9a5a914610775578063621a1f74146107ad5780636352211e146107c057806369d14faf146107d35780636c907b7f146107e657806370a08231146107f957600080fd5b80611e3c146104195780615de51461042e5780630132c6971461045457806301856fd41461046757806301ffc9a71461047a57806304143a5c1461049d57806306fdde03146104a5578063081812fc146104ba578063095ea7b3146104da5780630d170673146104ed5780630e79c928146105005780630ea5613f146105135780630ebeb0ee1461055d57806317df5366146105865780631ab6014c146105995780631b689c0b146105ac5780631c05cad7146105bf5780631e9bef46146105d25780632302cbda146105e5578063230448b1146105f857806323b872dd1461060b57806325b75d681461061e575b600080fd5b61042c610427366004614734565b610ca2565b005b61044161043c36600461476b565b610df4565b6040519081526020015b60405180910390f35b61042c6104623660046147ad565b611063565b61042c610475366004614734565b6111bb565b61048d6104883660046147fb565b6112a9565b604051901515815260200161044b565b61042c6112d4565b6104ad61135c565b60405161044b919061486f565b6104cd6104c8366004614882565b6113ee565b60405161044b919061489b565b61042c6104e83660046148af565b611415565b61042c6104fb3660046149a6565b61152a565b61042c61050e3660046149a6565b6115eb565b610526610521366004614882565b61183c565b60408051968752602087019590955292151593850193909352151560608401526080830191909152151560a082015260c00161044b565b6104cd61056b366004614882565b6000908152600c60205260409020546001600160a01b031690565b6007546104cd906001600160a01b031681565b600f546104cd906001600160a01b031681565b6104416105ba366004614882565b61189f565b61042c6105cd3660046149ec565b6118ae565b600a546104cd906001600160a01b031681565b61042c6105f3366004614a48565b6119ce565b61048d610606366004614a7c565b611a28565b61042c610619366004614abc565b611ad4565b61042c61062c3660046149a6565b611b05565b61044161063f366004614882565b6000908152600c6020526040902060010154600160a01b900460ff1690565b61042c61066c366004614afd565b611bbd565b61042c61067f366004614b1a565b611c37565b61044160135481565b6104ad61069b366004614882565b611fd0565b600f54600160a01b900460ff16610441565b6008546104cd906001600160a01b031681565b61042c6106d33660046149a6565b612075565b6104cd6106e6366004614882565b6000908152600c60205260409020600101546001600160a01b031690565b61044160115481565b61042c61071b3660046149a6565b6120d1565b6010546104cd906001600160a01b031681565b61042c610741366004614abc565b612149565b61042c610754366004614afd565b612164565b6104ad6121de565b60155461048d90600160f81b900460ff1681565b6104cd610783366004614734565b6000918252600b60209081526040808420928452600990920190529020546001600160a01b031690565b6104416107bb366004614882565b6121f7565b6104cd6107ce366004614882565b612259565b61042c6107e1366004614b81565b61228e565b61042c6107f4366004614afd565b6123b0565b610441610807366004614afd565b612466565b61042c6124ec565b61042c610822366004614b1a565b612506565b61083a610835366004614734565b6126fd565b604080519788526001600160a01b0396871660208901528701949094529184166060860152608085015290911660a083015260c082015260e00161044b565b6104ad610887366004614734565b6127ee565b6104cd61284d565b6108a76108a2366004614882565b612861565b60405161044b959493929190614ba6565b6014546104cd906001600160a01b031681565b6104ad612b55565b6108fd6108e1366004614882565b600090815260026020526040902054600160a01b900460a01b90565b60405161044b9190614c13565b61042c610918366004614882565b612b64565b61042c61092b366004614c36565b612bcd565b61042c61093e3660046149a6565b612bdc565b6104cd610951366004614882565b6000908152600c60205260409020600201546001600160a01b031690565b6104ad612c9a565b610441610985366004614882565b600d6020526000908152604090205481565b61042c6109a53660046149a6565b612d28565b600e54600160a01b900460ff16610441565b61048d6109ca366004614afd565b6014546001600160a01b0390811691161490565b6104416109ec366004614882565b6000908152600c6020526040902060020154600160a01b900460ff1690565b6104ad612e54565b61042c610a21366004614c64565b612e71565b6104cd610a34366004614882565b612fb2565b600e546104cd906001600160a01b031681565b61042c610a5a3660046149a6565b61302a565b61042c610a6d366004614cb3565b6130e2565b600954610441565b610a8d610a88366004614882565b613114565b60405161044b929190614d32565b61042c610aa9366004614734565b6133c6565b61042c610abc366004614734565b61347b565b6012546104cd906001600160a01b031681565b6104ad610ae2366004614882565b613554565b61042c610af5366004614db6565b61365b565b61042c610b08366004614882565b6137e4565b61042c610b1b366004614734565b613899565b61042c610b2e366004614882565b613947565b61048d7f000000000000000000000000000000000000000000000000000000000000000081565b6015546001600160f81b0316610441565b61048d610b79366004614dfc565b613a99565b610b91610b8c366004614882565b613ac7565b60405161044b93929190614e2a565b610441610bae366004614882565b6000908152600c6020526040902054600160a01b900460ff1690565b61042c610bd8366004614afd565b613b93565b610c35610beb366004614882565b6000908152600c60205260409020600281015481546001909201546001600160a01b03808316948482169460ff600160a01b95869004811695938516948490048116939091041690565b604080516001600160a01b039788168152958716602087015285019390935293166060830152608082019290925260a081019190915260c00161044b565b6104cd613c09565b6104417f000000000000000000000000000000000000000000000000000000000000000081565b81610cac81613c13565b610cd15760405162461bcd60e51b8152600401610cc890614e60565b60405180910390fd5b60008381526002602052604090206008546001600160a01b03163314610d335760405162461bcd60e51b815260206004820152601760248201527613db9b1e481c985b991bdb5a5e995c881b585e481cd95d604a1b6044820152606401610cc8565b8054600160a01b900460a01b6001600160a01b03191615610d8f5760405162461bcd60e51b8152602060048201526016602482015275151bdad95b881a185cda08185b1c9958591e481cd95d60521b6044820152606401610cc8565b82610dd05760405162461bcd60e51b8152602060048201526011602482015270139bc81e995c9bc81a185cda081cd95959607a1b6044820152606401610cc8565b805460a09390931c600160a01b026001600160a01b03909316929092179091555050565b6014546000906001600160a01b03163314610e515760405162461bcd60e51b815260206004820152601e60248201527f4d757374206d696e742066726f6d206d696e74657220636f6e747261637400006044820152606401610cc8565b6000838152600b60205260409020805462ffffff808216916001830191630100000090910416808310610ec65760405162461bcd60e51b815260206004820152601f60248201527f4d757374206e6f7420657863656564206d617820696e766f636174696f6e73006044820152606401610cc8565b8354600160881b900460ff1680610ef957506000878152600c60205260409020600201546001600160a01b038781169116145b610f455760405162461bcd60e51b815260206004820181905260248201527f50726f6a656374206d75737420657869737420616e64206265206163746976656044820152606401610cc8565b8354600160901b900460ff161580610f7957506000878152600c60205260409020600201546001600160a01b038781169116145b610fbd5760405162461bcd60e51b8152602060048201526015602482015274283ab931b430b9b2b99030b932903830bab9b2b21760591b6044820152606401610cc8565b835462ffffff191662ffffff8381169182178655848116620f42408a0201919083169003610fee57610fee88613c30565b610ff88982613c63565b600854604051635b140b8d60e11b8152600481018390526001600160a01b039091169063b628171a90602401600060405180830381600087803b15801561103e57600080fd5b505af1158015611052573d6000803e3d6000fd5b50929b9a5050505050505050505050565b6000828152600c602052604090206002015482906001600160a01b0316331461109e5760405162461bcd60e51b8152600401610cc890614e91565b6000838152600b60205260409020805462ffffff808216916301000000900481169085161061111b5760405162461bcd60e51b8152602060048201526024808201527f6d6178496e766f636174696f6e73206d6179206f6e6c79206265206465637265604482015263185cd95960e21b6064820152608401610cc8565b808462ffffff1610156111855760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c79206d617820696e766f636174696f6e73206774652063757272656e7460448201526b20696e766f636174696f6e7360a01b6064820152608401610cc8565b815465ffffff0000001916630100000062ffffff86169081029190911783558190036111b4576111b485613c30565b5050505050565b816111c581613d95565b6111e15760405162461bcd60e51b8152600401610cc890614eb6565b6000838152600c6020526040902060020154839062615bf560e21b906001600160a01b03163314806112195750611219333083611a28565b6112355760405162461bcd60e51b8152600401610cc890614ee0565b6000858152600b602052604090819020906112539086906001613e2f565b61129c5760405162461bcd60e51b815260206004820152601a60248201527901b5d5cdd0818dbdb9d185a5b88195e1858dd1b1e481bdb9948160361b6044820152606401610cc8565b6007019390935550505050565b60006001600160e01b03198216635d9dd7eb60e11b14806112ce57506112ce82613ea3565b92915050565b6301050e9760e21b6112e7333083611a28565b6113035760405162461bcd60e51b8152600401610cc890614f15565b601554600160f81b900460ff16156113515760405162461bcd60e51b815260206004820152601160248201527020b63932b0b23c903337b93134b23232b760791b6044820152606401610cc8565b611359613ef3565b50565b60606000805461136b90614f45565b80601f016020809104026020016040519081016040528092919081815260200182805461139790614f45565b80156113e45780601f106113b9576101008083540402835291602001916113e4565b820191906000526020600020905b8154815290600101906020018083116113c757829003601f168201915b5050505050905090565b60006113f982613f1b565b506000908152600460205260409020546001600160a01b031690565b600061142082612259565b9050806001600160a01b0316836001600160a01b03160361148d5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610cc8565b336001600160a01b03821614806114a957506114a98133613a99565b61151b5760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c00006064820152608401610cc8565b6115258383613f40565b505050565b8161153481613d95565b6115505760405162461bcd60e51b8152600401610cc890614eb6565b6000838152600c60205260409020600201548390630d17067360e01b906001600160a01b03163314806115895750611589333083611a28565b6115a55760405162461bcd60e51b8152600401610cc890614ee0565b8380516000036115c75760405162461bcd60e51b8152600401610cc890614f79565b6000868152600b602052604090206001016115e28682615011565b50505050505050565b816115f581613d95565b6116115760405162461bcd60e51b8152600401610cc890614eb6565b6000838152600c602052604090206002015483906301cf392560e31b906001600160a01b031633148061164a575061164a333083611a28565b6116665760405162461bcd60e51b8152600401610cc890614ee0565b8380516000036116885760405162461bcd60e51b8152600401610cc890614f79565b84518590600b8111156116dc5760405162461bcd60e51b815260206004820152601c60248201527b41737065637420726174696f20666f726d617420746f6f206c6f6e6760201b6044820152606401610cc8565b60008060005b838110156117c85760008582815181106116fe576116fe6150ca565b01602001516001600160f81b0319169050600360fc1b81108015906117315750603960f81b6001600160f81b0319821611155b156117405760019250506117b6565b6001600160f81b03198116601760f91b0361176457836117645760019350506117b6565b60405162461bcd60e51b815260206004820152602160248201527f496d70726f7065726c7920666f726d61747465642061737065637420726174696044820152606f60f81b6064820152608401610cc8565b806117c0816150f6565b9150506116e2565b50806118145760405162461bcd60e51b815260206004820152601b60248201527a41737065637420726174696f20686173206e6f206e756d6265727360281b6044820152606401610cc8565b60008a8152600b6020526040902060080161182f8a82615011565b5050505050505050505050565b6000818152600b60205260408120805462ffffff808216936301000000830490911692600160881b830460ff90811693600160901b810490911692600160481b9091046001600160401b03169161189288613d95565b1591505091939550919395565b60006112ce620f424083615125565b631c05cad760e01b6118c1333083611a28565b6118dd5760405162461bcd60e51b8152600401610cc890614f15565b846001600160a01b0381166119045760405162461bcd60e51b8152600401610cc890615139565b846001600160a01b03811661192b5760405162461bcd60e51b8152600401610cc890615139565b846001600160a01b0381166119525760405162461bcd60e51b8152600401610cc890615139565b846001600160a01b0381166119795760405162461bcd60e51b8152600401610cc890615139565b600f80546001600160a01b03199081166001600160a01b03808b1691909117909255601280548216838a16179055600e80548216838d1617905560108054909116918a16919091179055505050505050505050565b63118165ed60e11b6119e1333083611a28565b6119fd5760405162461bcd60e51b8152600401610cc890614f15565b818051600003611a1f5760405162461bcd60e51b8152600401610cc890614f79565b61152583613fae565b600080611a3361284d565b6001600160a01b031614158015611acc5750600a546040516217798b60e61b81526001600160a01b03868116600483015285811660248301526001600160e01b031985166044830152909116906305de62c0906064016020604051808303816000875af1158015611aa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611acc919061516e565b949350505050565b611ade3382613fba565b611afa5760405162461bcd60e51b8152600401610cc89061518b565b611525838383614018565b81611b0f81613d95565b611b2b5760405162461bcd60e51b8152600401610cc890614eb6565b6000838152600c602052604090206002015483906304b6ebad60e31b906001600160a01b0316331480611b645750611b64333083611a28565b611b805760405162461bcd60e51b8152600401610cc890614ee0565b838051600003611ba25760405162461bcd60e51b8152600401610cc890614f79565b6000868152600b602052604090206005016115e28682615011565b631593a0b360e11b611bd0333083611a28565b611bec5760405162461bcd60e51b8152600401610cc890614f15565b816001600160a01b038116611c135760405162461bcd60e51b8152600401610cc890615139565b5050600780546001600160a01b0319166001600160a01b0392909216919091179055565b857f00000000000000000000000000000000000000000000000000000000000000008110158015611c7257506015546001600160f81b031681105b611c8e5760405162461bcd60e51b8152600401610cc8906151d9565b6000878152600c602052604090206002015487906001600160a01b03163314611cc95760405162461bcd60e51b8152600401610cc890614e91565b866001600160a01b038116611cf05760405162461bcd60e51b8152600401610cc890615139565b6000898152600c6020526040902060648711801590611d10575060648511155b611d4a5760405162461bcd60e51b815260206004820152600b60248201526a4d6178206f66203130302560a81b6044820152606401610cc8565b861580611d5f57506001600160a01b03881615155b611dab5760405162461bcd60e51b815260206004820152601d60248201527f5072696d617279207061796565206973207a65726f20616464726573730000006044820152606401610cc8565b841580611dc057506001600160a01b03861615155b611e0c5760405162461bcd60e51b815260206004820152601f60248201527f5365636f6e64617279207061796565206973207a65726f2061646472657373006044820152606401610cc8565b7f000000000000000000000000000000000000000000000000000000000000000080611eaa57600282015482546001600160a01b039182168c831614916000918116908c161480611e6457506001600160a01b038b16155b60018501549091506000906001600160a01b038b811691161480611e8f57506001600160a01b038a16155b9050828015611e9b5750815b8015611ea45750805b93505050505b8015611f85576000801b600d60008d815260200190815260200160002081905550898260020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550888260000160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550878260020160146101000a81548160ff021916908360ff160217905550868260010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550858260010160146101000a81548160ff021916908360ff16021790555061182f565b8989898989604051602001611f9e95949392919061520c565b60408051601f19818403018152918152815160209283012060008e8152600d9093529120555050505050505050505050565b6000818152600b60205260409020600601805460609190611ff090614f45565b80601f016020809104026020016040519081016040528092919081815260200182805461201c90614f45565b80156120695780601f1061203e57610100808354040283529160200191612069565b820191906000526020600020905b81548152906001019060200180831161204c57829003601f168201915b50505050509050919050565b6000828152600c602052604090206002015482906001600160a01b031633146120b05760405162461bcd60e51b8152600401610cc890614e91565b6000838152600b602052604090206004016120cb8382615011565b50505050565b6000828152600c602052604090206002015482906001600160a01b0316331461210c5760405162461bcd60e51b8152600401610cc890614e91565b81805160000361212e5760405162461bcd60e51b8152600401610cc890614f79565b6000848152600b602052604090206006016111b48482615011565b611525838383604051806020016040528060008152506130e2565b632419b94160e11b612177333083611a28565b6121935760405162461bcd60e51b8152600401610cc890614f15565b816001600160a01b0381166121ba5760405162461bcd60e51b8152600401610cc890615139565b5050601480546001600160a01b0319166001600160a01b0392909216919091179055565b60606121f26576332e312e3160d01b6141b4565b905090565b600081815260026020526040812054600160a01b900460a01b6001600160a01b03198116820361222a5750600092915050565b8060405160200161223b9190614c13565b60405160208183030381529060405280519060200120915050919050565b6000818152600260205260408120546001600160a01b0316806112ce5760405162461bcd60e51b8152600401610cc89061523f565b817f000000000000000000000000000000000000000000000000000000000000000081101580156122c957506015546001600160f81b031681105b6122e55760405162461bcd60e51b8152600401610cc8906151d9565b826369d14faf60e01b6122f9333083611a28565b806123385750600061230961284d565b6001600160a01b031614801561233857506000828152600c60205260409020600201546001600160a01b031633145b6123545760405162461bcd60e51b8152600401610cc890615271565b836001600160a01b03811661237b5760405162461bcd60e51b8152600401610cc890615139565b505050600092835250600c602052604090912060020180546001600160a01b0319166001600160a01b03909216919091179055565b636c907b7f60e01b6123c3333083611a28565b6123df5760405162461bcd60e51b8152600401610cc890614f15565b816001600160a01b0381166124065760405162461bcd60e51b8152600401610cc890615139565b61152583600880546001600160a01b039092166001600160a01b03199283168117909155600980546001810182556000919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af018054909216179055565b60006001600160a01b0382166124d05760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610cc8565b506001600160a01b031660009081526003602052604090205490565b6124f461421f565b6124fc613ef3565b61250461427e565b565b857f0000000000000000000000000000000000000000000000000000000000000000811015801561254157506015546001600160f81b031681105b61255d5760405162461bcd60e51b8152600401610cc8906151d9565b866376ee6fab60e01b612571333083611a28565b806125b05750600061258161284d565b6001600160a01b03161480156125b057506000828152600c60205260409020600201546001600160a01b031633145b6125cc5760405162461bcd60e51b8152600401610cc890615271565b876001600160a01b0381166125f35760405162461bcd60e51b8152600401610cc890615139565b888888888860405160200161260c95949392919061520c565b60408051601f19818403018152918152815160209283012060008d8152600d9093529120541461267b5760405162461bcd60e51b815260206004820152601a602482015279135d5cdd081b585d18da08185c9d1a5cdd081c1c9bdc1bdcd85b60321b6044820152606401610cc8565b505050600096875250600c6020908152604080882060028101805482546001600160a01b0319166001600160a01b03998a161783559888166001600160a81b0319998a1617600160a01b60ff988916810291909117909155600190910180549590971694909716939093179190931690940293909317909155600d9052812055565b6000828152600c60205260408120600e54829182918291829182918291899060649061273390600160a01b900460ff16836152c9565b61273d9190615125565b985061274989826152e0565b600f5490915060649061276690600160a01b900460ff168c6152c9565b6127709190615125565b965061277c87826152e0565b600283015490915060649061279b90600160a01b900460ff16836152c9565b6127a59190615125565b92506127b183826152e0565b600e54600f546001600160a01b039182169a50169650945084156127e05760028201546001600160a01b031693505b505092959891949750929550565b6000828152600b60205260409020805460609190600160301b900462ffffff16831061282a5750506040805160208101909152600081526112ce565b6000838152600982016020526040902054611acc906001600160a01b0316614290565b60006121f26006546001600160a01b031690565b60608060608060606000600b6000888152602001908152602001600020905080600101805461288f90614f45565b80601f01602080910402602001604051908101604052809291908181526020018280546128bb90614f45565b80156129085780601f106128dd57610100808354040283529160200191612908565b820191906000526020600020905b8154815290600101906020018083116128eb57829003601f168201915b5050505050955080600201805461291e90614f45565b80601f016020809104026020016040519081016040528092919081815260200182805461294a90614f45565b80156129975780601f1061296c57610100808354040283529160200191612997565b820191906000526020600020905b81548152906001019060200180831161297a57829003601f168201915b505050505094508060030180546129ad90614f45565b80601f01602080910402602001604051908101604052809291908181526020018280546129d990614f45565b8015612a265780601f106129fb57610100808354040283529160200191612a26565b820191906000526020600020905b815481529060010190602001808311612a0957829003601f168201915b50505050509350806004018054612a3c90614f45565b80601f0160208091040260200160405190810160405280929190818152602001828054612a6890614f45565b8015612ab55780601f10612a8a57610100808354040283529160200191612ab5565b820191906000526020600020905b815481529060010190602001808311612a9857829003601f168201915b50505050509250806005018054612acb90614f45565b80601f0160208091040260200160405190810160405280929190818152602001828054612af790614f45565b8015612b445780601f10612b1957610100808354040283529160200191612b44565b820191906000526020600020905b815481529060010190602001808311612b2757829003601f168201915b505050505091505091939590929450565b60606001805461136b90614f45565b6000818152600c602052604090206002015481906001600160a01b03163314612b9f5760405162461bcd60e51b8152600401610cc890614e91565b506000908152600b60205260409020805460ff60901b198116600160901b9182900460ff1615909102179055565b612bd833838361430f565b5050565b612be582613d95565b612c0057612bfb33306351d9665360e11b611a28565b612c1e565b6000828152600c60205260409020600201546001600160a01b031633145b612c7f5760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c7920617274697374207768656e20756e6c6f636b65642c206f776e657260448201526b081dda195b881b1bd8dad95960a21b6064820152608401610cc8565b6000828152600b602052604090206003016115258282615011565b60168054612ca790614f45565b80601f0160208091040260200160405190810160405280929190818152602001828054612cd390614f45565b8015612d205780601f10612cf557610100808354040283529160200191612d20565b820191906000526020600020905b815481529060010190602001808311612d0357829003601f168201915b505050505081565b81612d3281613d95565b612d4e5760405162461bcd60e51b8152600401610cc890614eb6565b6000838152600c60205260409020600201548390632b2b404960e21b906001600160a01b0316331480612d875750612d87333083611a28565b612da35760405162461bcd60e51b8152600401610cc890614ee0565b838051600003612dc55760405162461bcd60e51b8152600401610cc890614f79565b6000868152600b60205260409020612ddc866143d9565b8154600160301b9081900462ffffff9081166000908152600985016020526040902080546001600160a01b0319166001600160a01b0394909416939093179092558254612e2e929190041660016152f3565b815462ffffff91909116600160301b0262ffffff60301b19909116179055505050505050565b60606121f26e47656e417274373231436f7265563360881b6141b4565b82612e7b81613d95565b612e975760405162461bcd60e51b8152600401610cc890614eb6565b6000848152600c6020526040902060020154849063b1656ba360e01b906001600160a01b0316331480612ed05750612ed0333083611a28565b612eec5760405162461bcd60e51b8152600401610cc890614ee0565b838051600003612f0e5760405162461bcd60e51b8152600401610cc890614f79565b6000878152600b602052604090208054600160301b900462ffffff168710612f705760405162461bcd60e51b81526020600482015260156024820152747363726970744964206f7574206f662072616e676560581b6044820152606401610cc8565b612f79866143d9565b6000978852600991909101602052604090962080546001600160a01b0319166001600160a01b0390971696909617909555505050505050565b6009546000908210612ffc5760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b6044820152606401610cc8565b6009828154811061300f5761300f6150ca565b6000918252602090912001546001600160a01b031692915050565b8161303481613d95565b6130505760405162461bcd60e51b8152600401610cc890614eb6565b6000838152600c60205260409020600201548390635bd827d760e11b906001600160a01b03163314806130895750613089333083611a28565b6130a55760405162461bcd60e51b8152600401610cc890614ee0565b8380516000036130c75760405162461bcd60e51b8152600401610cc890614f79565b6000868152600b602052604090206002016115e28682615011565b6130ec3383613fba565b6131085760405162461bcd60e51b8152600401610cc89061518b565b6120cb84848484614483565b6060808261312181613c13565b61313d5760405162461bcd60e51b8152600401610cc890614e60565b60408051600480825260a082019092529060208201608080368337505060408051600480825260a08201909252929550905060208201608080368337019050509150600061318a8561189f565b6000818152600c6020526040812080546001820154939450909260ff600160a01b92839004811693929091041690826131c48360646152e0565b6131ce91906152c9565b905060006131dc84846152c9565b60115460135491925090600084156132565760028801548c516001600160a01b03909116908d9083908110613213576132136150ca565b6001600160a01b0390921660209283029190910190910152848b82613237816150f6565b935081518110613249576132496150ca565b6020026020010181815250505b83156132c45760018801548c516001600160a01b03909116908d9083908110613281576132816150ca565b6001600160a01b0390921660209283029190910190910152838b826132a5816150f6565b9350815181106132b7576132b76150ca565b6020026020010181815250505b8215613330576010548c516001600160a01b03909116908d90839081106132ed576132ed6150ca565b6001600160a01b0390921660209283029190910190910152828b82613311816150f6565b935081518110613323576133236150ca565b6020026020010181815250505b811561339c576012548c516001600160a01b03909116908d9083908110613359576133596150ca565b6001600160a01b0390921660209283029190910190910152818b8261337d816150f6565b93508151811061338f5761338f6150ca565b6020026020010181815250505b80600411156133b75780600403808d51038d52808c51038c52505b50505050505050505050915091565b63bd3d10e760e01b6133d9333083611a28565b6133f55760405162461bcd60e51b8152600401610cc890614f15565b60646134018385615316565b111561344a5760405162461bcd60e51b81526020600482015260186024820152774d61782073756d206f66204f4e455f48554e44524544202560401b6044820152606401610cc8565b50600e805460ff938416600160a01b90810260ff60a01b1992831617909255600f8054939094169091029116179055565b6000828152600c602052604090206002015482906001600160a01b031633146134b65760405162461bcd60e51b8152600401610cc890614e91565b605f8211156135265760405162461bcd60e51b815260206004820152603660248201527f4d6178206f66204152544953545f4d41585f5345434f4e444152595f524f594160448201527513151657d4115490d153951051d1481c195c98d95b9d60521b6064820152608401610cc8565b506000918252600c6020526040909120805460ff909216600160a01b0260ff60a01b19909216919091179055565b60608161356081613c13565b61357c5760405162461bcd60e51b8152600401610cc890614e60565b6000600b600061358b8661189f565b815260200190815260200160002060060180546135a790614f45565b80601f01602080910402602001604051908101604052809291908181526020018280546135d390614f45565b80156136205780601f106135f557610100808354040283529160200191613620565b820191906000526020600020905b81548152906001019060200180831161360357829003601f168201915b5050505050905080613631856144b6565b604051602001613642929190615329565b6040516020818303038152906040529250505b50919050565b63cc90e72560e01b61366e333083611a28565b61368a5760405162461bcd60e51b8152600401610cc890614f15565b8280516000036136ac5760405162461bcd60e51b8152600401610cc890614f79565b826001600160a01b0381166136d35760405162461bcd60e51b8152600401610cc890615139565b601554600160f81b900460ff16156137265760405162461bcd60e51b81526020600482015260166024820152752732bb90383937b532b1ba39903337b93134b23232b760511b6044820152606401610cc8565b6015546001600160f81b03166000818152600c6020908152604080832060020180546001600160a01b0319166001600160a01b038a16179055600b90915290206001016137738782615011565b506000818152600b60205260409020805465ffffff00000060ff60901b011916613d09601e1b600160901b011781556006016137b0601682615358565b506137bc816001615424565b601580546001600160f81b0319166001600160f81b0392909216919091179055505050505050565b63340f0e4360e21b6137f7333083611a28565b6138135760405162461bcd60e51b8152600401610cc890614f15565b817f0000000000000000000000000000000000000000000000000000000000000000811015801561384e57506015546001600160f81b031681105b61386a5760405162461bcd60e51b8152600401610cc8906151d9565b50506000908152600b60205260409020805460ff60881b198116600160881b9182900460ff1615909102179055565b636d90d42360e11b6138ac333083611a28565b6138c85760405162461bcd60e51b8152600401610cc890614f15565b6127106138d58385615316565b111561393b5760405162461bcd60e51b815260206004820152602f60248201527f4d61782073756d206f66204d41585f50524f56494445525f5345434f4e44415260448201526e595f53414c45535f4250532042505360881b6064820152608401610cc8565b50601191909155601355565b8061395181613d95565b61396d5760405162461bcd60e51b8152600401610cc890614eb6565b6000828152600c6020526040902060020154829063db2ff86160e01b906001600160a01b03163314806139a657506139a6333083611a28565b6139c25760405162461bcd60e51b8152600401610cc890614ee0565b6000848152600b602052604090208054600160301b900462ffffff16613a2a5760405162461bcd60e51b815260206004820152601e60248201527f746865726520617265206e6f207363726970747320746f2072656d6f766500006044820152606401610cc8565b80546009820190600090613a4c90600190600160301b900462ffffff16615444565b62ffffff9081168252602082019290925260400160002080546001600160a01b0319169055815462ffffff60301b198116600160301b918290048316600019019092160217905550505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6000818152600b60205260408120600781015460609283929091613aea906141b4565b9350806008018054613afb90614f45565b80601f0160208091040260200160405190810160405280929190818152602001828054613b2790614f45565b8015613b745780601f10613b4957610100808354040283529160200191613b74565b820191906000526020600020905b815481529060010190602001808311613b5757829003601f168201915b5050935496989297505050600160301b90940462ffffff169392505050565b613b9b61421f565b6001600160a01b038116613c005760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610cc8565b611359816145b6565b60006121f261284d565b6000908152600260205260409020546001600160a01b0316151590565b6000908152600b60205260409020805467ffffffffffffffff60481b1916600160481b426001600160401b031602179055565b6001600160a01b038216613cb95760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610cc8565b613cc281613c13565b15613d0e5760405162461bcd60e51b815260206004820152601c60248201527b115490cdcc8c4e881d1bdad95b88185b1c9958591e481b5a5b9d195960221b6044820152606401610cc8565b6001600160a01b0382166000908152600360205260408120805460019290613d37908490615316565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000817f00000000000000000000000000000000000000000000000000000000000000008110158015613dd257506015546001600160f81b031681105b613dee5760405162461bcd60e51b8152600401610cc8906151d9565b6000838152600b6020526040902054600160481b90046001600160401b031680158080613e2657506224ea00613e2483426152e0565b105b95945050505050565b60008060005b60208160ff161015613e8f576000868260ff1660208110613e5857613e586150ca565b1a90508015801590613e6d575060808160ff16105b15613e86578560ff168160ff1603613e86578260010192505b50600101613e35565b8360ff168260ff1614925050509392505050565b60006001600160e01b031982166380ac58cd60e01b1480613ed457506001600160e01b03198216635b5e139f60e01b145b806112ce57506301ffc9a760e01b6001600160e01b03198316146112ce565b601554600160f81b900460ff1661250457601580546001600160f81b0316600160f81b179055565b613f2481613c13565b6113595760405162461bcd60e51b8152600401610cc89061523f565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190613f7582612259565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6016612bd88282615011565b600080613fc683612259565b9050806001600160a01b0316846001600160a01b03161480613fed5750613fed8185613a99565b80611acc5750836001600160a01b0316614006846113ee565b6001600160a01b031614949350505050565b826001600160a01b031661402b82612259565b6001600160a01b03161461408f5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610cc8565b6001600160a01b0382166140f15760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610cc8565b6140fc600082613f40565b6001600160a01b03831660009081526003602052604081208054600192906141259084906152e0565b90915550506001600160a01b0382166000908152600360205260408120805460019290614153908490615316565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b606060005b828160ff16602081106141ce576141ce6150ca565b1a60f81b6001600160f81b031916158015906141ed575060208160ff16105b1561420457806141fc81615460565b9150506141b9565b60405191506040820160405280825282602083015250919050565b3361422861284d565b6001600160a01b0316146125045760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610cc8565b61428661421f565b61250460006145b6565b604051630eacc5e760e31b815260609073__$55f4e50e6128becd8bf164b272db98df09$__906375662f38906142ca90859060040161489b565b600060405180830381865af41580156142e7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112ce919081019061547f565b816001600160a01b0316836001600160a01b03160361436c5760405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b6044820152606401610cc8565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6000807f42797465636f646553746f726167655f56312e302e305f5f5f5f5f5f5f5f5f203084604051602001614411939291906154ec565b60405160208183030381529060405290508051602082016000f091506001600160a01b0382166136555760405162461bcd60e51b815260206004820152601e60248201527f436f6e7472616374417353746f726167653a205772697465204572726f7200006044820152606401610cc8565b61448e848484614018565b61449a848484846145e1565b6120cb5760405162461bcd60e51b8152600401610cc89061554d565b6060816000036144dd5750506040805180820190915260018152600360fc1b602082015290565b8160005b811561450757806144f1816150f6565b91506145009050600a83615125565b91506144e1565b6000816001600160401b03811115614521576145216148db565b6040519080825280601f01601f19166020018201604052801561454b576020820181803683370190505b5090505b8415611acc576145606001836152e0565b915061456d600a8661559f565b614578906030615316565b60f81b81838151811061458d5761458d6150ca565b60200101906001600160f81b031916908160001a9053506145af600a86615125565b945061454f565b6145bf816146e2565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160a01b0384163b156146d757604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906146259033908990889088906004016155b3565b6020604051808303816000875af1925050508015614660575060408051601f3d908101601f1916820190925261465d918101906155f0565b60015b6146bd573d80801561468e576040519150601f19603f3d011682016040523d82523d6000602084013e614693565b606091505b5080516000036146b55760405162461bcd60e51b8152600401610cc89061554d565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611acc565b506001949350505050565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000806040838503121561474757600080fd5b50508035926020909101359150565b6001600160a01b038116811461135957600080fd5b60008060006060848603121561478057600080fd5b833561478b81614756565b92506020840135915060408401356147a281614756565b809150509250925092565b600080604083850312156147c057600080fd5b82359150602083013562ffffff811681146147da57600080fd5b809150509250929050565b6001600160e01b03198116811461135957600080fd5b60006020828403121561480d57600080fd5b8135614818816147e5565b9392505050565b60005b8381101561483a578181015183820152602001614822565b50506000910152565b6000815180845261485b81602086016020860161481f565b601f01601f19169290920160200192915050565b6020815260006148186020830184614843565b60006020828403121561489457600080fd5b5035919050565b6001600160a01b0391909116815260200190565b600080604083850312156148c257600080fd5b82356148cd81614756565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614919576149196148db565b604052919050565b60006001600160401b0382111561493a5761493a6148db565b50601f01601f191660200190565b600061495b61495684614921565b6148f1565b905082815283838301111561496f57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261499757600080fd5b61481883833560208501614948565b600080604083850312156149b957600080fd5b8235915060208301356001600160401b038111156149d657600080fd5b6149e285828601614986565b9150509250929050565b60008060008060808587031215614a0257600080fd5b8435614a0d81614756565b93506020850135614a1d81614756565b92506040850135614a2d81614756565b91506060850135614a3d81614756565b939692955090935050565b600060208284031215614a5a57600080fd5b81356001600160401b03811115614a7057600080fd5b611acc84828501614986565b600080600060608486031215614a9157600080fd5b8335614a9c81614756565b92506020840135614aac81614756565b915060408401356147a2816147e5565b600080600060608486031215614ad157600080fd5b8335614adc81614756565b92506020840135614aec81614756565b929592945050506040919091013590565b600060208284031215614b0f57600080fd5b813561481881614756565b60008060008060008060c08789031215614b3357600080fd5b863595506020870135614b4581614756565b94506040870135614b5581614756565b9350606087013592506080870135614b6c81614756565b8092505060a087013590509295509295509295565b60008060408385031215614b9457600080fd5b8235915060208301356147da81614756565b60a081526000614bb960a0830188614843565b8281036020840152614bcb8188614843565b90508281036040840152614bdf8187614843565b90508281036060840152614bf38186614843565b90508281036080840152614c078185614843565b98975050505050505050565b6001600160a01b031991909116815260200190565b801515811461135957600080fd5b60008060408385031215614c4957600080fd5b8235614c5481614756565b915060208301356147da81614c28565b600080600060608486031215614c7957600080fd5b833592506020840135915060408401356001600160401b03811115614c9d57600080fd5b614ca986828701614986565b9150509250925092565b60008060008060808587031215614cc957600080fd5b8435614cd481614756565b93506020850135614ce481614756565b92506040850135915060608501356001600160401b03811115614d0657600080fd5b8501601f81018713614d1757600080fd5b614d2687823560208401614948565b91505092959194509250565b604080825283519082018190526000906020906060840190828701845b82811015614d745781516001600160a01b031684529284019290840190600101614d4f565b5050508381038285015284518082528583019183019060005b81811015614da957835183529284019291840191600101614d8d565b5090979650505050505050565b60008060408385031215614dc957600080fd5b82356001600160401b03811115614ddf57600080fd5b614deb85828601614986565b92505060208301356147da81614756565b60008060408385031215614e0f57600080fd5b8235614e1a81614756565b915060208301356147da81614756565b606081526000614e3d6060830186614843565b8281036020840152614e4f8186614843565b915050826040830152949350505050565b602080825260179082015276151bdad95b88125108191bd95cc81b9bdd08195e1a5cdd604a1b604082015260600190565b6020808252600b908201526a13db9b1e48185c9d1a5cdd60aa1b604082015260600190565b60208082526010908201526f13db9b1e481a59881d5b9b1bd8dad95960821b604082015260600190565b6020808252818101527f4f6e6c7920617274697374206f722041646d696e2041434c20616c6c6f776564604082015260600190565b60208082526016908201527513db9b1e4810591b5a5b881050d308185b1b1bddd95960521b604082015260600190565b600181811c90821680614f5957607f821691505b60208210810361365557634e487b7160e01b600052602260045260246000fd5b6020808252601b908201527a4d75737420696e707574206e6f6e2d656d70747920737472696e6760281b604082015260600190565b601f82111561152557600081815260208120601f850160051c81016020861015614fd55750805b601f850160051c820191505b81811015614ff457828155600101614fe1565b505050505050565b600019600383901b1c191660019190911b1790565b81516001600160401b0381111561502a5761502a6148db565b61503e816150388454614f45565b84614fae565b602080601f83116001811461506d576000841561505b5750858301515b6150658582614ffc565b865550614ff4565b600085815260208120601f198616915b8281101561509c5788860151825594840194600190910190840161507d565b50858210156150ba5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201615108576151086150e0565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826151345761513461510f565b500490565b6020808252601b908201527a4d75737420696e707574206e6f6e2d7a65726f206164647265737360281b604082015260600190565b60006020828403121561518057600080fd5b815161481881614c28565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b602080825260199082015278141c9bda9958dd08125108191bd95cc81b9bdd08195e1a5cdd603a1b604082015260600190565b6001600160a01b039586168152938516602085015260408401929092529092166060820152608081019190915260a00190565b602080825260189082015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604082015260600190565b60208082526038908201527f4f6e6c792041646d696e2041434c20616c6c6f7765642c206f722061727469736040820152771d081a59881bdddb995c881a185cc81c995b9bdd5b98d95960421b606082015260800190565b80820281158282048414176112ce576112ce6150e0565b818103818111156112ce576112ce6150e0565b62ffffff81811683821601908082111561530f5761530f6150e0565b5092915050565b808201808211156112ce576112ce6150e0565b6000835161533b81846020880161481f565b83519083019061534f81836020880161481f565b01949350505050565b818103615363575050565b61536d8254614f45565b6001600160401b03811115615384576153846148db565b615392816150388454614f45565b6000601f8211600181146153c057600083156153ae5750848201545b6153b88482614ffc565b8555506111b4565b600085815260209020601f19841690600086815260209020845b838110156153fa57828601548255600195860195909101906020016153da565b50858310156150ba5793015460001960f8600387901b161c19169092555050600190811b01905550565b6001600160f81b0381811683821601908082111561530f5761530f6150e0565b62ffffff82811682821603908082111561530f5761530f6150e0565b600060ff821660ff8103615476576154766150e0565b60010192915050565b60006020828403121561549157600080fd5b81516001600160401b038111156154a757600080fd5b8201601f810184136154b857600080fd5b80516154c661495682614921565b8181528560208385010111156154db57600080fd5b613e2682602083016020860161481f565b6a600b5981380380925939f360a81b8152607f60f91b600b820152600c81018490526000602c8201819052606084901b6001600160601b0319166038830152825161553e81604c85016020870161481f565b91909101604c01949350505050565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6000826155ae576155ae61510f565b500690565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906155e690830184614843565b9695505050505050565b60006020828403121561560257600080fd5b8151614818816147e556fea264697066735822122046fabee50be8dd6275da76f21d01457683d77a691899159b5346a8721594e7b864736f6c634300081300334d75737420696e707574206e6f6e2d7a65726f20616464726573730000000000",
|
|
1809
|
-
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106104145760003560e01c8063715018a611610223578063b75395e01161012c578063b75395e014610a39578063b7b04fae14610a4c578063b88d4fde14610a5f578063b971136814610a72578063bb3bafd614610a7a578063bd3d10e714610a9b578063c34a03b514610aae578063c6c7c5bf14610ac1578063c87b56dd14610ad4578063cc90e72514610ae7578063d03c390c14610afa578063db21a84614610b0d578063db2ff86114610b20578063e6032df214610b33578063e935b7b114610b5a578063e985e9c514610b6b578063eb9cd5d414610b7e578063ed8abfda14610ba0578063f2fde38b14610bca578063f313d73314610bdd578063f851a44014610c73578063f893c07b14610c7b57600080fd5b8063715018a61461080c57806376ee6fab146108145780638639415b146108275780638c3c9cdd146108795780638da5cb5b1461088c5780638dd91a561461089457806392f00233146108b857806395d89b41146108cb5780639a02e4fa146108d3578063a11ec70a1461090a578063a22cb4651461091d578063a3b2cca614610930578063a47d29cb14610943578063abcbb7b41461096f578063ac11fa1c14610977578063acad012414610997578063acd4c66f146109aa578063ad0305ce146109bc578063ad2cdfc4146109de578063ae45ad9814610a0b578063b1656ba314610a13578063b168762214610a2657600080fd5b806328ec8f501161032557806328ec8f50146106315780632b2741661461065e5780632b65e67d146106715780632b8258c5146106845780632d9c02051461068d57806330ef4c5f146106a057806336c7c12c146106b257806337859963146106c557806338c8e468146106d85780633bb22553146107045780633e48e8481461070d57806341814cd31461072057806342842e0e1461073357806348337282146107465780634e1d64af146107595780635508fd521461076157806358b9a5a914610775578063621a1f74146107ad5780636352211e146107c057806369d14faf146107d35780636c907b7f146107e657806370a08231146107f957600080fd5b80611e3c146104195780615de51461042e5780630132c6971461045457806301856fd41461046757806301ffc9a71461047a57806304143a5c1461049d57806306fdde03146104a5578063081812fc146104ba578063095ea7b3146104da5780630d170673146104ed5780630e79c928146105005780630ea5613f146105135780630ebeb0ee1461055d57806317df5366146105865780631ab6014c146105995780631b689c0b146105ac5780631c05cad7146105bf5780631e9bef46146105d25780632302cbda146105e5578063230448b1146105f857806323b872dd1461060b57806325b75d681461061e575b600080fd5b61042c610427366004614734565b610ca2565b005b61044161043c36600461476b565b610df4565b6040519081526020015b60405180910390f35b61042c6104623660046147ad565b611063565b61042c610475366004614734565b6111bb565b61048d6104883660046147fb565b6112a9565b604051901515815260200161044b565b61042c6112d4565b6104ad61135c565b60405161044b919061486f565b6104cd6104c8366004614882565b6113ee565b60405161044b919061489b565b61042c6104e83660046148af565b611415565b61042c6104fb3660046149a6565b61152a565b61042c61050e3660046149a6565b6115eb565b610526610521366004614882565b61183c565b60408051968752602087019590955292151593850193909352151560608401526080830191909152151560a082015260c00161044b565b6104cd61056b366004614882565b6000908152600c60205260409020546001600160a01b031690565b6007546104cd906001600160a01b031681565b600f546104cd906001600160a01b031681565b6104416105ba366004614882565b61189f565b61042c6105cd3660046149ec565b6118ae565b600a546104cd906001600160a01b031681565b61042c6105f3366004614a48565b6119ce565b61048d610606366004614a7c565b611a28565b61042c610619366004614abc565b611ad4565b61042c61062c3660046149a6565b611b05565b61044161063f366004614882565b6000908152600c6020526040902060010154600160a01b900460ff1690565b61042c61066c366004614afd565b611bbd565b61042c61067f366004614b1a565b611c37565b61044160135481565b6104ad61069b366004614882565b611fd0565b600f54600160a01b900460ff16610441565b6008546104cd906001600160a01b031681565b61042c6106d33660046149a6565b612075565b6104cd6106e6366004614882565b6000908152600c60205260409020600101546001600160a01b031690565b61044160115481565b61042c61071b3660046149a6565b6120d1565b6010546104cd906001600160a01b031681565b61042c610741366004614abc565b612149565b61042c610754366004614afd565b612164565b6104ad6121de565b60155461048d90600160f81b900460ff1681565b6104cd610783366004614734565b6000918252600b60209081526040808420928452600990920190529020546001600160a01b031690565b6104416107bb366004614882565b6121f7565b6104cd6107ce366004614882565b612259565b61042c6107e1366004614b81565b61228e565b61042c6107f4366004614afd565b6123b0565b610441610807366004614afd565b612466565b61042c6124ec565b61042c610822366004614b1a565b612506565b61083a610835366004614734565b6126fd565b604080519788526001600160a01b0396871660208901528701949094529184166060860152608085015290911660a083015260c082015260e00161044b565b6104ad610887366004614734565b6127ee565b6104cd61284d565b6108a76108a2366004614882565b612861565b60405161044b959493929190614ba6565b6014546104cd906001600160a01b031681565b6104ad612b55565b6108fd6108e1366004614882565b600090815260026020526040902054600160a01b900460a01b90565b60405161044b9190614c13565b61042c610918366004614882565b612b64565b61042c61092b366004614c36565b612bcd565b61042c61093e3660046149a6565b612bdc565b6104cd610951366004614882565b6000908152600c60205260409020600201546001600160a01b031690565b6104ad612c9a565b610441610985366004614882565b600d6020526000908152604090205481565b61042c6109a53660046149a6565b612d28565b600e54600160a01b900460ff16610441565b61048d6109ca366004614afd565b6014546001600160a01b0390811691161490565b6104416109ec366004614882565b6000908152600c6020526040902060020154600160a01b900460ff1690565b6104ad612e54565b61042c610a21366004614c64565b612e71565b6104cd610a34366004614882565b612fb2565b600e546104cd906001600160a01b031681565b61042c610a5a3660046149a6565b61302a565b61042c610a6d366004614cb3565b6130e2565b600954610441565b610a8d610a88366004614882565b613114565b60405161044b929190614d32565b61042c610aa9366004614734565b6133c6565b61042c610abc366004614734565b61347b565b6012546104cd906001600160a01b031681565b6104ad610ae2366004614882565b613554565b61042c610af5366004614db6565b61365b565b61042c610b08366004614882565b6137e4565b61042c610b1b366004614734565b613899565b61042c610b2e366004614882565b613947565b61048d7f000000000000000000000000000000000000000000000000000000000000000081565b6015546001600160f81b0316610441565b61048d610b79366004614dfc565b613a99565b610b91610b8c366004614882565b613ac7565b60405161044b93929190614e2a565b610441610bae366004614882565b6000908152600c6020526040902054600160a01b900460ff1690565b61042c610bd8366004614afd565b613b93565b610c35610beb366004614882565b6000908152600c60205260409020600281015481546001909201546001600160a01b03808316948482169460ff600160a01b95869004811695938516948490048116939091041690565b604080516001600160a01b039788168152958716602087015285019390935293166060830152608082019290925260a081019190915260c00161044b565b6104cd613c09565b6104417f000000000000000000000000000000000000000000000000000000000000000081565b81610cac81613c13565b610cd15760405162461bcd60e51b8152600401610cc890614e60565b60405180910390fd5b60008381526002602052604090206008546001600160a01b03163314610d335760405162461bcd60e51b815260206004820152601760248201527613db9b1e481c985b991bdb5a5e995c881b585e481cd95d604a1b6044820152606401610cc8565b8054600160a01b900460a01b6001600160a01b03191615610d8f5760405162461bcd60e51b8152602060048201526016602482015275151bdad95b881a185cda08185b1c9958591e481cd95d60521b6044820152606401610cc8565b82610dd05760405162461bcd60e51b8152602060048201526011602482015270139bc81e995c9bc81a185cda081cd95959607a1b6044820152606401610cc8565b805460a09390931c600160a01b026001600160a01b03909316929092179091555050565b6014546000906001600160a01b03163314610e515760405162461bcd60e51b815260206004820152601e60248201527f4d757374206d696e742066726f6d206d696e74657220636f6e747261637400006044820152606401610cc8565b6000838152600b60205260409020805462ffffff808216916001830191630100000090910416808310610ec65760405162461bcd60e51b815260206004820152601f60248201527f4d757374206e6f7420657863656564206d617820696e766f636174696f6e73006044820152606401610cc8565b8354600160881b900460ff1680610ef957506000878152600c60205260409020600201546001600160a01b038781169116145b610f455760405162461bcd60e51b815260206004820181905260248201527f50726f6a656374206d75737420657869737420616e64206265206163746976656044820152606401610cc8565b8354600160901b900460ff161580610f7957506000878152600c60205260409020600201546001600160a01b038781169116145b610fbd5760405162461bcd60e51b8152602060048201526015602482015274283ab931b430b9b2b99030b932903830bab9b2b21760591b6044820152606401610cc8565b835462ffffff191662ffffff8381169182178655848116620f42408a0201919083169003610fee57610fee88613c30565b610ff88982613c63565b600854604051635b140b8d60e11b8152600481018390526001600160a01b039091169063b628171a90602401600060405180830381600087803b15801561103e57600080fd5b505af1158015611052573d6000803e3d6000fd5b50929b9a5050505050505050505050565b6000828152600c602052604090206002015482906001600160a01b0316331461109e5760405162461bcd60e51b8152600401610cc890614e91565b6000838152600b60205260409020805462ffffff808216916301000000900481169085161061111b5760405162461bcd60e51b8152602060048201526024808201527f6d6178496e766f636174696f6e73206d6179206f6e6c79206265206465637265604482015263185cd95960e21b6064820152608401610cc8565b808462ffffff1610156111855760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c79206d617820696e766f636174696f6e73206774652063757272656e7460448201526b20696e766f636174696f6e7360a01b6064820152608401610cc8565b815465ffffff0000001916630100000062ffffff86169081029190911783558190036111b4576111b485613c30565b5050505050565b816111c581613d95565b6111e15760405162461bcd60e51b8152600401610cc890614eb6565b6000838152600c6020526040902060020154839062615bf560e21b906001600160a01b03163314806112195750611219333083611a28565b6112355760405162461bcd60e51b8152600401610cc890614ee0565b6000858152600b602052604090819020906112539086906001613e2f565b61129c5760405162461bcd60e51b815260206004820152601a60248201527901b5d5cdd0818dbdb9d185a5b88195e1858dd1b1e481bdb9948160361b6044820152606401610cc8565b6007019390935550505050565b60006001600160e01b03198216635d9dd7eb60e11b14806112ce57506112ce82613ea3565b92915050565b6301050e9760e21b6112e7333083611a28565b6113035760405162461bcd60e51b8152600401610cc890614f15565b601554600160f81b900460ff16156113515760405162461bcd60e51b815260206004820152601160248201527020b63932b0b23c903337b93134b23232b760791b6044820152606401610cc8565b611359613ef3565b50565b60606000805461136b90614f45565b80601f016020809104026020016040519081016040528092919081815260200182805461139790614f45565b80156113e45780601f106113b9576101008083540402835291602001916113e4565b820191906000526020600020905b8154815290600101906020018083116113c757829003601f168201915b5050505050905090565b60006113f982613f1b565b506000908152600460205260409020546001600160a01b031690565b600061142082612259565b9050806001600160a01b0316836001600160a01b03160361148d5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610cc8565b336001600160a01b03821614806114a957506114a98133613a99565b61151b5760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c00006064820152608401610cc8565b6115258383613f40565b505050565b8161153481613d95565b6115505760405162461bcd60e51b8152600401610cc890614eb6565b6000838152600c60205260409020600201548390630d17067360e01b906001600160a01b03163314806115895750611589333083611a28565b6115a55760405162461bcd60e51b8152600401610cc890614ee0565b8380516000036115c75760405162461bcd60e51b8152600401610cc890614f79565b6000868152600b602052604090206001016115e28682615011565b50505050505050565b816115f581613d95565b6116115760405162461bcd60e51b8152600401610cc890614eb6565b6000838152600c602052604090206002015483906301cf392560e31b906001600160a01b031633148061164a575061164a333083611a28565b6116665760405162461bcd60e51b8152600401610cc890614ee0565b8380516000036116885760405162461bcd60e51b8152600401610cc890614f79565b84518590600b8111156116dc5760405162461bcd60e51b815260206004820152601c60248201527b41737065637420726174696f20666f726d617420746f6f206c6f6e6760201b6044820152606401610cc8565b60008060005b838110156117c85760008582815181106116fe576116fe6150ca565b01602001516001600160f81b0319169050600360fc1b81108015906117315750603960f81b6001600160f81b0319821611155b156117405760019250506117b6565b6001600160f81b03198116601760f91b0361176457836117645760019350506117b6565b60405162461bcd60e51b815260206004820152602160248201527f496d70726f7065726c7920666f726d61747465642061737065637420726174696044820152606f60f81b6064820152608401610cc8565b806117c0816150f6565b9150506116e2565b50806118145760405162461bcd60e51b815260206004820152601b60248201527a41737065637420726174696f20686173206e6f206e756d6265727360281b6044820152606401610cc8565b60008a8152600b6020526040902060080161182f8a82615011565b5050505050505050505050565b6000818152600b60205260408120805462ffffff808216936301000000830490911692600160881b830460ff90811693600160901b810490911692600160481b9091046001600160401b03169161189288613d95565b1591505091939550919395565b60006112ce620f424083615125565b631c05cad760e01b6118c1333083611a28565b6118dd5760405162461bcd60e51b8152600401610cc890614f15565b846001600160a01b0381166119045760405162461bcd60e51b8152600401610cc890615139565b846001600160a01b03811661192b5760405162461bcd60e51b8152600401610cc890615139565b846001600160a01b0381166119525760405162461bcd60e51b8152600401610cc890615139565b846001600160a01b0381166119795760405162461bcd60e51b8152600401610cc890615139565b600f80546001600160a01b03199081166001600160a01b03808b1691909117909255601280548216838a16179055600e80548216838d1617905560108054909116918a16919091179055505050505050505050565b63118165ed60e11b6119e1333083611a28565b6119fd5760405162461bcd60e51b8152600401610cc890614f15565b818051600003611a1f5760405162461bcd60e51b8152600401610cc890614f79565b61152583613fae565b600080611a3361284d565b6001600160a01b031614158015611acc5750600a546040516217798b60e61b81526001600160a01b03868116600483015285811660248301526001600160e01b031985166044830152909116906305de62c0906064016020604051808303816000875af1158015611aa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611acc919061516e565b949350505050565b611ade3382613fba565b611afa5760405162461bcd60e51b8152600401610cc89061518b565b611525838383614018565b81611b0f81613d95565b611b2b5760405162461bcd60e51b8152600401610cc890614eb6565b6000838152600c602052604090206002015483906304b6ebad60e31b906001600160a01b0316331480611b645750611b64333083611a28565b611b805760405162461bcd60e51b8152600401610cc890614ee0565b838051600003611ba25760405162461bcd60e51b8152600401610cc890614f79565b6000868152600b602052604090206005016115e28682615011565b631593a0b360e11b611bd0333083611a28565b611bec5760405162461bcd60e51b8152600401610cc890614f15565b816001600160a01b038116611c135760405162461bcd60e51b8152600401610cc890615139565b5050600780546001600160a01b0319166001600160a01b0392909216919091179055565b857f00000000000000000000000000000000000000000000000000000000000000008110158015611c7257506015546001600160f81b031681105b611c8e5760405162461bcd60e51b8152600401610cc8906151d9565b6000878152600c602052604090206002015487906001600160a01b03163314611cc95760405162461bcd60e51b8152600401610cc890614e91565b866001600160a01b038116611cf05760405162461bcd60e51b8152600401610cc890615139565b6000898152600c6020526040902060648711801590611d10575060648511155b611d4a5760405162461bcd60e51b815260206004820152600b60248201526a4d6178206f66203130302560a81b6044820152606401610cc8565b861580611d5f57506001600160a01b03881615155b611dab5760405162461bcd60e51b815260206004820152601d60248201527f5072696d617279207061796565206973207a65726f20616464726573730000006044820152606401610cc8565b841580611dc057506001600160a01b03861615155b611e0c5760405162461bcd60e51b815260206004820152601f60248201527f5365636f6e64617279207061796565206973207a65726f2061646472657373006044820152606401610cc8565b7f000000000000000000000000000000000000000000000000000000000000000080611eaa57600282015482546001600160a01b039182168c831614916000918116908c161480611e6457506001600160a01b038b16155b60018501549091506000906001600160a01b038b811691161480611e8f57506001600160a01b038a16155b9050828015611e9b5750815b8015611ea45750805b93505050505b8015611f85576000801b600d60008d815260200190815260200160002081905550898260020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550888260000160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550878260020160146101000a81548160ff021916908360ff160217905550868260010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550858260010160146101000a81548160ff021916908360ff16021790555061182f565b8989898989604051602001611f9e95949392919061520c565b60408051601f19818403018152918152815160209283012060008e8152600d9093529120555050505050505050505050565b6000818152600b60205260409020600601805460609190611ff090614f45565b80601f016020809104026020016040519081016040528092919081815260200182805461201c90614f45565b80156120695780601f1061203e57610100808354040283529160200191612069565b820191906000526020600020905b81548152906001019060200180831161204c57829003601f168201915b50505050509050919050565b6000828152600c602052604090206002015482906001600160a01b031633146120b05760405162461bcd60e51b8152600401610cc890614e91565b6000838152600b602052604090206004016120cb8382615011565b50505050565b6000828152600c602052604090206002015482906001600160a01b0316331461210c5760405162461bcd60e51b8152600401610cc890614e91565b81805160000361212e5760405162461bcd60e51b8152600401610cc890614f79565b6000848152600b602052604090206006016111b48482615011565b611525838383604051806020016040528060008152506130e2565b632419b94160e11b612177333083611a28565b6121935760405162461bcd60e51b8152600401610cc890614f15565b816001600160a01b0381166121ba5760405162461bcd60e51b8152600401610cc890615139565b5050601480546001600160a01b0319166001600160a01b0392909216919091179055565b60606121f26576332e312e3160d01b6141b4565b905090565b600081815260026020526040812054600160a01b900460a01b6001600160a01b03198116820361222a5750600092915050565b8060405160200161223b9190614c13565b60405160208183030381529060405280519060200120915050919050565b6000818152600260205260408120546001600160a01b0316806112ce5760405162461bcd60e51b8152600401610cc89061523f565b817f000000000000000000000000000000000000000000000000000000000000000081101580156122c957506015546001600160f81b031681105b6122e55760405162461bcd60e51b8152600401610cc8906151d9565b826369d14faf60e01b6122f9333083611a28565b806123385750600061230961284d565b6001600160a01b031614801561233857506000828152600c60205260409020600201546001600160a01b031633145b6123545760405162461bcd60e51b8152600401610cc890615271565b836001600160a01b03811661237b5760405162461bcd60e51b8152600401610cc890615139565b505050600092835250600c602052604090912060020180546001600160a01b0319166001600160a01b03909216919091179055565b636c907b7f60e01b6123c3333083611a28565b6123df5760405162461bcd60e51b8152600401610cc890614f15565b816001600160a01b0381166124065760405162461bcd60e51b8152600401610cc890615139565b61152583600880546001600160a01b039092166001600160a01b03199283168117909155600980546001810182556000919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af018054909216179055565b60006001600160a01b0382166124d05760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610cc8565b506001600160a01b031660009081526003602052604090205490565b6124f461421f565b6124fc613ef3565b61250461427e565b565b857f0000000000000000000000000000000000000000000000000000000000000000811015801561254157506015546001600160f81b031681105b61255d5760405162461bcd60e51b8152600401610cc8906151d9565b866376ee6fab60e01b612571333083611a28565b806125b05750600061258161284d565b6001600160a01b03161480156125b057506000828152600c60205260409020600201546001600160a01b031633145b6125cc5760405162461bcd60e51b8152600401610cc890615271565b876001600160a01b0381166125f35760405162461bcd60e51b8152600401610cc890615139565b888888888860405160200161260c95949392919061520c565b60408051601f19818403018152918152815160209283012060008d8152600d9093529120541461267b5760405162461bcd60e51b815260206004820152601a602482015279135d5cdd081b585d18da08185c9d1a5cdd081c1c9bdc1bdcd85b60321b6044820152606401610cc8565b505050600096875250600c6020908152604080882060028101805482546001600160a01b0319166001600160a01b03998a161783559888166001600160a81b0319998a1617600160a01b60ff988916810291909117909155600190910180549590971694909716939093179190931690940293909317909155600d9052812055565b6000828152600c60205260408120600e54829182918291829182918291899060649061273390600160a01b900460ff16836152c9565b61273d9190615125565b985061274989826152e0565b600f5490915060649061276690600160a01b900460ff168c6152c9565b6127709190615125565b965061277c87826152e0565b600283015490915060649061279b90600160a01b900460ff16836152c9565b6127a59190615125565b92506127b183826152e0565b600e54600f546001600160a01b039182169a50169650945084156127e05760028201546001600160a01b031693505b505092959891949750929550565b6000828152600b60205260409020805460609190600160301b900462ffffff16831061282a5750506040805160208101909152600081526112ce565b6000838152600982016020526040902054611acc906001600160a01b0316614290565b60006121f26006546001600160a01b031690565b60608060608060606000600b6000888152602001908152602001600020905080600101805461288f90614f45565b80601f01602080910402602001604051908101604052809291908181526020018280546128bb90614f45565b80156129085780601f106128dd57610100808354040283529160200191612908565b820191906000526020600020905b8154815290600101906020018083116128eb57829003601f168201915b5050505050955080600201805461291e90614f45565b80601f016020809104026020016040519081016040528092919081815260200182805461294a90614f45565b80156129975780601f1061296c57610100808354040283529160200191612997565b820191906000526020600020905b81548152906001019060200180831161297a57829003601f168201915b505050505094508060030180546129ad90614f45565b80601f01602080910402602001604051908101604052809291908181526020018280546129d990614f45565b8015612a265780601f106129fb57610100808354040283529160200191612a26565b820191906000526020600020905b815481529060010190602001808311612a0957829003601f168201915b50505050509350806004018054612a3c90614f45565b80601f0160208091040260200160405190810160405280929190818152602001828054612a6890614f45565b8015612ab55780601f10612a8a57610100808354040283529160200191612ab5565b820191906000526020600020905b815481529060010190602001808311612a9857829003601f168201915b50505050509250806005018054612acb90614f45565b80601f0160208091040260200160405190810160405280929190818152602001828054612af790614f45565b8015612b445780601f10612b1957610100808354040283529160200191612b44565b820191906000526020600020905b815481529060010190602001808311612b2757829003601f168201915b505050505091505091939590929450565b60606001805461136b90614f45565b6000818152600c602052604090206002015481906001600160a01b03163314612b9f5760405162461bcd60e51b8152600401610cc890614e91565b506000908152600b60205260409020805460ff60901b198116600160901b9182900460ff1615909102179055565b612bd833838361430f565b5050565b612be582613d95565b612c0057612bfb33306351d9665360e11b611a28565b612c1e565b6000828152600c60205260409020600201546001600160a01b031633145b612c7f5760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c7920617274697374207768656e20756e6c6f636b65642c206f776e657260448201526b081dda195b881b1bd8dad95960a21b6064820152608401610cc8565b6000828152600b602052604090206003016115258282615011565b60168054612ca790614f45565b80601f0160208091040260200160405190810160405280929190818152602001828054612cd390614f45565b8015612d205780601f10612cf557610100808354040283529160200191612d20565b820191906000526020600020905b815481529060010190602001808311612d0357829003601f168201915b505050505081565b81612d3281613d95565b612d4e5760405162461bcd60e51b8152600401610cc890614eb6565b6000838152600c60205260409020600201548390632b2b404960e21b906001600160a01b0316331480612d875750612d87333083611a28565b612da35760405162461bcd60e51b8152600401610cc890614ee0565b838051600003612dc55760405162461bcd60e51b8152600401610cc890614f79565b6000868152600b60205260409020612ddc866143d9565b8154600160301b9081900462ffffff9081166000908152600985016020526040902080546001600160a01b0319166001600160a01b0394909416939093179092558254612e2e929190041660016152f3565b815462ffffff91909116600160301b0262ffffff60301b19909116179055505050505050565b60606121f26e47656e417274373231436f7265563360881b6141b4565b82612e7b81613d95565b612e975760405162461bcd60e51b8152600401610cc890614eb6565b6000848152600c6020526040902060020154849063b1656ba360e01b906001600160a01b0316331480612ed05750612ed0333083611a28565b612eec5760405162461bcd60e51b8152600401610cc890614ee0565b838051600003612f0e5760405162461bcd60e51b8152600401610cc890614f79565b6000878152600b602052604090208054600160301b900462ffffff168710612f705760405162461bcd60e51b81526020600482015260156024820152747363726970744964206f7574206f662072616e676560581b6044820152606401610cc8565b612f79866143d9565b6000978852600991909101602052604090962080546001600160a01b0319166001600160a01b0390971696909617909555505050505050565b6009546000908210612ffc5760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b6044820152606401610cc8565b6009828154811061300f5761300f6150ca565b6000918252602090912001546001600160a01b031692915050565b8161303481613d95565b6130505760405162461bcd60e51b8152600401610cc890614eb6565b6000838152600c60205260409020600201548390635bd827d760e11b906001600160a01b03163314806130895750613089333083611a28565b6130a55760405162461bcd60e51b8152600401610cc890614ee0565b8380516000036130c75760405162461bcd60e51b8152600401610cc890614f79565b6000868152600b602052604090206002016115e28682615011565b6130ec3383613fba565b6131085760405162461bcd60e51b8152600401610cc89061518b565b6120cb84848484614483565b6060808261312181613c13565b61313d5760405162461bcd60e51b8152600401610cc890614e60565b60408051600480825260a082019092529060208201608080368337505060408051600480825260a08201909252929550905060208201608080368337019050509150600061318a8561189f565b6000818152600c6020526040812080546001820154939450909260ff600160a01b92839004811693929091041690826131c48360646152e0565b6131ce91906152c9565b905060006131dc84846152c9565b60115460135491925090600084156132565760028801548c516001600160a01b03909116908d9083908110613213576132136150ca565b6001600160a01b0390921660209283029190910190910152848b82613237816150f6565b935081518110613249576132496150ca565b6020026020010181815250505b83156132c45760018801548c516001600160a01b03909116908d9083908110613281576132816150ca565b6001600160a01b0390921660209283029190910190910152838b826132a5816150f6565b9350815181106132b7576132b76150ca565b6020026020010181815250505b8215613330576010548c516001600160a01b03909116908d90839081106132ed576132ed6150ca565b6001600160a01b0390921660209283029190910190910152828b82613311816150f6565b935081518110613323576133236150ca565b6020026020010181815250505b811561339c576012548c516001600160a01b03909116908d9083908110613359576133596150ca565b6001600160a01b0390921660209283029190910190910152818b8261337d816150f6565b93508151811061338f5761338f6150ca565b6020026020010181815250505b80600411156133b75780600403808d51038d52808c51038c52505b50505050505050505050915091565b63bd3d10e760e01b6133d9333083611a28565b6133f55760405162461bcd60e51b8152600401610cc890614f15565b60646134018385615316565b111561344a5760405162461bcd60e51b81526020600482015260186024820152774d61782073756d206f66204f4e455f48554e44524544202560401b6044820152606401610cc8565b50600e805460ff938416600160a01b90810260ff60a01b1992831617909255600f8054939094169091029116179055565b6000828152600c602052604090206002015482906001600160a01b031633146134b65760405162461bcd60e51b8152600401610cc890614e91565b605f8211156135265760405162461bcd60e51b815260206004820152603660248201527f4d6178206f66204152544953545f4d41585f5345434f4e444152595f524f594160448201527513151657d4115490d153951051d1481c195c98d95b9d60521b6064820152608401610cc8565b506000918252600c6020526040909120805460ff909216600160a01b0260ff60a01b19909216919091179055565b60608161356081613c13565b61357c5760405162461bcd60e51b8152600401610cc890614e60565b6000600b600061358b8661189f565b815260200190815260200160002060060180546135a790614f45565b80601f01602080910402602001604051908101604052809291908181526020018280546135d390614f45565b80156136205780601f106135f557610100808354040283529160200191613620565b820191906000526020600020905b81548152906001019060200180831161360357829003601f168201915b5050505050905080613631856144b6565b604051602001613642929190615329565b6040516020818303038152906040529250505b50919050565b63cc90e72560e01b61366e333083611a28565b61368a5760405162461bcd60e51b8152600401610cc890614f15565b8280516000036136ac5760405162461bcd60e51b8152600401610cc890614f79565b826001600160a01b0381166136d35760405162461bcd60e51b8152600401610cc890615139565b601554600160f81b900460ff16156137265760405162461bcd60e51b81526020600482015260166024820152752732bb90383937b532b1ba39903337b93134b23232b760511b6044820152606401610cc8565b6015546001600160f81b03166000818152600c6020908152604080832060020180546001600160a01b0319166001600160a01b038a16179055600b90915290206001016137738782615011565b506000818152600b60205260409020805465ffffff00000060ff60901b011916613d09601e1b600160901b011781556006016137b0601682615358565b506137bc816001615424565b601580546001600160f81b0319166001600160f81b0392909216919091179055505050505050565b63340f0e4360e21b6137f7333083611a28565b6138135760405162461bcd60e51b8152600401610cc890614f15565b817f0000000000000000000000000000000000000000000000000000000000000000811015801561384e57506015546001600160f81b031681105b61386a5760405162461bcd60e51b8152600401610cc8906151d9565b50506000908152600b60205260409020805460ff60881b198116600160881b9182900460ff1615909102179055565b636d90d42360e11b6138ac333083611a28565b6138c85760405162461bcd60e51b8152600401610cc890614f15565b6127106138d58385615316565b111561393b5760405162461bcd60e51b815260206004820152602f60248201527f4d61782073756d206f66204d41585f50524f56494445525f5345434f4e44415260448201526e595f53414c45535f4250532042505360881b6064820152608401610cc8565b50601191909155601355565b8061395181613d95565b61396d5760405162461bcd60e51b8152600401610cc890614eb6565b6000828152600c6020526040902060020154829063db2ff86160e01b906001600160a01b03163314806139a657506139a6333083611a28565b6139c25760405162461bcd60e51b8152600401610cc890614ee0565b6000848152600b602052604090208054600160301b900462ffffff16613a2a5760405162461bcd60e51b815260206004820152601e60248201527f746865726520617265206e6f207363726970747320746f2072656d6f766500006044820152606401610cc8565b80546009820190600090613a4c90600190600160301b900462ffffff16615444565b62ffffff9081168252602082019290925260400160002080546001600160a01b0319169055815462ffffff60301b198116600160301b918290048316600019019092160217905550505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6000818152600b60205260408120600781015460609283929091613aea906141b4565b9350806008018054613afb90614f45565b80601f0160208091040260200160405190810160405280929190818152602001828054613b2790614f45565b8015613b745780601f10613b4957610100808354040283529160200191613b74565b820191906000526020600020905b815481529060010190602001808311613b5757829003601f168201915b5050935496989297505050600160301b90940462ffffff169392505050565b613b9b61421f565b6001600160a01b038116613c005760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610cc8565b611359816145b6565b60006121f261284d565b6000908152600260205260409020546001600160a01b0316151590565b6000908152600b60205260409020805467ffffffffffffffff60481b1916600160481b426001600160401b031602179055565b6001600160a01b038216613cb95760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610cc8565b613cc281613c13565b15613d0e5760405162461bcd60e51b815260206004820152601c60248201527b115490cdcc8c4e881d1bdad95b88185b1c9958591e481b5a5b9d195960221b6044820152606401610cc8565b6001600160a01b0382166000908152600360205260408120805460019290613d37908490615316565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000817f00000000000000000000000000000000000000000000000000000000000000008110158015613dd257506015546001600160f81b031681105b613dee5760405162461bcd60e51b8152600401610cc8906151d9565b6000838152600b6020526040902054600160481b90046001600160401b031680158080613e2657506224ea00613e2483426152e0565b105b95945050505050565b60008060005b60208160ff161015613e8f576000868260ff1660208110613e5857613e586150ca565b1a90508015801590613e6d575060808160ff16105b15613e86578560ff168160ff1603613e86578260010192505b50600101613e35565b8360ff168260ff1614925050509392505050565b60006001600160e01b031982166380ac58cd60e01b1480613ed457506001600160e01b03198216635b5e139f60e01b145b806112ce57506301ffc9a760e01b6001600160e01b03198316146112ce565b601554600160f81b900460ff1661250457601580546001600160f81b0316600160f81b179055565b613f2481613c13565b6113595760405162461bcd60e51b8152600401610cc89061523f565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190613f7582612259565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6016612bd88282615011565b600080613fc683612259565b9050806001600160a01b0316846001600160a01b03161480613fed5750613fed8185613a99565b80611acc5750836001600160a01b0316614006846113ee565b6001600160a01b031614949350505050565b826001600160a01b031661402b82612259565b6001600160a01b03161461408f5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610cc8565b6001600160a01b0382166140f15760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610cc8565b6140fc600082613f40565b6001600160a01b03831660009081526003602052604081208054600192906141259084906152e0565b90915550506001600160a01b0382166000908152600360205260408120805460019290614153908490615316565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b606060005b828160ff16602081106141ce576141ce6150ca565b1a60f81b6001600160f81b031916158015906141ed575060208160ff16105b1561420457806141fc81615460565b9150506141b9565b60405191506040820160405280825282602083015250919050565b3361422861284d565b6001600160a01b0316146125045760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610cc8565b61428661421f565b61250460006145b6565b604051630eacc5e760e31b815260609073__$55f4e50e6128becd8bf164b272db98df09$__906375662f38906142ca90859060040161489b565b600060405180830381865af41580156142e7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112ce919081019061547f565b816001600160a01b0316836001600160a01b03160361436c5760405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b6044820152606401610cc8565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6000807f42797465636f646553746f726167655f56312e302e305f5f5f5f5f5f5f5f5f203084604051602001614411939291906154ec565b60405160208183030381529060405290508051602082016000f091506001600160a01b0382166136555760405162461bcd60e51b815260206004820152601e60248201527f436f6e7472616374417353746f726167653a205772697465204572726f7200006044820152606401610cc8565b61448e848484614018565b61449a848484846145e1565b6120cb5760405162461bcd60e51b8152600401610cc89061554d565b6060816000036144dd5750506040805180820190915260018152600360fc1b602082015290565b8160005b811561450757806144f1816150f6565b91506145009050600a83615125565b91506144e1565b6000816001600160401b03811115614521576145216148db565b6040519080825280601f01601f19166020018201604052801561454b576020820181803683370190505b5090505b8415611acc576145606001836152e0565b915061456d600a8661559f565b614578906030615316565b60f81b81838151811061458d5761458d6150ca565b60200101906001600160f81b031916908160001a9053506145af600a86615125565b945061454f565b6145bf816146e2565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160a01b0384163b156146d757604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906146259033908990889088906004016155b3565b6020604051808303816000875af1925050508015614660575060408051601f3d908101601f1916820190925261465d918101906155f0565b60015b6146bd573d80801561468e576040519150601f19603f3d011682016040523d82523d6000602084013e614693565b606091505b5080516000036146b55760405162461bcd60e51b8152600401610cc89061554d565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611acc565b506001949350505050565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000806040838503121561474757600080fd5b50508035926020909101359150565b6001600160a01b038116811461135957600080fd5b60008060006060848603121561478057600080fd5b833561478b81614756565b92506020840135915060408401356147a281614756565b809150509250925092565b600080604083850312156147c057600080fd5b82359150602083013562ffffff811681146147da57600080fd5b809150509250929050565b6001600160e01b03198116811461135957600080fd5b60006020828403121561480d57600080fd5b8135614818816147e5565b9392505050565b60005b8381101561483a578181015183820152602001614822565b50506000910152565b6000815180845261485b81602086016020860161481f565b601f01601f19169290920160200192915050565b6020815260006148186020830184614843565b60006020828403121561489457600080fd5b5035919050565b6001600160a01b0391909116815260200190565b600080604083850312156148c257600080fd5b82356148cd81614756565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614919576149196148db565b604052919050565b60006001600160401b0382111561493a5761493a6148db565b50601f01601f191660200190565b600061495b61495684614921565b6148f1565b905082815283838301111561496f57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261499757600080fd5b61481883833560208501614948565b600080604083850312156149b957600080fd5b8235915060208301356001600160401b038111156149d657600080fd5b6149e285828601614986565b9150509250929050565b60008060008060808587031215614a0257600080fd5b8435614a0d81614756565b93506020850135614a1d81614756565b92506040850135614a2d81614756565b91506060850135614a3d81614756565b939692955090935050565b600060208284031215614a5a57600080fd5b81356001600160401b03811115614a7057600080fd5b611acc84828501614986565b600080600060608486031215614a9157600080fd5b8335614a9c81614756565b92506020840135614aac81614756565b915060408401356147a2816147e5565b600080600060608486031215614ad157600080fd5b8335614adc81614756565b92506020840135614aec81614756565b929592945050506040919091013590565b600060208284031215614b0f57600080fd5b813561481881614756565b60008060008060008060c08789031215614b3357600080fd5b863595506020870135614b4581614756565b94506040870135614b5581614756565b9350606087013592506080870135614b6c81614756565b8092505060a087013590509295509295509295565b60008060408385031215614b9457600080fd5b8235915060208301356147da81614756565b60a081526000614bb960a0830188614843565b8281036020840152614bcb8188614843565b90508281036040840152614bdf8187614843565b90508281036060840152614bf38186614843565b90508281036080840152614c078185614843565b98975050505050505050565b6001600160a01b031991909116815260200190565b801515811461135957600080fd5b60008060408385031215614c4957600080fd5b8235614c5481614756565b915060208301356147da81614c28565b600080600060608486031215614c7957600080fd5b833592506020840135915060408401356001600160401b03811115614c9d57600080fd5b614ca986828701614986565b9150509250925092565b60008060008060808587031215614cc957600080fd5b8435614cd481614756565b93506020850135614ce481614756565b92506040850135915060608501356001600160401b03811115614d0657600080fd5b8501601f81018713614d1757600080fd5b614d2687823560208401614948565b91505092959194509250565b604080825283519082018190526000906020906060840190828701845b82811015614d745781516001600160a01b031684529284019290840190600101614d4f565b5050508381038285015284518082528583019183019060005b81811015614da957835183529284019291840191600101614d8d565b5090979650505050505050565b60008060408385031215614dc957600080fd5b82356001600160401b03811115614ddf57600080fd5b614deb85828601614986565b92505060208301356147da81614756565b60008060408385031215614e0f57600080fd5b8235614e1a81614756565b915060208301356147da81614756565b606081526000614e3d6060830186614843565b8281036020840152614e4f8186614843565b915050826040830152949350505050565b602080825260179082015276151bdad95b88125108191bd95cc81b9bdd08195e1a5cdd604a1b604082015260600190565b6020808252600b908201526a13db9b1e48185c9d1a5cdd60aa1b604082015260600190565b60208082526010908201526f13db9b1e481a59881d5b9b1bd8dad95960821b604082015260600190565b6020808252818101527f4f6e6c7920617274697374206f722041646d696e2041434c20616c6c6f776564604082015260600190565b60208082526016908201527513db9b1e4810591b5a5b881050d308185b1b1bddd95960521b604082015260600190565b600181811c90821680614f5957607f821691505b60208210810361365557634e487b7160e01b600052602260045260246000fd5b6020808252601b908201527a4d75737420696e707574206e6f6e2d656d70747920737472696e6760281b604082015260600190565b601f82111561152557600081815260208120601f850160051c81016020861015614fd55750805b601f850160051c820191505b81811015614ff457828155600101614fe1565b505050505050565b600019600383901b1c191660019190911b1790565b81516001600160401b0381111561502a5761502a6148db565b61503e816150388454614f45565b84614fae565b602080601f83116001811461506d576000841561505b5750858301515b6150658582614ffc565b865550614ff4565b600085815260208120601f198616915b8281101561509c5788860151825594840194600190910190840161507d565b50858210156150ba5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201615108576151086150e0565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826151345761513461510f565b500490565b6020808252601b908201527a4d75737420696e707574206e6f6e2d7a65726f206164647265737360281b604082015260600190565b60006020828403121561518057600080fd5b815161481881614c28565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b602080825260199082015278141c9bda9958dd08125108191bd95cc81b9bdd08195e1a5cdd603a1b604082015260600190565b6001600160a01b039586168152938516602085015260408401929092529092166060820152608081019190915260a00190565b602080825260189082015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604082015260600190565b60208082526038908201527f4f6e6c792041646d696e2041434c20616c6c6f7765642c206f722061727469736040820152771d081a59881bdddb995c881a185cc81c995b9bdd5b98d95960421b606082015260800190565b80820281158282048414176112ce576112ce6150e0565b818103818111156112ce576112ce6150e0565b62ffffff81811683821601908082111561530f5761530f6150e0565b5092915050565b808201808211156112ce576112ce6150e0565b6000835161533b81846020880161481f565b83519083019061534f81836020880161481f565b01949350505050565b818103615363575050565b61536d8254614f45565b6001600160401b03811115615384576153846148db565b615392816150388454614f45565b6000601f8211600181146153c057600083156153ae5750848201545b6153b88482614ffc565b8555506111b4565b600085815260209020601f19841690600086815260209020845b838110156153fa57828601548255600195860195909101906020016153da565b50858310156150ba5793015460001960f8600387901b161c19169092555050600190811b01905550565b6001600160f81b0381811683821601908082111561530f5761530f6150e0565b62ffffff82811682821603908082111561530f5761530f6150e0565b600060ff821660ff8103615476576154766150e0565b60010192915050565b60006020828403121561549157600080fd5b81516001600160401b038111156154a757600080fd5b8201601f810184136154b857600080fd5b80516154c661495682614921565b8181528560208385010111156154db57600080fd5b613e2682602083016020860161481f565b6a600b5981380380925939f360a81b8152607f60f91b600b820152600c81018490526000602c8201819052606084901b6001600160601b0319166038830152825161553e81604c85016020870161481f565b91909101604c01949350505050565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6000826155ae576155ae61510f565b500690565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906155e690830184614843565b9695505050505050565b60006020828403121561560257600080fd5b8151614818816147e556fea264697066735822122046fabee50be8dd6275da76f21d01457683d77a691899159b5346a8721594e7b864736f6c63430008130033",
|
|
1808
|
+
"bytecode": "0x60c0604052600e8054600560a11b60ff60a01b199182168117909255600f8054909116909117905560fa60118190556013553480156200003e57600080fd5b506040516200601d3803806200601d83398101604081905262000061916200065f565b87876000620000718382620007d6565b506001620000808282620007d6565b5050506200009d62000097620002f160201b60201c565b620002f5565b856001600160a01b038116620000e95760405162461bcd60e51b815260206004820152601b602482015260008051602062005ffd83398151915260448201526064015b60405180910390fd5b856001600160a01b038116620001315760405162461bcd60e51b815260206004820152601b602482015260008051602062005ffd8339815191526044820152606401620000e0565b856001600160a01b038116620001795760405162461bcd60e51b815260206004820152601b602482015260008051602062005ffd8339815191526044820152606401620000e0565b856001600160a01b038116620001c15760405162461bcd60e51b815260206004820152601b602482015260008051602062005ffd8339815191526044820152606401620000e0565b84151560a0526001600160f81b038616608052600f80546001600160a01b03199081166001600160a01b038c81169182179093556012805483169091179055600e805482168d84169081179091556010805483169091179055600880548216928b169283179055600980546001810182556000919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af01805490911690911790556200026f87620002f5565b620002a66200027e3062000322565b604051602001620002909190620008a2565b60408051601f1981840301815291905262000340565b5050601580547fff00000000000000000000000000000000000000000000000000000000000000166001600160f81b039590951694909417909355506200096a975050505050505050565b3390565b620003008162000352565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60606200033a6001600160a01b0383166014620003a4565b92915050565b60166200034e8282620007d6565b5050565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60606000620003b58360026200090a565b620003c290600262000924565b6001600160401b03811115620003dc57620003dc62000564565b6040519080825280601f01601f19166020018201604052801562000407576020820181803683370190505b509050600360fc1b816000815181106200042557620004256200093a565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106200045757620004576200093a565b60200101906001600160f81b031916908160001a90535060006200047d8460026200090a565b6200048a90600162000924565b90505b60018111156200050c576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110620004c257620004c26200093a565b1a60f81b828281518110620004db57620004db6200093a565b60200101906001600160f81b031916908160001a90535060049490941c93620005048162000950565b90506200048d565b5083156200055d5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401620000e0565b9392505050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620005975781810151838201526020016200057d565b50506000910152565b600082601f830112620005b257600080fd5b81516001600160401b0380821115620005cf57620005cf62000564565b604051601f8301601f19908116603f01168101908282118183101715620005fa57620005fa62000564565b816040528381528660208588010111156200061457600080fd5b620006278460208301602089016200057a565b9695505050505050565b80516001600160a01b03811681146200064957600080fd5b919050565b805180151581146200064957600080fd5b600080600080600080600080610100898b0312156200067d57600080fd5b88516001600160401b03808211156200069557600080fd5b620006a38c838d01620005a0565b995060208b0151915080821115620006ba57600080fd5b50620006c98b828c01620005a0565b975050620006da60408a0162000631565b9550620006ea60608a0162000631565b9450620006fa60808a0162000631565b93506200070a60a08a0162000631565b60c08a01519093506001600160f81b03811681146200072857600080fd5b91506200073860e08a016200064e565b90509295985092959890939650565b600181811c908216806200075c57607f821691505b6020821081036200077d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620007d157600081815260208120601f850160051c81016020861015620007ac5750805b601f850160051c820191505b81811015620007cd57828155600101620007b8565b5050505b505050565b81516001600160401b03811115620007f257620007f262000564565b6200080a8162000803845462000747565b8462000783565b602080601f831160018114620008425760008415620008295750858301515b600019600386901b1c1916600185901b178555620007cd565b600085815260208120601f198616915b82811015620008735788860151825594840194600190910190840162000852565b5085821015620008925787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b7f68747470733a2f2f746f6b656e2e617274626c6f636b732e696f2f0000000000815260008251620008dc81601b8501602087016200057a565b602f60f81b601b939091019283015250601c01919050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200033a576200033a620008f4565b808201808211156200033a576200033a620008f4565b634e487b7160e01b600052603260045260246000fd5b600081620009625762000962620008f4565b506000190190565b60805160a051615643620009ba60003960008181610b380152611e0e015260008181610c8001528181611c3a0152818161229101528181612509015281816138160152613d9a01526156436000f3fe608060405234801561001057600080fd5b50600436106104145760003560e01c8063715018a611610223578063b75395e01161012c578063b75395e014610a39578063b7b04fae14610a4c578063b88d4fde14610a5f578063b971136814610a72578063bb3bafd614610a7a578063bd3d10e714610a9b578063c34a03b514610aae578063c6c7c5bf14610ac1578063c87b56dd14610ad4578063cc90e72514610ae7578063d03c390c14610afa578063db21a84614610b0d578063db2ff86114610b20578063e6032df214610b33578063e935b7b114610b5a578063e985e9c514610b6b578063eb9cd5d414610b7e578063ed8abfda14610ba0578063f2fde38b14610bca578063f313d73314610bdd578063f851a44014610c73578063f893c07b14610c7b57600080fd5b8063715018a61461080c57806376ee6fab146108145780638639415b146108275780638c3c9cdd146108795780638da5cb5b1461088c5780638dd91a561461089457806392f00233146108b857806395d89b41146108cb5780639a02e4fa146108d3578063a11ec70a1461090a578063a22cb4651461091d578063a3b2cca614610930578063a47d29cb14610943578063abcbb7b41461096f578063ac11fa1c14610977578063acad012414610997578063acd4c66f146109aa578063ad0305ce146109bc578063ad2cdfc4146109de578063ae45ad9814610a0b578063b1656ba314610a13578063b168762214610a2657600080fd5b806328ec8f501161032557806328ec8f50146106315780632b2741661461065e5780632b65e67d146106715780632b8258c5146106845780632d9c02051461068d57806330ef4c5f146106a057806336c7c12c146106b257806337859963146106c557806338c8e468146106d85780633bb22553146107045780633e48e8481461070d57806341814cd31461072057806342842e0e1461073357806348337282146107465780634e1d64af146107595780635508fd521461076157806358b9a5a914610775578063621a1f74146107ad5780636352211e146107c057806369d14faf146107d35780636c907b7f146107e657806370a08231146107f957600080fd5b80611e3c146104195780615de51461042e5780630132c6971461045457806301856fd41461046757806301ffc9a71461047a57806304143a5c1461049d57806306fdde03146104a5578063081812fc146104ba578063095ea7b3146104da5780630d170673146104ed5780630e79c928146105005780630ea5613f146105135780630ebeb0ee1461055d57806317df5366146105865780631ab6014c146105995780631b689c0b146105ac5780631c05cad7146105bf5780631e9bef46146105d25780632302cbda146105e5578063230448b1146105f857806323b872dd1461060b57806325b75d681461061e575b600080fd5b61042c610427366004614734565b610ca2565b005b61044161043c36600461476b565b610df4565b6040519081526020015b60405180910390f35b61042c6104623660046147ad565b611063565b61042c610475366004614734565b6111bb565b61048d6104883660046147fb565b6112a9565b604051901515815260200161044b565b61042c6112d4565b6104ad61135c565b60405161044b919061486f565b6104cd6104c8366004614882565b6113ee565b60405161044b919061489b565b61042c6104e83660046148af565b611415565b61042c6104fb3660046149a6565b61152a565b61042c61050e3660046149a6565b6115eb565b610526610521366004614882565b61183c565b60408051968752602087019590955292151593850193909352151560608401526080830191909152151560a082015260c00161044b565b6104cd61056b366004614882565b6000908152600c60205260409020546001600160a01b031690565b6007546104cd906001600160a01b031681565b600f546104cd906001600160a01b031681565b6104416105ba366004614882565b61189f565b61042c6105cd3660046149ec565b6118ae565b600a546104cd906001600160a01b031681565b61042c6105f3366004614a48565b6119ce565b61048d610606366004614a7c565b611a28565b61042c610619366004614abc565b611ad4565b61042c61062c3660046149a6565b611b05565b61044161063f366004614882565b6000908152600c6020526040902060010154600160a01b900460ff1690565b61042c61066c366004614afd565b611bbd565b61042c61067f366004614b1a565b611c37565b61044160135481565b6104ad61069b366004614882565b611fd0565b600f54600160a01b900460ff16610441565b6008546104cd906001600160a01b031681565b61042c6106d33660046149a6565b612075565b6104cd6106e6366004614882565b6000908152600c60205260409020600101546001600160a01b031690565b61044160115481565b61042c61071b3660046149a6565b6120d1565b6010546104cd906001600160a01b031681565b61042c610741366004614abc565b612149565b61042c610754366004614afd565b612164565b6104ad6121de565b60155461048d90600160f81b900460ff1681565b6104cd610783366004614734565b6000918252600b60209081526040808420928452600990920190529020546001600160a01b031690565b6104416107bb366004614882565b6121f7565b6104cd6107ce366004614882565b612259565b61042c6107e1366004614b81565b61228e565b61042c6107f4366004614afd565b6123b0565b610441610807366004614afd565b612466565b61042c6124ec565b61042c610822366004614b1a565b612506565b61083a610835366004614734565b6126fd565b604080519788526001600160a01b0396871660208901528701949094529184166060860152608085015290911660a083015260c082015260e00161044b565b6104ad610887366004614734565b6127ee565b6104cd61284d565b6108a76108a2366004614882565b612861565b60405161044b959493929190614ba6565b6014546104cd906001600160a01b031681565b6104ad612b55565b6108fd6108e1366004614882565b600090815260026020526040902054600160a01b900460a01b90565b60405161044b9190614c13565b61042c610918366004614882565b612b64565b61042c61092b366004614c36565b612bcd565b61042c61093e3660046149a6565b612bdc565b6104cd610951366004614882565b6000908152600c60205260409020600201546001600160a01b031690565b6104ad612c9a565b610441610985366004614882565b600d6020526000908152604090205481565b61042c6109a53660046149a6565b612d28565b600e54600160a01b900460ff16610441565b61048d6109ca366004614afd565b6014546001600160a01b0390811691161490565b6104416109ec366004614882565b6000908152600c6020526040902060020154600160a01b900460ff1690565b6104ad612e54565b61042c610a21366004614c64565b612e71565b6104cd610a34366004614882565b612fb2565b600e546104cd906001600160a01b031681565b61042c610a5a3660046149a6565b61302a565b61042c610a6d366004614cb3565b6130e2565b600954610441565b610a8d610a88366004614882565b613114565b60405161044b929190614d32565b61042c610aa9366004614734565b6133c6565b61042c610abc366004614734565b61347b565b6012546104cd906001600160a01b031681565b6104ad610ae2366004614882565b613554565b61042c610af5366004614db6565b61365b565b61042c610b08366004614882565b6137e4565b61042c610b1b366004614734565b613899565b61042c610b2e366004614882565b613947565b61048d7f000000000000000000000000000000000000000000000000000000000000000081565b6015546001600160f81b0316610441565b61048d610b79366004614dfc565b613a99565b610b91610b8c366004614882565b613ac7565b60405161044b93929190614e2a565b610441610bae366004614882565b6000908152600c6020526040902054600160a01b900460ff1690565b61042c610bd8366004614afd565b613b93565b610c35610beb366004614882565b6000908152600c60205260409020600281015481546001909201546001600160a01b03808316948482169460ff600160a01b95869004811695938516948490048116939091041690565b604080516001600160a01b039788168152958716602087015285019390935293166060830152608082019290925260a081019190915260c00161044b565b6104cd613c09565b6104417f000000000000000000000000000000000000000000000000000000000000000081565b81610cac81613c13565b610cd15760405162461bcd60e51b8152600401610cc890614e60565b60405180910390fd5b60008381526002602052604090206008546001600160a01b03163314610d335760405162461bcd60e51b815260206004820152601760248201527613db9b1e481c985b991bdb5a5e995c881b585e481cd95d604a1b6044820152606401610cc8565b8054600160a01b900460a01b6001600160a01b03191615610d8f5760405162461bcd60e51b8152602060048201526016602482015275151bdad95b881a185cda08185b1c9958591e481cd95d60521b6044820152606401610cc8565b82610dd05760405162461bcd60e51b8152602060048201526011602482015270139bc81e995c9bc81a185cda081cd95959607a1b6044820152606401610cc8565b805460a09390931c600160a01b026001600160a01b03909316929092179091555050565b6014546000906001600160a01b03163314610e515760405162461bcd60e51b815260206004820152601e60248201527f4d757374206d696e742066726f6d206d696e74657220636f6e747261637400006044820152606401610cc8565b6000838152600b60205260409020805462ffffff808216916001830191630100000090910416808310610ec65760405162461bcd60e51b815260206004820152601f60248201527f4d757374206e6f7420657863656564206d617820696e766f636174696f6e73006044820152606401610cc8565b8354600160881b900460ff1680610ef957506000878152600c60205260409020600201546001600160a01b038781169116145b610f455760405162461bcd60e51b815260206004820181905260248201527f50726f6a656374206d75737420657869737420616e64206265206163746976656044820152606401610cc8565b8354600160901b900460ff161580610f7957506000878152600c60205260409020600201546001600160a01b038781169116145b610fbd5760405162461bcd60e51b8152602060048201526015602482015274283ab931b430b9b2b99030b932903830bab9b2b21760591b6044820152606401610cc8565b835462ffffff191662ffffff8381169182178655848116620f42408a0201919083169003610fee57610fee88613c30565b610ff88982613c63565b600854604051635b140b8d60e11b8152600481018390526001600160a01b039091169063b628171a90602401600060405180830381600087803b15801561103e57600080fd5b505af1158015611052573d6000803e3d6000fd5b50929b9a5050505050505050505050565b6000828152600c602052604090206002015482906001600160a01b0316331461109e5760405162461bcd60e51b8152600401610cc890614e91565b6000838152600b60205260409020805462ffffff808216916301000000900481169085161061111b5760405162461bcd60e51b8152602060048201526024808201527f6d6178496e766f636174696f6e73206d6179206f6e6c79206265206465637265604482015263185cd95960e21b6064820152608401610cc8565b808462ffffff1610156111855760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c79206d617820696e766f636174696f6e73206774652063757272656e7460448201526b20696e766f636174696f6e7360a01b6064820152608401610cc8565b815465ffffff0000001916630100000062ffffff86169081029190911783558190036111b4576111b485613c30565b5050505050565b816111c581613d95565b6111e15760405162461bcd60e51b8152600401610cc890614eb6565b6000838152600c6020526040902060020154839062615bf560e21b906001600160a01b03163314806112195750611219333083611a28565b6112355760405162461bcd60e51b8152600401610cc890614ee0565b6000858152600b602052604090819020906112539086906001613e2f565b61129c5760405162461bcd60e51b815260206004820152601a60248201527901b5d5cdd0818dbdb9d185a5b88195e1858dd1b1e481bdb9948160361b6044820152606401610cc8565b6007019390935550505050565b60006001600160e01b03198216635d9dd7eb60e11b14806112ce57506112ce82613ea3565b92915050565b6301050e9760e21b6112e7333083611a28565b6113035760405162461bcd60e51b8152600401610cc890614f15565b601554600160f81b900460ff16156113515760405162461bcd60e51b815260206004820152601160248201527020b63932b0b23c903337b93134b23232b760791b6044820152606401610cc8565b611359613ef3565b50565b60606000805461136b90614f45565b80601f016020809104026020016040519081016040528092919081815260200182805461139790614f45565b80156113e45780601f106113b9576101008083540402835291602001916113e4565b820191906000526020600020905b8154815290600101906020018083116113c757829003601f168201915b5050505050905090565b60006113f982613f1b565b506000908152600460205260409020546001600160a01b031690565b600061142082612259565b9050806001600160a01b0316836001600160a01b03160361148d5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610cc8565b336001600160a01b03821614806114a957506114a98133613a99565b61151b5760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c00006064820152608401610cc8565b6115258383613f40565b505050565b8161153481613d95565b6115505760405162461bcd60e51b8152600401610cc890614eb6565b6000838152600c60205260409020600201548390630d17067360e01b906001600160a01b03163314806115895750611589333083611a28565b6115a55760405162461bcd60e51b8152600401610cc890614ee0565b8380516000036115c75760405162461bcd60e51b8152600401610cc890614f79565b6000868152600b602052604090206001016115e28682615011565b50505050505050565b816115f581613d95565b6116115760405162461bcd60e51b8152600401610cc890614eb6565b6000838152600c602052604090206002015483906301cf392560e31b906001600160a01b031633148061164a575061164a333083611a28565b6116665760405162461bcd60e51b8152600401610cc890614ee0565b8380516000036116885760405162461bcd60e51b8152600401610cc890614f79565b84518590600b8111156116dc5760405162461bcd60e51b815260206004820152601c60248201527b41737065637420726174696f20666f726d617420746f6f206c6f6e6760201b6044820152606401610cc8565b60008060005b838110156117c85760008582815181106116fe576116fe6150ca565b01602001516001600160f81b0319169050600360fc1b81108015906117315750603960f81b6001600160f81b0319821611155b156117405760019250506117b6565b6001600160f81b03198116601760f91b0361176457836117645760019350506117b6565b60405162461bcd60e51b815260206004820152602160248201527f496d70726f7065726c7920666f726d61747465642061737065637420726174696044820152606f60f81b6064820152608401610cc8565b806117c0816150f6565b9150506116e2565b50806118145760405162461bcd60e51b815260206004820152601b60248201527a41737065637420726174696f20686173206e6f206e756d6265727360281b6044820152606401610cc8565b60008a8152600b6020526040902060080161182f8a82615011565b5050505050505050505050565b6000818152600b60205260408120805462ffffff808216936301000000830490911692600160881b830460ff90811693600160901b810490911692600160481b9091046001600160401b03169161189288613d95565b1591505091939550919395565b60006112ce620f424083615125565b631c05cad760e01b6118c1333083611a28565b6118dd5760405162461bcd60e51b8152600401610cc890614f15565b846001600160a01b0381166119045760405162461bcd60e51b8152600401610cc890615139565b846001600160a01b03811661192b5760405162461bcd60e51b8152600401610cc890615139565b846001600160a01b0381166119525760405162461bcd60e51b8152600401610cc890615139565b846001600160a01b0381166119795760405162461bcd60e51b8152600401610cc890615139565b600f80546001600160a01b03199081166001600160a01b03808b1691909117909255601280548216838a16179055600e80548216838d1617905560108054909116918a16919091179055505050505050505050565b63118165ed60e11b6119e1333083611a28565b6119fd5760405162461bcd60e51b8152600401610cc890614f15565b818051600003611a1f5760405162461bcd60e51b8152600401610cc890614f79565b61152583613fae565b600080611a3361284d565b6001600160a01b031614158015611acc5750600a546040516217798b60e61b81526001600160a01b03868116600483015285811660248301526001600160e01b031985166044830152909116906305de62c0906064016020604051808303816000875af1158015611aa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611acc919061516e565b949350505050565b611ade3382613fba565b611afa5760405162461bcd60e51b8152600401610cc89061518b565b611525838383614018565b81611b0f81613d95565b611b2b5760405162461bcd60e51b8152600401610cc890614eb6565b6000838152600c602052604090206002015483906304b6ebad60e31b906001600160a01b0316331480611b645750611b64333083611a28565b611b805760405162461bcd60e51b8152600401610cc890614ee0565b838051600003611ba25760405162461bcd60e51b8152600401610cc890614f79565b6000868152600b602052604090206005016115e28682615011565b631593a0b360e11b611bd0333083611a28565b611bec5760405162461bcd60e51b8152600401610cc890614f15565b816001600160a01b038116611c135760405162461bcd60e51b8152600401610cc890615139565b5050600780546001600160a01b0319166001600160a01b0392909216919091179055565b857f00000000000000000000000000000000000000000000000000000000000000008110158015611c7257506015546001600160f81b031681105b611c8e5760405162461bcd60e51b8152600401610cc8906151d9565b6000878152600c602052604090206002015487906001600160a01b03163314611cc95760405162461bcd60e51b8152600401610cc890614e91565b866001600160a01b038116611cf05760405162461bcd60e51b8152600401610cc890615139565b6000898152600c6020526040902060648711801590611d10575060648511155b611d4a5760405162461bcd60e51b815260206004820152600b60248201526a4d6178206f66203130302560a81b6044820152606401610cc8565b861580611d5f57506001600160a01b03881615155b611dab5760405162461bcd60e51b815260206004820152601d60248201527f5072696d617279207061796565206973207a65726f20616464726573730000006044820152606401610cc8565b841580611dc057506001600160a01b03861615155b611e0c5760405162461bcd60e51b815260206004820152601f60248201527f5365636f6e64617279207061796565206973207a65726f2061646472657373006044820152606401610cc8565b7f000000000000000000000000000000000000000000000000000000000000000080611eaa57600282015482546001600160a01b039182168c831614916000918116908c161480611e6457506001600160a01b038b16155b60018501549091506000906001600160a01b038b811691161480611e8f57506001600160a01b038a16155b9050828015611e9b5750815b8015611ea45750805b93505050505b8015611f85576000801b600d60008d815260200190815260200160002081905550898260020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550888260000160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550878260020160146101000a81548160ff021916908360ff160217905550868260010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550858260010160146101000a81548160ff021916908360ff16021790555061182f565b8989898989604051602001611f9e95949392919061520c565b60408051601f19818403018152918152815160209283012060008e8152600d9093529120555050505050505050505050565b6000818152600b60205260409020600601805460609190611ff090614f45565b80601f016020809104026020016040519081016040528092919081815260200182805461201c90614f45565b80156120695780601f1061203e57610100808354040283529160200191612069565b820191906000526020600020905b81548152906001019060200180831161204c57829003601f168201915b50505050509050919050565b6000828152600c602052604090206002015482906001600160a01b031633146120b05760405162461bcd60e51b8152600401610cc890614e91565b6000838152600b602052604090206004016120cb8382615011565b50505050565b6000828152600c602052604090206002015482906001600160a01b0316331461210c5760405162461bcd60e51b8152600401610cc890614e91565b81805160000361212e5760405162461bcd60e51b8152600401610cc890614f79565b6000848152600b602052604090206006016111b48482615011565b611525838383604051806020016040528060008152506130e2565b632419b94160e11b612177333083611a28565b6121935760405162461bcd60e51b8152600401610cc890614f15565b816001600160a01b0381166121ba5760405162461bcd60e51b8152600401610cc890615139565b5050601480546001600160a01b0319166001600160a01b0392909216919091179055565b60606121f26576332e312e3160d01b6141b4565b905090565b600081815260026020526040812054600160a01b900460a01b6001600160a01b03198116820361222a5750600092915050565b8060405160200161223b9190614c13565b60405160208183030381529060405280519060200120915050919050565b6000818152600260205260408120546001600160a01b0316806112ce5760405162461bcd60e51b8152600401610cc89061523f565b817f000000000000000000000000000000000000000000000000000000000000000081101580156122c957506015546001600160f81b031681105b6122e55760405162461bcd60e51b8152600401610cc8906151d9565b826369d14faf60e01b6122f9333083611a28565b806123385750600061230961284d565b6001600160a01b031614801561233857506000828152600c60205260409020600201546001600160a01b031633145b6123545760405162461bcd60e51b8152600401610cc890615271565b836001600160a01b03811661237b5760405162461bcd60e51b8152600401610cc890615139565b505050600092835250600c602052604090912060020180546001600160a01b0319166001600160a01b03909216919091179055565b636c907b7f60e01b6123c3333083611a28565b6123df5760405162461bcd60e51b8152600401610cc890614f15565b816001600160a01b0381166124065760405162461bcd60e51b8152600401610cc890615139565b61152583600880546001600160a01b039092166001600160a01b03199283168117909155600980546001810182556000919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af018054909216179055565b60006001600160a01b0382166124d05760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610cc8565b506001600160a01b031660009081526003602052604090205490565b6124f461421f565b6124fc613ef3565b61250461427e565b565b857f0000000000000000000000000000000000000000000000000000000000000000811015801561254157506015546001600160f81b031681105b61255d5760405162461bcd60e51b8152600401610cc8906151d9565b866376ee6fab60e01b612571333083611a28565b806125b05750600061258161284d565b6001600160a01b03161480156125b057506000828152600c60205260409020600201546001600160a01b031633145b6125cc5760405162461bcd60e51b8152600401610cc890615271565b876001600160a01b0381166125f35760405162461bcd60e51b8152600401610cc890615139565b888888888860405160200161260c95949392919061520c565b60408051601f19818403018152918152815160209283012060008d8152600d9093529120541461267b5760405162461bcd60e51b815260206004820152601a602482015279135d5cdd081b585d18da08185c9d1a5cdd081c1c9bdc1bdcd85b60321b6044820152606401610cc8565b505050600096875250600c6020908152604080882060028101805482546001600160a01b0319166001600160a01b03998a161783559888166001600160a81b0319998a1617600160a01b60ff988916810291909117909155600190910180549590971694909716939093179190931690940293909317909155600d9052812055565b6000828152600c60205260408120600e54829182918291829182918291899060649061273390600160a01b900460ff16836152c9565b61273d9190615125565b985061274989826152e0565b600f5490915060649061276690600160a01b900460ff168c6152c9565b6127709190615125565b965061277c87826152e0565b600283015490915060649061279b90600160a01b900460ff16836152c9565b6127a59190615125565b92506127b183826152e0565b600e54600f546001600160a01b039182169a50169650945084156127e05760028201546001600160a01b031693505b505092959891949750929550565b6000828152600b60205260409020805460609190600160301b900462ffffff16831061282a5750506040805160208101909152600081526112ce565b6000838152600982016020526040902054611acc906001600160a01b0316614290565b60006121f26006546001600160a01b031690565b60608060608060606000600b6000888152602001908152602001600020905080600101805461288f90614f45565b80601f01602080910402602001604051908101604052809291908181526020018280546128bb90614f45565b80156129085780601f106128dd57610100808354040283529160200191612908565b820191906000526020600020905b8154815290600101906020018083116128eb57829003601f168201915b5050505050955080600201805461291e90614f45565b80601f016020809104026020016040519081016040528092919081815260200182805461294a90614f45565b80156129975780601f1061296c57610100808354040283529160200191612997565b820191906000526020600020905b81548152906001019060200180831161297a57829003601f168201915b505050505094508060030180546129ad90614f45565b80601f01602080910402602001604051908101604052809291908181526020018280546129d990614f45565b8015612a265780601f106129fb57610100808354040283529160200191612a26565b820191906000526020600020905b815481529060010190602001808311612a0957829003601f168201915b50505050509350806004018054612a3c90614f45565b80601f0160208091040260200160405190810160405280929190818152602001828054612a6890614f45565b8015612ab55780601f10612a8a57610100808354040283529160200191612ab5565b820191906000526020600020905b815481529060010190602001808311612a9857829003601f168201915b50505050509250806005018054612acb90614f45565b80601f0160208091040260200160405190810160405280929190818152602001828054612af790614f45565b8015612b445780601f10612b1957610100808354040283529160200191612b44565b820191906000526020600020905b815481529060010190602001808311612b2757829003601f168201915b505050505091505091939590929450565b60606001805461136b90614f45565b6000818152600c602052604090206002015481906001600160a01b03163314612b9f5760405162461bcd60e51b8152600401610cc890614e91565b506000908152600b60205260409020805460ff60901b198116600160901b9182900460ff1615909102179055565b612bd833838361430f565b5050565b612be582613d95565b612c0057612bfb33306351d9665360e11b611a28565b612c1e565b6000828152600c60205260409020600201546001600160a01b031633145b612c7f5760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c7920617274697374207768656e20756e6c6f636b65642c206f776e657260448201526b081dda195b881b1bd8dad95960a21b6064820152608401610cc8565b6000828152600b602052604090206003016115258282615011565b60168054612ca790614f45565b80601f0160208091040260200160405190810160405280929190818152602001828054612cd390614f45565b8015612d205780601f10612cf557610100808354040283529160200191612d20565b820191906000526020600020905b815481529060010190602001808311612d0357829003601f168201915b505050505081565b81612d3281613d95565b612d4e5760405162461bcd60e51b8152600401610cc890614eb6565b6000838152600c60205260409020600201548390632b2b404960e21b906001600160a01b0316331480612d875750612d87333083611a28565b612da35760405162461bcd60e51b8152600401610cc890614ee0565b838051600003612dc55760405162461bcd60e51b8152600401610cc890614f79565b6000868152600b60205260409020612ddc866143d9565b8154600160301b9081900462ffffff9081166000908152600985016020526040902080546001600160a01b0319166001600160a01b0394909416939093179092558254612e2e929190041660016152f3565b815462ffffff91909116600160301b0262ffffff60301b19909116179055505050505050565b60606121f26e47656e417274373231436f7265563360881b6141b4565b82612e7b81613d95565b612e975760405162461bcd60e51b8152600401610cc890614eb6565b6000848152600c6020526040902060020154849063b1656ba360e01b906001600160a01b0316331480612ed05750612ed0333083611a28565b612eec5760405162461bcd60e51b8152600401610cc890614ee0565b838051600003612f0e5760405162461bcd60e51b8152600401610cc890614f79565b6000878152600b602052604090208054600160301b900462ffffff168710612f705760405162461bcd60e51b81526020600482015260156024820152747363726970744964206f7574206f662072616e676560581b6044820152606401610cc8565b612f79866143d9565b6000978852600991909101602052604090962080546001600160a01b0319166001600160a01b0390971696909617909555505050505050565b6009546000908210612ffc5760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b6044820152606401610cc8565b6009828154811061300f5761300f6150ca565b6000918252602090912001546001600160a01b031692915050565b8161303481613d95565b6130505760405162461bcd60e51b8152600401610cc890614eb6565b6000838152600c60205260409020600201548390635bd827d760e11b906001600160a01b03163314806130895750613089333083611a28565b6130a55760405162461bcd60e51b8152600401610cc890614ee0565b8380516000036130c75760405162461bcd60e51b8152600401610cc890614f79565b6000868152600b602052604090206002016115e28682615011565b6130ec3383613fba565b6131085760405162461bcd60e51b8152600401610cc89061518b565b6120cb84848484614483565b6060808261312181613c13565b61313d5760405162461bcd60e51b8152600401610cc890614e60565b60408051600480825260a082019092529060208201608080368337505060408051600480825260a08201909252929550905060208201608080368337019050509150600061318a8561189f565b6000818152600c6020526040812080546001820154939450909260ff600160a01b92839004811693929091041690826131c48360646152e0565b6131ce91906152c9565b905060006131dc84846152c9565b60115460135491925090600084156132565760028801548c516001600160a01b03909116908d9083908110613213576132136150ca565b6001600160a01b0390921660209283029190910190910152848b82613237816150f6565b935081518110613249576132496150ca565b6020026020010181815250505b83156132c45760018801548c516001600160a01b03909116908d9083908110613281576132816150ca565b6001600160a01b0390921660209283029190910190910152838b826132a5816150f6565b9350815181106132b7576132b76150ca565b6020026020010181815250505b8215613330576010548c516001600160a01b03909116908d90839081106132ed576132ed6150ca565b6001600160a01b0390921660209283029190910190910152828b82613311816150f6565b935081518110613323576133236150ca565b6020026020010181815250505b811561339c576012548c516001600160a01b03909116908d9083908110613359576133596150ca565b6001600160a01b0390921660209283029190910190910152818b8261337d816150f6565b93508151811061338f5761338f6150ca565b6020026020010181815250505b80600411156133b75780600403808d51038d52808c51038c52505b50505050505050505050915091565b63bd3d10e760e01b6133d9333083611a28565b6133f55760405162461bcd60e51b8152600401610cc890614f15565b60646134018385615316565b111561344a5760405162461bcd60e51b81526020600482015260186024820152774d61782073756d206f66204f4e455f48554e44524544202560401b6044820152606401610cc8565b50600e805460ff938416600160a01b90810260ff60a01b1992831617909255600f8054939094169091029116179055565b6000828152600c602052604090206002015482906001600160a01b031633146134b65760405162461bcd60e51b8152600401610cc890614e91565b605f8211156135265760405162461bcd60e51b815260206004820152603660248201527f4d6178206f66204152544953545f4d41585f5345434f4e444152595f524f594160448201527513151657d4115490d153951051d1481c195c98d95b9d60521b6064820152608401610cc8565b506000918252600c6020526040909120805460ff909216600160a01b0260ff60a01b19909216919091179055565b60608161356081613c13565b61357c5760405162461bcd60e51b8152600401610cc890614e60565b6000600b600061358b8661189f565b815260200190815260200160002060060180546135a790614f45565b80601f01602080910402602001604051908101604052809291908181526020018280546135d390614f45565b80156136205780601f106135f557610100808354040283529160200191613620565b820191906000526020600020905b81548152906001019060200180831161360357829003601f168201915b5050505050905080613631856144b6565b604051602001613642929190615329565b6040516020818303038152906040529250505b50919050565b63cc90e72560e01b61366e333083611a28565b61368a5760405162461bcd60e51b8152600401610cc890614f15565b8280516000036136ac5760405162461bcd60e51b8152600401610cc890614f79565b826001600160a01b0381166136d35760405162461bcd60e51b8152600401610cc890615139565b601554600160f81b900460ff16156137265760405162461bcd60e51b81526020600482015260166024820152752732bb90383937b532b1ba39903337b93134b23232b760511b6044820152606401610cc8565b6015546001600160f81b03166000818152600c6020908152604080832060020180546001600160a01b0319166001600160a01b038a16179055600b90915290206001016137738782615011565b506000818152600b60205260409020805465ffffff00000060ff60901b011916613d09601e1b600160901b011781556006016137b0601682615358565b506137bc816001615424565b601580546001600160f81b0319166001600160f81b0392909216919091179055505050505050565b63340f0e4360e21b6137f7333083611a28565b6138135760405162461bcd60e51b8152600401610cc890614f15565b817f0000000000000000000000000000000000000000000000000000000000000000811015801561384e57506015546001600160f81b031681105b61386a5760405162461bcd60e51b8152600401610cc8906151d9565b50506000908152600b60205260409020805460ff60881b198116600160881b9182900460ff1615909102179055565b636d90d42360e11b6138ac333083611a28565b6138c85760405162461bcd60e51b8152600401610cc890614f15565b6127106138d58385615316565b111561393b5760405162461bcd60e51b815260206004820152602f60248201527f4d61782073756d206f66204d41585f50524f56494445525f5345434f4e44415260448201526e595f53414c45535f4250532042505360881b6064820152608401610cc8565b50601191909155601355565b8061395181613d95565b61396d5760405162461bcd60e51b8152600401610cc890614eb6565b6000828152600c6020526040902060020154829063db2ff86160e01b906001600160a01b03163314806139a657506139a6333083611a28565b6139c25760405162461bcd60e51b8152600401610cc890614ee0565b6000848152600b602052604090208054600160301b900462ffffff16613a2a5760405162461bcd60e51b815260206004820152601e60248201527f746865726520617265206e6f207363726970747320746f2072656d6f766500006044820152606401610cc8565b80546009820190600090613a4c90600190600160301b900462ffffff16615444565b62ffffff9081168252602082019290925260400160002080546001600160a01b0319169055815462ffffff60301b198116600160301b918290048316600019019092160217905550505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6000818152600b60205260408120600781015460609283929091613aea906141b4565b9350806008018054613afb90614f45565b80601f0160208091040260200160405190810160405280929190818152602001828054613b2790614f45565b8015613b745780601f10613b4957610100808354040283529160200191613b74565b820191906000526020600020905b815481529060010190602001808311613b5757829003601f168201915b5050935496989297505050600160301b90940462ffffff169392505050565b613b9b61421f565b6001600160a01b038116613c005760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610cc8565b611359816145b6565b60006121f261284d565b6000908152600260205260409020546001600160a01b0316151590565b6000908152600b60205260409020805467ffffffffffffffff60481b1916600160481b426001600160401b031602179055565b6001600160a01b038216613cb95760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610cc8565b613cc281613c13565b15613d0e5760405162461bcd60e51b815260206004820152601c60248201527b115490cdcc8c4e881d1bdad95b88185b1c9958591e481b5a5b9d195960221b6044820152606401610cc8565b6001600160a01b0382166000908152600360205260408120805460019290613d37908490615316565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000817f00000000000000000000000000000000000000000000000000000000000000008110158015613dd257506015546001600160f81b031681105b613dee5760405162461bcd60e51b8152600401610cc8906151d9565b6000838152600b6020526040902054600160481b90046001600160401b031680158080613e2657506224ea00613e2483426152e0565b105b95945050505050565b60008060005b60208160ff161015613e8f576000868260ff1660208110613e5857613e586150ca565b1a90508015801590613e6d575060808160ff16105b15613e86578560ff168160ff1603613e86578260010192505b50600101613e35565b8360ff168260ff1614925050509392505050565b60006001600160e01b031982166380ac58cd60e01b1480613ed457506001600160e01b03198216635b5e139f60e01b145b806112ce57506301ffc9a760e01b6001600160e01b03198316146112ce565b601554600160f81b900460ff1661250457601580546001600160f81b0316600160f81b179055565b613f2481613c13565b6113595760405162461bcd60e51b8152600401610cc89061523f565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190613f7582612259565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6016612bd88282615011565b600080613fc683612259565b9050806001600160a01b0316846001600160a01b03161480613fed5750613fed8185613a99565b80611acc5750836001600160a01b0316614006846113ee565b6001600160a01b031614949350505050565b826001600160a01b031661402b82612259565b6001600160a01b03161461408f5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610cc8565b6001600160a01b0382166140f15760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610cc8565b6140fc600082613f40565b6001600160a01b03831660009081526003602052604081208054600192906141259084906152e0565b90915550506001600160a01b0382166000908152600360205260408120805460019290614153908490615316565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b606060005b828160ff16602081106141ce576141ce6150ca565b1a60f81b6001600160f81b031916158015906141ed575060208160ff16105b1561420457806141fc81615460565b9150506141b9565b60405191506040820160405280825282602083015250919050565b3361422861284d565b6001600160a01b0316146125045760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610cc8565b61428661421f565b61250460006145b6565b604051630eacc5e760e31b815260609073__$55f4e50e6128becd8bf164b272db98df09$__906375662f38906142ca90859060040161489b565b600060405180830381865af41580156142e7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112ce919081019061547f565b816001600160a01b0316836001600160a01b03160361436c5760405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b6044820152606401610cc8565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6000807f42797465636f646553746f726167655f56312e302e305f5f5f5f5f5f5f5f5f203084604051602001614411939291906154ec565b60405160208183030381529060405290508051602082016000f091506001600160a01b0382166136555760405162461bcd60e51b815260206004820152601e60248201527f436f6e7472616374417353746f726167653a205772697465204572726f7200006044820152606401610cc8565b61448e848484614018565b61449a848484846145e1565b6120cb5760405162461bcd60e51b8152600401610cc89061554d565b6060816000036144dd5750506040805180820190915260018152600360fc1b602082015290565b8160005b811561450757806144f1816150f6565b91506145009050600a83615125565b91506144e1565b6000816001600160401b03811115614521576145216148db565b6040519080825280601f01601f19166020018201604052801561454b576020820181803683370190505b5090505b8415611acc576145606001836152e0565b915061456d600a8661559f565b614578906030615316565b60f81b81838151811061458d5761458d6150ca565b60200101906001600160f81b031916908160001a9053506145af600a86615125565b945061454f565b6145bf816146e2565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160a01b0384163b156146d757604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906146259033908990889088906004016155b3565b6020604051808303816000875af1925050508015614660575060408051601f3d908101601f1916820190925261465d918101906155f0565b60015b6146bd573d80801561468e576040519150601f19603f3d011682016040523d82523d6000602084013e614693565b606091505b5080516000036146b55760405162461bcd60e51b8152600401610cc89061554d565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611acc565b506001949350505050565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000806040838503121561474757600080fd5b50508035926020909101359150565b6001600160a01b038116811461135957600080fd5b60008060006060848603121561478057600080fd5b833561478b81614756565b92506020840135915060408401356147a281614756565b809150509250925092565b600080604083850312156147c057600080fd5b82359150602083013562ffffff811681146147da57600080fd5b809150509250929050565b6001600160e01b03198116811461135957600080fd5b60006020828403121561480d57600080fd5b8135614818816147e5565b9392505050565b60005b8381101561483a578181015183820152602001614822565b50506000910152565b6000815180845261485b81602086016020860161481f565b601f01601f19169290920160200192915050565b6020815260006148186020830184614843565b60006020828403121561489457600080fd5b5035919050565b6001600160a01b0391909116815260200190565b600080604083850312156148c257600080fd5b82356148cd81614756565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614919576149196148db565b604052919050565b60006001600160401b0382111561493a5761493a6148db565b50601f01601f191660200190565b600061495b61495684614921565b6148f1565b905082815283838301111561496f57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261499757600080fd5b61481883833560208501614948565b600080604083850312156149b957600080fd5b8235915060208301356001600160401b038111156149d657600080fd5b6149e285828601614986565b9150509250929050565b60008060008060808587031215614a0257600080fd5b8435614a0d81614756565b93506020850135614a1d81614756565b92506040850135614a2d81614756565b91506060850135614a3d81614756565b939692955090935050565b600060208284031215614a5a57600080fd5b81356001600160401b03811115614a7057600080fd5b611acc84828501614986565b600080600060608486031215614a9157600080fd5b8335614a9c81614756565b92506020840135614aac81614756565b915060408401356147a2816147e5565b600080600060608486031215614ad157600080fd5b8335614adc81614756565b92506020840135614aec81614756565b929592945050506040919091013590565b600060208284031215614b0f57600080fd5b813561481881614756565b60008060008060008060c08789031215614b3357600080fd5b863595506020870135614b4581614756565b94506040870135614b5581614756565b9350606087013592506080870135614b6c81614756565b8092505060a087013590509295509295509295565b60008060408385031215614b9457600080fd5b8235915060208301356147da81614756565b60a081526000614bb960a0830188614843565b8281036020840152614bcb8188614843565b90508281036040840152614bdf8187614843565b90508281036060840152614bf38186614843565b90508281036080840152614c078185614843565b98975050505050505050565b6001600160a01b031991909116815260200190565b801515811461135957600080fd5b60008060408385031215614c4957600080fd5b8235614c5481614756565b915060208301356147da81614c28565b600080600060608486031215614c7957600080fd5b833592506020840135915060408401356001600160401b03811115614c9d57600080fd5b614ca986828701614986565b9150509250925092565b60008060008060808587031215614cc957600080fd5b8435614cd481614756565b93506020850135614ce481614756565b92506040850135915060608501356001600160401b03811115614d0657600080fd5b8501601f81018713614d1757600080fd5b614d2687823560208401614948565b91505092959194509250565b604080825283519082018190526000906020906060840190828701845b82811015614d745781516001600160a01b031684529284019290840190600101614d4f565b5050508381038285015284518082528583019183019060005b81811015614da957835183529284019291840191600101614d8d565b5090979650505050505050565b60008060408385031215614dc957600080fd5b82356001600160401b03811115614ddf57600080fd5b614deb85828601614986565b92505060208301356147da81614756565b60008060408385031215614e0f57600080fd5b8235614e1a81614756565b915060208301356147da81614756565b606081526000614e3d6060830186614843565b8281036020840152614e4f8186614843565b915050826040830152949350505050565b602080825260179082015276151bdad95b88125108191bd95cc81b9bdd08195e1a5cdd604a1b604082015260600190565b6020808252600b908201526a13db9b1e48185c9d1a5cdd60aa1b604082015260600190565b60208082526010908201526f13db9b1e481a59881d5b9b1bd8dad95960821b604082015260600190565b6020808252818101527f4f6e6c7920617274697374206f722041646d696e2041434c20616c6c6f776564604082015260600190565b60208082526016908201527513db9b1e4810591b5a5b881050d308185b1b1bddd95960521b604082015260600190565b600181811c90821680614f5957607f821691505b60208210810361365557634e487b7160e01b600052602260045260246000fd5b6020808252601b908201527a4d75737420696e707574206e6f6e2d656d70747920737472696e6760281b604082015260600190565b601f82111561152557600081815260208120601f850160051c81016020861015614fd55750805b601f850160051c820191505b81811015614ff457828155600101614fe1565b505050505050565b600019600383901b1c191660019190911b1790565b81516001600160401b0381111561502a5761502a6148db565b61503e816150388454614f45565b84614fae565b602080601f83116001811461506d576000841561505b5750858301515b6150658582614ffc565b865550614ff4565b600085815260208120601f198616915b8281101561509c5788860151825594840194600190910190840161507d565b50858210156150ba5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201615108576151086150e0565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826151345761513461510f565b500490565b6020808252601b908201527a4d75737420696e707574206e6f6e2d7a65726f206164647265737360281b604082015260600190565b60006020828403121561518057600080fd5b815161481881614c28565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b602080825260199082015278141c9bda9958dd08125108191bd95cc81b9bdd08195e1a5cdd603a1b604082015260600190565b6001600160a01b039586168152938516602085015260408401929092529092166060820152608081019190915260a00190565b602080825260189082015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604082015260600190565b60208082526038908201527f4f6e6c792041646d696e2041434c20616c6c6f7765642c206f722061727469736040820152771d081a59881bdddb995c881a185cc81c995b9bdd5b98d95960421b606082015260800190565b80820281158282048414176112ce576112ce6150e0565b818103818111156112ce576112ce6150e0565b62ffffff81811683821601908082111561530f5761530f6150e0565b5092915050565b808201808211156112ce576112ce6150e0565b6000835161533b81846020880161481f565b83519083019061534f81836020880161481f565b01949350505050565b818103615363575050565b61536d8254614f45565b6001600160401b03811115615384576153846148db565b615392816150388454614f45565b6000601f8211600181146153c057600083156153ae5750848201545b6153b88482614ffc565b8555506111b4565b600085815260209020601f19841690600086815260209020845b838110156153fa57828601548255600195860195909101906020016153da565b50858310156150ba5793015460001960f8600387901b161c19169092555050600190811b01905550565b6001600160f81b0381811683821601908082111561530f5761530f6150e0565b62ffffff82811682821603908082111561530f5761530f6150e0565b600060ff821660ff8103615476576154766150e0565b60010192915050565b60006020828403121561549157600080fd5b81516001600160401b038111156154a757600080fd5b8201601f810184136154b857600080fd5b80516154c661495682614921565b8181528560208385010111156154db57600080fd5b613e2682602083016020860161481f565b6a600b5981380380925939f360a81b8152607f60f91b600b820152600c81018490526000602c8201819052606084901b6001600160601b0319166038830152825161553e81604c85016020870161481f565b91909101604c01949350505050565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6000826155ae576155ae61510f565b500690565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906155e690830184614843565b9695505050505050565b60006020828403121561560257600080fd5b8151614818816147e556fea2646970667358221220b0ca9dfc5b2101672385d790aaf5e096669a5b3b5b6fc379b08f1a220f23373964736f6c634300081300334d75737420696e707574206e6f6e2d7a65726f20616464726573730000000000",
|
|
1809
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106104145760003560e01c8063715018a611610223578063b75395e01161012c578063b75395e014610a39578063b7b04fae14610a4c578063b88d4fde14610a5f578063b971136814610a72578063bb3bafd614610a7a578063bd3d10e714610a9b578063c34a03b514610aae578063c6c7c5bf14610ac1578063c87b56dd14610ad4578063cc90e72514610ae7578063d03c390c14610afa578063db21a84614610b0d578063db2ff86114610b20578063e6032df214610b33578063e935b7b114610b5a578063e985e9c514610b6b578063eb9cd5d414610b7e578063ed8abfda14610ba0578063f2fde38b14610bca578063f313d73314610bdd578063f851a44014610c73578063f893c07b14610c7b57600080fd5b8063715018a61461080c57806376ee6fab146108145780638639415b146108275780638c3c9cdd146108795780638da5cb5b1461088c5780638dd91a561461089457806392f00233146108b857806395d89b41146108cb5780639a02e4fa146108d3578063a11ec70a1461090a578063a22cb4651461091d578063a3b2cca614610930578063a47d29cb14610943578063abcbb7b41461096f578063ac11fa1c14610977578063acad012414610997578063acd4c66f146109aa578063ad0305ce146109bc578063ad2cdfc4146109de578063ae45ad9814610a0b578063b1656ba314610a13578063b168762214610a2657600080fd5b806328ec8f501161032557806328ec8f50146106315780632b2741661461065e5780632b65e67d146106715780632b8258c5146106845780632d9c02051461068d57806330ef4c5f146106a057806336c7c12c146106b257806337859963146106c557806338c8e468146106d85780633bb22553146107045780633e48e8481461070d57806341814cd31461072057806342842e0e1461073357806348337282146107465780634e1d64af146107595780635508fd521461076157806358b9a5a914610775578063621a1f74146107ad5780636352211e146107c057806369d14faf146107d35780636c907b7f146107e657806370a08231146107f957600080fd5b80611e3c146104195780615de51461042e5780630132c6971461045457806301856fd41461046757806301ffc9a71461047a57806304143a5c1461049d57806306fdde03146104a5578063081812fc146104ba578063095ea7b3146104da5780630d170673146104ed5780630e79c928146105005780630ea5613f146105135780630ebeb0ee1461055d57806317df5366146105865780631ab6014c146105995780631b689c0b146105ac5780631c05cad7146105bf5780631e9bef46146105d25780632302cbda146105e5578063230448b1146105f857806323b872dd1461060b57806325b75d681461061e575b600080fd5b61042c610427366004614734565b610ca2565b005b61044161043c36600461476b565b610df4565b6040519081526020015b60405180910390f35b61042c6104623660046147ad565b611063565b61042c610475366004614734565b6111bb565b61048d6104883660046147fb565b6112a9565b604051901515815260200161044b565b61042c6112d4565b6104ad61135c565b60405161044b919061486f565b6104cd6104c8366004614882565b6113ee565b60405161044b919061489b565b61042c6104e83660046148af565b611415565b61042c6104fb3660046149a6565b61152a565b61042c61050e3660046149a6565b6115eb565b610526610521366004614882565b61183c565b60408051968752602087019590955292151593850193909352151560608401526080830191909152151560a082015260c00161044b565b6104cd61056b366004614882565b6000908152600c60205260409020546001600160a01b031690565b6007546104cd906001600160a01b031681565b600f546104cd906001600160a01b031681565b6104416105ba366004614882565b61189f565b61042c6105cd3660046149ec565b6118ae565b600a546104cd906001600160a01b031681565b61042c6105f3366004614a48565b6119ce565b61048d610606366004614a7c565b611a28565b61042c610619366004614abc565b611ad4565b61042c61062c3660046149a6565b611b05565b61044161063f366004614882565b6000908152600c6020526040902060010154600160a01b900460ff1690565b61042c61066c366004614afd565b611bbd565b61042c61067f366004614b1a565b611c37565b61044160135481565b6104ad61069b366004614882565b611fd0565b600f54600160a01b900460ff16610441565b6008546104cd906001600160a01b031681565b61042c6106d33660046149a6565b612075565b6104cd6106e6366004614882565b6000908152600c60205260409020600101546001600160a01b031690565b61044160115481565b61042c61071b3660046149a6565b6120d1565b6010546104cd906001600160a01b031681565b61042c610741366004614abc565b612149565b61042c610754366004614afd565b612164565b6104ad6121de565b60155461048d90600160f81b900460ff1681565b6104cd610783366004614734565b6000918252600b60209081526040808420928452600990920190529020546001600160a01b031690565b6104416107bb366004614882565b6121f7565b6104cd6107ce366004614882565b612259565b61042c6107e1366004614b81565b61228e565b61042c6107f4366004614afd565b6123b0565b610441610807366004614afd565b612466565b61042c6124ec565b61042c610822366004614b1a565b612506565b61083a610835366004614734565b6126fd565b604080519788526001600160a01b0396871660208901528701949094529184166060860152608085015290911660a083015260c082015260e00161044b565b6104ad610887366004614734565b6127ee565b6104cd61284d565b6108a76108a2366004614882565b612861565b60405161044b959493929190614ba6565b6014546104cd906001600160a01b031681565b6104ad612b55565b6108fd6108e1366004614882565b600090815260026020526040902054600160a01b900460a01b90565b60405161044b9190614c13565b61042c610918366004614882565b612b64565b61042c61092b366004614c36565b612bcd565b61042c61093e3660046149a6565b612bdc565b6104cd610951366004614882565b6000908152600c60205260409020600201546001600160a01b031690565b6104ad612c9a565b610441610985366004614882565b600d6020526000908152604090205481565b61042c6109a53660046149a6565b612d28565b600e54600160a01b900460ff16610441565b61048d6109ca366004614afd565b6014546001600160a01b0390811691161490565b6104416109ec366004614882565b6000908152600c6020526040902060020154600160a01b900460ff1690565b6104ad612e54565b61042c610a21366004614c64565b612e71565b6104cd610a34366004614882565b612fb2565b600e546104cd906001600160a01b031681565b61042c610a5a3660046149a6565b61302a565b61042c610a6d366004614cb3565b6130e2565b600954610441565b610a8d610a88366004614882565b613114565b60405161044b929190614d32565b61042c610aa9366004614734565b6133c6565b61042c610abc366004614734565b61347b565b6012546104cd906001600160a01b031681565b6104ad610ae2366004614882565b613554565b61042c610af5366004614db6565b61365b565b61042c610b08366004614882565b6137e4565b61042c610b1b366004614734565b613899565b61042c610b2e366004614882565b613947565b61048d7f000000000000000000000000000000000000000000000000000000000000000081565b6015546001600160f81b0316610441565b61048d610b79366004614dfc565b613a99565b610b91610b8c366004614882565b613ac7565b60405161044b93929190614e2a565b610441610bae366004614882565b6000908152600c6020526040902054600160a01b900460ff1690565b61042c610bd8366004614afd565b613b93565b610c35610beb366004614882565b6000908152600c60205260409020600281015481546001909201546001600160a01b03808316948482169460ff600160a01b95869004811695938516948490048116939091041690565b604080516001600160a01b039788168152958716602087015285019390935293166060830152608082019290925260a081019190915260c00161044b565b6104cd613c09565b6104417f000000000000000000000000000000000000000000000000000000000000000081565b81610cac81613c13565b610cd15760405162461bcd60e51b8152600401610cc890614e60565b60405180910390fd5b60008381526002602052604090206008546001600160a01b03163314610d335760405162461bcd60e51b815260206004820152601760248201527613db9b1e481c985b991bdb5a5e995c881b585e481cd95d604a1b6044820152606401610cc8565b8054600160a01b900460a01b6001600160a01b03191615610d8f5760405162461bcd60e51b8152602060048201526016602482015275151bdad95b881a185cda08185b1c9958591e481cd95d60521b6044820152606401610cc8565b82610dd05760405162461bcd60e51b8152602060048201526011602482015270139bc81e995c9bc81a185cda081cd95959607a1b6044820152606401610cc8565b805460a09390931c600160a01b026001600160a01b03909316929092179091555050565b6014546000906001600160a01b03163314610e515760405162461bcd60e51b815260206004820152601e60248201527f4d757374206d696e742066726f6d206d696e74657220636f6e747261637400006044820152606401610cc8565b6000838152600b60205260409020805462ffffff808216916001830191630100000090910416808310610ec65760405162461bcd60e51b815260206004820152601f60248201527f4d757374206e6f7420657863656564206d617820696e766f636174696f6e73006044820152606401610cc8565b8354600160881b900460ff1680610ef957506000878152600c60205260409020600201546001600160a01b038781169116145b610f455760405162461bcd60e51b815260206004820181905260248201527f50726f6a656374206d75737420657869737420616e64206265206163746976656044820152606401610cc8565b8354600160901b900460ff161580610f7957506000878152600c60205260409020600201546001600160a01b038781169116145b610fbd5760405162461bcd60e51b8152602060048201526015602482015274283ab931b430b9b2b99030b932903830bab9b2b21760591b6044820152606401610cc8565b835462ffffff191662ffffff8381169182178655848116620f42408a0201919083169003610fee57610fee88613c30565b610ff88982613c63565b600854604051635b140b8d60e11b8152600481018390526001600160a01b039091169063b628171a90602401600060405180830381600087803b15801561103e57600080fd5b505af1158015611052573d6000803e3d6000fd5b50929b9a5050505050505050505050565b6000828152600c602052604090206002015482906001600160a01b0316331461109e5760405162461bcd60e51b8152600401610cc890614e91565b6000838152600b60205260409020805462ffffff808216916301000000900481169085161061111b5760405162461bcd60e51b8152602060048201526024808201527f6d6178496e766f636174696f6e73206d6179206f6e6c79206265206465637265604482015263185cd95960e21b6064820152608401610cc8565b808462ffffff1610156111855760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c79206d617820696e766f636174696f6e73206774652063757272656e7460448201526b20696e766f636174696f6e7360a01b6064820152608401610cc8565b815465ffffff0000001916630100000062ffffff86169081029190911783558190036111b4576111b485613c30565b5050505050565b816111c581613d95565b6111e15760405162461bcd60e51b8152600401610cc890614eb6565b6000838152600c6020526040902060020154839062615bf560e21b906001600160a01b03163314806112195750611219333083611a28565b6112355760405162461bcd60e51b8152600401610cc890614ee0565b6000858152600b602052604090819020906112539086906001613e2f565b61129c5760405162461bcd60e51b815260206004820152601a60248201527901b5d5cdd0818dbdb9d185a5b88195e1858dd1b1e481bdb9948160361b6044820152606401610cc8565b6007019390935550505050565b60006001600160e01b03198216635d9dd7eb60e11b14806112ce57506112ce82613ea3565b92915050565b6301050e9760e21b6112e7333083611a28565b6113035760405162461bcd60e51b8152600401610cc890614f15565b601554600160f81b900460ff16156113515760405162461bcd60e51b815260206004820152601160248201527020b63932b0b23c903337b93134b23232b760791b6044820152606401610cc8565b611359613ef3565b50565b60606000805461136b90614f45565b80601f016020809104026020016040519081016040528092919081815260200182805461139790614f45565b80156113e45780601f106113b9576101008083540402835291602001916113e4565b820191906000526020600020905b8154815290600101906020018083116113c757829003601f168201915b5050505050905090565b60006113f982613f1b565b506000908152600460205260409020546001600160a01b031690565b600061142082612259565b9050806001600160a01b0316836001600160a01b03160361148d5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610cc8565b336001600160a01b03821614806114a957506114a98133613a99565b61151b5760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c00006064820152608401610cc8565b6115258383613f40565b505050565b8161153481613d95565b6115505760405162461bcd60e51b8152600401610cc890614eb6565b6000838152600c60205260409020600201548390630d17067360e01b906001600160a01b03163314806115895750611589333083611a28565b6115a55760405162461bcd60e51b8152600401610cc890614ee0565b8380516000036115c75760405162461bcd60e51b8152600401610cc890614f79565b6000868152600b602052604090206001016115e28682615011565b50505050505050565b816115f581613d95565b6116115760405162461bcd60e51b8152600401610cc890614eb6565b6000838152600c602052604090206002015483906301cf392560e31b906001600160a01b031633148061164a575061164a333083611a28565b6116665760405162461bcd60e51b8152600401610cc890614ee0565b8380516000036116885760405162461bcd60e51b8152600401610cc890614f79565b84518590600b8111156116dc5760405162461bcd60e51b815260206004820152601c60248201527b41737065637420726174696f20666f726d617420746f6f206c6f6e6760201b6044820152606401610cc8565b60008060005b838110156117c85760008582815181106116fe576116fe6150ca565b01602001516001600160f81b0319169050600360fc1b81108015906117315750603960f81b6001600160f81b0319821611155b156117405760019250506117b6565b6001600160f81b03198116601760f91b0361176457836117645760019350506117b6565b60405162461bcd60e51b815260206004820152602160248201527f496d70726f7065726c7920666f726d61747465642061737065637420726174696044820152606f60f81b6064820152608401610cc8565b806117c0816150f6565b9150506116e2565b50806118145760405162461bcd60e51b815260206004820152601b60248201527a41737065637420726174696f20686173206e6f206e756d6265727360281b6044820152606401610cc8565b60008a8152600b6020526040902060080161182f8a82615011565b5050505050505050505050565b6000818152600b60205260408120805462ffffff808216936301000000830490911692600160881b830460ff90811693600160901b810490911692600160481b9091046001600160401b03169161189288613d95565b1591505091939550919395565b60006112ce620f424083615125565b631c05cad760e01b6118c1333083611a28565b6118dd5760405162461bcd60e51b8152600401610cc890614f15565b846001600160a01b0381166119045760405162461bcd60e51b8152600401610cc890615139565b846001600160a01b03811661192b5760405162461bcd60e51b8152600401610cc890615139565b846001600160a01b0381166119525760405162461bcd60e51b8152600401610cc890615139565b846001600160a01b0381166119795760405162461bcd60e51b8152600401610cc890615139565b600f80546001600160a01b03199081166001600160a01b03808b1691909117909255601280548216838a16179055600e80548216838d1617905560108054909116918a16919091179055505050505050505050565b63118165ed60e11b6119e1333083611a28565b6119fd5760405162461bcd60e51b8152600401610cc890614f15565b818051600003611a1f5760405162461bcd60e51b8152600401610cc890614f79565b61152583613fae565b600080611a3361284d565b6001600160a01b031614158015611acc5750600a546040516217798b60e61b81526001600160a01b03868116600483015285811660248301526001600160e01b031985166044830152909116906305de62c0906064016020604051808303816000875af1158015611aa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611acc919061516e565b949350505050565b611ade3382613fba565b611afa5760405162461bcd60e51b8152600401610cc89061518b565b611525838383614018565b81611b0f81613d95565b611b2b5760405162461bcd60e51b8152600401610cc890614eb6565b6000838152600c602052604090206002015483906304b6ebad60e31b906001600160a01b0316331480611b645750611b64333083611a28565b611b805760405162461bcd60e51b8152600401610cc890614ee0565b838051600003611ba25760405162461bcd60e51b8152600401610cc890614f79565b6000868152600b602052604090206005016115e28682615011565b631593a0b360e11b611bd0333083611a28565b611bec5760405162461bcd60e51b8152600401610cc890614f15565b816001600160a01b038116611c135760405162461bcd60e51b8152600401610cc890615139565b5050600780546001600160a01b0319166001600160a01b0392909216919091179055565b857f00000000000000000000000000000000000000000000000000000000000000008110158015611c7257506015546001600160f81b031681105b611c8e5760405162461bcd60e51b8152600401610cc8906151d9565b6000878152600c602052604090206002015487906001600160a01b03163314611cc95760405162461bcd60e51b8152600401610cc890614e91565b866001600160a01b038116611cf05760405162461bcd60e51b8152600401610cc890615139565b6000898152600c6020526040902060648711801590611d10575060648511155b611d4a5760405162461bcd60e51b815260206004820152600b60248201526a4d6178206f66203130302560a81b6044820152606401610cc8565b861580611d5f57506001600160a01b03881615155b611dab5760405162461bcd60e51b815260206004820152601d60248201527f5072696d617279207061796565206973207a65726f20616464726573730000006044820152606401610cc8565b841580611dc057506001600160a01b03861615155b611e0c5760405162461bcd60e51b815260206004820152601f60248201527f5365636f6e64617279207061796565206973207a65726f2061646472657373006044820152606401610cc8565b7f000000000000000000000000000000000000000000000000000000000000000080611eaa57600282015482546001600160a01b039182168c831614916000918116908c161480611e6457506001600160a01b038b16155b60018501549091506000906001600160a01b038b811691161480611e8f57506001600160a01b038a16155b9050828015611e9b5750815b8015611ea45750805b93505050505b8015611f85576000801b600d60008d815260200190815260200160002081905550898260020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550888260000160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550878260020160146101000a81548160ff021916908360ff160217905550868260010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550858260010160146101000a81548160ff021916908360ff16021790555061182f565b8989898989604051602001611f9e95949392919061520c565b60408051601f19818403018152918152815160209283012060008e8152600d9093529120555050505050505050505050565b6000818152600b60205260409020600601805460609190611ff090614f45565b80601f016020809104026020016040519081016040528092919081815260200182805461201c90614f45565b80156120695780601f1061203e57610100808354040283529160200191612069565b820191906000526020600020905b81548152906001019060200180831161204c57829003601f168201915b50505050509050919050565b6000828152600c602052604090206002015482906001600160a01b031633146120b05760405162461bcd60e51b8152600401610cc890614e91565b6000838152600b602052604090206004016120cb8382615011565b50505050565b6000828152600c602052604090206002015482906001600160a01b0316331461210c5760405162461bcd60e51b8152600401610cc890614e91565b81805160000361212e5760405162461bcd60e51b8152600401610cc890614f79565b6000848152600b602052604090206006016111b48482615011565b611525838383604051806020016040528060008152506130e2565b632419b94160e11b612177333083611a28565b6121935760405162461bcd60e51b8152600401610cc890614f15565b816001600160a01b0381166121ba5760405162461bcd60e51b8152600401610cc890615139565b5050601480546001600160a01b0319166001600160a01b0392909216919091179055565b60606121f26576332e312e3160d01b6141b4565b905090565b600081815260026020526040812054600160a01b900460a01b6001600160a01b03198116820361222a5750600092915050565b8060405160200161223b9190614c13565b60405160208183030381529060405280519060200120915050919050565b6000818152600260205260408120546001600160a01b0316806112ce5760405162461bcd60e51b8152600401610cc89061523f565b817f000000000000000000000000000000000000000000000000000000000000000081101580156122c957506015546001600160f81b031681105b6122e55760405162461bcd60e51b8152600401610cc8906151d9565b826369d14faf60e01b6122f9333083611a28565b806123385750600061230961284d565b6001600160a01b031614801561233857506000828152600c60205260409020600201546001600160a01b031633145b6123545760405162461bcd60e51b8152600401610cc890615271565b836001600160a01b03811661237b5760405162461bcd60e51b8152600401610cc890615139565b505050600092835250600c602052604090912060020180546001600160a01b0319166001600160a01b03909216919091179055565b636c907b7f60e01b6123c3333083611a28565b6123df5760405162461bcd60e51b8152600401610cc890614f15565b816001600160a01b0381166124065760405162461bcd60e51b8152600401610cc890615139565b61152583600880546001600160a01b039092166001600160a01b03199283168117909155600980546001810182556000919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af018054909216179055565b60006001600160a01b0382166124d05760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610cc8565b506001600160a01b031660009081526003602052604090205490565b6124f461421f565b6124fc613ef3565b61250461427e565b565b857f0000000000000000000000000000000000000000000000000000000000000000811015801561254157506015546001600160f81b031681105b61255d5760405162461bcd60e51b8152600401610cc8906151d9565b866376ee6fab60e01b612571333083611a28565b806125b05750600061258161284d565b6001600160a01b03161480156125b057506000828152600c60205260409020600201546001600160a01b031633145b6125cc5760405162461bcd60e51b8152600401610cc890615271565b876001600160a01b0381166125f35760405162461bcd60e51b8152600401610cc890615139565b888888888860405160200161260c95949392919061520c565b60408051601f19818403018152918152815160209283012060008d8152600d9093529120541461267b5760405162461bcd60e51b815260206004820152601a602482015279135d5cdd081b585d18da08185c9d1a5cdd081c1c9bdc1bdcd85b60321b6044820152606401610cc8565b505050600096875250600c6020908152604080882060028101805482546001600160a01b0319166001600160a01b03998a161783559888166001600160a81b0319998a1617600160a01b60ff988916810291909117909155600190910180549590971694909716939093179190931690940293909317909155600d9052812055565b6000828152600c60205260408120600e54829182918291829182918291899060649061273390600160a01b900460ff16836152c9565b61273d9190615125565b985061274989826152e0565b600f5490915060649061276690600160a01b900460ff168c6152c9565b6127709190615125565b965061277c87826152e0565b600283015490915060649061279b90600160a01b900460ff16836152c9565b6127a59190615125565b92506127b183826152e0565b600e54600f546001600160a01b039182169a50169650945084156127e05760028201546001600160a01b031693505b505092959891949750929550565b6000828152600b60205260409020805460609190600160301b900462ffffff16831061282a5750506040805160208101909152600081526112ce565b6000838152600982016020526040902054611acc906001600160a01b0316614290565b60006121f26006546001600160a01b031690565b60608060608060606000600b6000888152602001908152602001600020905080600101805461288f90614f45565b80601f01602080910402602001604051908101604052809291908181526020018280546128bb90614f45565b80156129085780601f106128dd57610100808354040283529160200191612908565b820191906000526020600020905b8154815290600101906020018083116128eb57829003601f168201915b5050505050955080600201805461291e90614f45565b80601f016020809104026020016040519081016040528092919081815260200182805461294a90614f45565b80156129975780601f1061296c57610100808354040283529160200191612997565b820191906000526020600020905b81548152906001019060200180831161297a57829003601f168201915b505050505094508060030180546129ad90614f45565b80601f01602080910402602001604051908101604052809291908181526020018280546129d990614f45565b8015612a265780601f106129fb57610100808354040283529160200191612a26565b820191906000526020600020905b815481529060010190602001808311612a0957829003601f168201915b50505050509350806004018054612a3c90614f45565b80601f0160208091040260200160405190810160405280929190818152602001828054612a6890614f45565b8015612ab55780601f10612a8a57610100808354040283529160200191612ab5565b820191906000526020600020905b815481529060010190602001808311612a9857829003601f168201915b50505050509250806005018054612acb90614f45565b80601f0160208091040260200160405190810160405280929190818152602001828054612af790614f45565b8015612b445780601f10612b1957610100808354040283529160200191612b44565b820191906000526020600020905b815481529060010190602001808311612b2757829003601f168201915b505050505091505091939590929450565b60606001805461136b90614f45565b6000818152600c602052604090206002015481906001600160a01b03163314612b9f5760405162461bcd60e51b8152600401610cc890614e91565b506000908152600b60205260409020805460ff60901b198116600160901b9182900460ff1615909102179055565b612bd833838361430f565b5050565b612be582613d95565b612c0057612bfb33306351d9665360e11b611a28565b612c1e565b6000828152600c60205260409020600201546001600160a01b031633145b612c7f5760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c7920617274697374207768656e20756e6c6f636b65642c206f776e657260448201526b081dda195b881b1bd8dad95960a21b6064820152608401610cc8565b6000828152600b602052604090206003016115258282615011565b60168054612ca790614f45565b80601f0160208091040260200160405190810160405280929190818152602001828054612cd390614f45565b8015612d205780601f10612cf557610100808354040283529160200191612d20565b820191906000526020600020905b815481529060010190602001808311612d0357829003601f168201915b505050505081565b81612d3281613d95565b612d4e5760405162461bcd60e51b8152600401610cc890614eb6565b6000838152600c60205260409020600201548390632b2b404960e21b906001600160a01b0316331480612d875750612d87333083611a28565b612da35760405162461bcd60e51b8152600401610cc890614ee0565b838051600003612dc55760405162461bcd60e51b8152600401610cc890614f79565b6000868152600b60205260409020612ddc866143d9565b8154600160301b9081900462ffffff9081166000908152600985016020526040902080546001600160a01b0319166001600160a01b0394909416939093179092558254612e2e929190041660016152f3565b815462ffffff91909116600160301b0262ffffff60301b19909116179055505050505050565b60606121f26e47656e417274373231436f7265563360881b6141b4565b82612e7b81613d95565b612e975760405162461bcd60e51b8152600401610cc890614eb6565b6000848152600c6020526040902060020154849063b1656ba360e01b906001600160a01b0316331480612ed05750612ed0333083611a28565b612eec5760405162461bcd60e51b8152600401610cc890614ee0565b838051600003612f0e5760405162461bcd60e51b8152600401610cc890614f79565b6000878152600b602052604090208054600160301b900462ffffff168710612f705760405162461bcd60e51b81526020600482015260156024820152747363726970744964206f7574206f662072616e676560581b6044820152606401610cc8565b612f79866143d9565b6000978852600991909101602052604090962080546001600160a01b0319166001600160a01b0390971696909617909555505050505050565b6009546000908210612ffc5760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b6044820152606401610cc8565b6009828154811061300f5761300f6150ca565b6000918252602090912001546001600160a01b031692915050565b8161303481613d95565b6130505760405162461bcd60e51b8152600401610cc890614eb6565b6000838152600c60205260409020600201548390635bd827d760e11b906001600160a01b03163314806130895750613089333083611a28565b6130a55760405162461bcd60e51b8152600401610cc890614ee0565b8380516000036130c75760405162461bcd60e51b8152600401610cc890614f79565b6000868152600b602052604090206002016115e28682615011565b6130ec3383613fba565b6131085760405162461bcd60e51b8152600401610cc89061518b565b6120cb84848484614483565b6060808261312181613c13565b61313d5760405162461bcd60e51b8152600401610cc890614e60565b60408051600480825260a082019092529060208201608080368337505060408051600480825260a08201909252929550905060208201608080368337019050509150600061318a8561189f565b6000818152600c6020526040812080546001820154939450909260ff600160a01b92839004811693929091041690826131c48360646152e0565b6131ce91906152c9565b905060006131dc84846152c9565b60115460135491925090600084156132565760028801548c516001600160a01b03909116908d9083908110613213576132136150ca565b6001600160a01b0390921660209283029190910190910152848b82613237816150f6565b935081518110613249576132496150ca565b6020026020010181815250505b83156132c45760018801548c516001600160a01b03909116908d9083908110613281576132816150ca565b6001600160a01b0390921660209283029190910190910152838b826132a5816150f6565b9350815181106132b7576132b76150ca565b6020026020010181815250505b8215613330576010548c516001600160a01b03909116908d90839081106132ed576132ed6150ca565b6001600160a01b0390921660209283029190910190910152828b82613311816150f6565b935081518110613323576133236150ca565b6020026020010181815250505b811561339c576012548c516001600160a01b03909116908d9083908110613359576133596150ca565b6001600160a01b0390921660209283029190910190910152818b8261337d816150f6565b93508151811061338f5761338f6150ca565b6020026020010181815250505b80600411156133b75780600403808d51038d52808c51038c52505b50505050505050505050915091565b63bd3d10e760e01b6133d9333083611a28565b6133f55760405162461bcd60e51b8152600401610cc890614f15565b60646134018385615316565b111561344a5760405162461bcd60e51b81526020600482015260186024820152774d61782073756d206f66204f4e455f48554e44524544202560401b6044820152606401610cc8565b50600e805460ff938416600160a01b90810260ff60a01b1992831617909255600f8054939094169091029116179055565b6000828152600c602052604090206002015482906001600160a01b031633146134b65760405162461bcd60e51b8152600401610cc890614e91565b605f8211156135265760405162461bcd60e51b815260206004820152603660248201527f4d6178206f66204152544953545f4d41585f5345434f4e444152595f524f594160448201527513151657d4115490d153951051d1481c195c98d95b9d60521b6064820152608401610cc8565b506000918252600c6020526040909120805460ff909216600160a01b0260ff60a01b19909216919091179055565b60608161356081613c13565b61357c5760405162461bcd60e51b8152600401610cc890614e60565b6000600b600061358b8661189f565b815260200190815260200160002060060180546135a790614f45565b80601f01602080910402602001604051908101604052809291908181526020018280546135d390614f45565b80156136205780601f106135f557610100808354040283529160200191613620565b820191906000526020600020905b81548152906001019060200180831161360357829003601f168201915b5050505050905080613631856144b6565b604051602001613642929190615329565b6040516020818303038152906040529250505b50919050565b63cc90e72560e01b61366e333083611a28565b61368a5760405162461bcd60e51b8152600401610cc890614f15565b8280516000036136ac5760405162461bcd60e51b8152600401610cc890614f79565b826001600160a01b0381166136d35760405162461bcd60e51b8152600401610cc890615139565b601554600160f81b900460ff16156137265760405162461bcd60e51b81526020600482015260166024820152752732bb90383937b532b1ba39903337b93134b23232b760511b6044820152606401610cc8565b6015546001600160f81b03166000818152600c6020908152604080832060020180546001600160a01b0319166001600160a01b038a16179055600b90915290206001016137738782615011565b506000818152600b60205260409020805465ffffff00000060ff60901b011916613d09601e1b600160901b011781556006016137b0601682615358565b506137bc816001615424565b601580546001600160f81b0319166001600160f81b0392909216919091179055505050505050565b63340f0e4360e21b6137f7333083611a28565b6138135760405162461bcd60e51b8152600401610cc890614f15565b817f0000000000000000000000000000000000000000000000000000000000000000811015801561384e57506015546001600160f81b031681105b61386a5760405162461bcd60e51b8152600401610cc8906151d9565b50506000908152600b60205260409020805460ff60881b198116600160881b9182900460ff1615909102179055565b636d90d42360e11b6138ac333083611a28565b6138c85760405162461bcd60e51b8152600401610cc890614f15565b6127106138d58385615316565b111561393b5760405162461bcd60e51b815260206004820152602f60248201527f4d61782073756d206f66204d41585f50524f56494445525f5345434f4e44415260448201526e595f53414c45535f4250532042505360881b6064820152608401610cc8565b50601191909155601355565b8061395181613d95565b61396d5760405162461bcd60e51b8152600401610cc890614eb6565b6000828152600c6020526040902060020154829063db2ff86160e01b906001600160a01b03163314806139a657506139a6333083611a28565b6139c25760405162461bcd60e51b8152600401610cc890614ee0565b6000848152600b602052604090208054600160301b900462ffffff16613a2a5760405162461bcd60e51b815260206004820152601e60248201527f746865726520617265206e6f207363726970747320746f2072656d6f766500006044820152606401610cc8565b80546009820190600090613a4c90600190600160301b900462ffffff16615444565b62ffffff9081168252602082019290925260400160002080546001600160a01b0319169055815462ffffff60301b198116600160301b918290048316600019019092160217905550505050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6000818152600b60205260408120600781015460609283929091613aea906141b4565b9350806008018054613afb90614f45565b80601f0160208091040260200160405190810160405280929190818152602001828054613b2790614f45565b8015613b745780601f10613b4957610100808354040283529160200191613b74565b820191906000526020600020905b815481529060010190602001808311613b5757829003601f168201915b5050935496989297505050600160301b90940462ffffff169392505050565b613b9b61421f565b6001600160a01b038116613c005760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610cc8565b611359816145b6565b60006121f261284d565b6000908152600260205260409020546001600160a01b0316151590565b6000908152600b60205260409020805467ffffffffffffffff60481b1916600160481b426001600160401b031602179055565b6001600160a01b038216613cb95760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610cc8565b613cc281613c13565b15613d0e5760405162461bcd60e51b815260206004820152601c60248201527b115490cdcc8c4e881d1bdad95b88185b1c9958591e481b5a5b9d195960221b6044820152606401610cc8565b6001600160a01b0382166000908152600360205260408120805460019290613d37908490615316565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000817f00000000000000000000000000000000000000000000000000000000000000008110158015613dd257506015546001600160f81b031681105b613dee5760405162461bcd60e51b8152600401610cc8906151d9565b6000838152600b6020526040902054600160481b90046001600160401b031680158080613e2657506224ea00613e2483426152e0565b105b95945050505050565b60008060005b60208160ff161015613e8f576000868260ff1660208110613e5857613e586150ca565b1a90508015801590613e6d575060808160ff16105b15613e86578560ff168160ff1603613e86578260010192505b50600101613e35565b8360ff168260ff1614925050509392505050565b60006001600160e01b031982166380ac58cd60e01b1480613ed457506001600160e01b03198216635b5e139f60e01b145b806112ce57506301ffc9a760e01b6001600160e01b03198316146112ce565b601554600160f81b900460ff1661250457601580546001600160f81b0316600160f81b179055565b613f2481613c13565b6113595760405162461bcd60e51b8152600401610cc89061523f565b600081815260046020526040902080546001600160a01b0319166001600160a01b0384169081179091558190613f7582612259565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6016612bd88282615011565b600080613fc683612259565b9050806001600160a01b0316846001600160a01b03161480613fed5750613fed8185613a99565b80611acc5750836001600160a01b0316614006846113ee565b6001600160a01b031614949350505050565b826001600160a01b031661402b82612259565b6001600160a01b03161461408f5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610cc8565b6001600160a01b0382166140f15760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610cc8565b6140fc600082613f40565b6001600160a01b03831660009081526003602052604081208054600192906141259084906152e0565b90915550506001600160a01b0382166000908152600360205260408120805460019290614153908490615316565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b606060005b828160ff16602081106141ce576141ce6150ca565b1a60f81b6001600160f81b031916158015906141ed575060208160ff16105b1561420457806141fc81615460565b9150506141b9565b60405191506040820160405280825282602083015250919050565b3361422861284d565b6001600160a01b0316146125045760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610cc8565b61428661421f565b61250460006145b6565b604051630eacc5e760e31b815260609073__$55f4e50e6128becd8bf164b272db98df09$__906375662f38906142ca90859060040161489b565b600060405180830381865af41580156142e7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112ce919081019061547f565b816001600160a01b0316836001600160a01b03160361436c5760405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b6044820152606401610cc8565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6000807f42797465636f646553746f726167655f56312e302e305f5f5f5f5f5f5f5f5f203084604051602001614411939291906154ec565b60405160208183030381529060405290508051602082016000f091506001600160a01b0382166136555760405162461bcd60e51b815260206004820152601e60248201527f436f6e7472616374417353746f726167653a205772697465204572726f7200006044820152606401610cc8565b61448e848484614018565b61449a848484846145e1565b6120cb5760405162461bcd60e51b8152600401610cc89061554d565b6060816000036144dd5750506040805180820190915260018152600360fc1b602082015290565b8160005b811561450757806144f1816150f6565b91506145009050600a83615125565b91506144e1565b6000816001600160401b03811115614521576145216148db565b6040519080825280601f01601f19166020018201604052801561454b576020820181803683370190505b5090505b8415611acc576145606001836152e0565b915061456d600a8661559f565b614578906030615316565b60f81b81838151811061458d5761458d6150ca565b60200101906001600160f81b031916908160001a9053506145af600a86615125565b945061454f565b6145bf816146e2565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60006001600160a01b0384163b156146d757604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906146259033908990889088906004016155b3565b6020604051808303816000875af1925050508015614660575060408051601f3d908101601f1916820190925261465d918101906155f0565b60015b6146bd573d80801561468e576040519150601f19603f3d011682016040523d82523d6000602084013e614693565b606091505b5080516000036146b55760405162461bcd60e51b8152600401610cc89061554d565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611acc565b506001949350505050565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000806040838503121561474757600080fd5b50508035926020909101359150565b6001600160a01b038116811461135957600080fd5b60008060006060848603121561478057600080fd5b833561478b81614756565b92506020840135915060408401356147a281614756565b809150509250925092565b600080604083850312156147c057600080fd5b82359150602083013562ffffff811681146147da57600080fd5b809150509250929050565b6001600160e01b03198116811461135957600080fd5b60006020828403121561480d57600080fd5b8135614818816147e5565b9392505050565b60005b8381101561483a578181015183820152602001614822565b50506000910152565b6000815180845261485b81602086016020860161481f565b601f01601f19169290920160200192915050565b6020815260006148186020830184614843565b60006020828403121561489457600080fd5b5035919050565b6001600160a01b0391909116815260200190565b600080604083850312156148c257600080fd5b82356148cd81614756565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614919576149196148db565b604052919050565b60006001600160401b0382111561493a5761493a6148db565b50601f01601f191660200190565b600061495b61495684614921565b6148f1565b905082815283838301111561496f57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261499757600080fd5b61481883833560208501614948565b600080604083850312156149b957600080fd5b8235915060208301356001600160401b038111156149d657600080fd5b6149e285828601614986565b9150509250929050565b60008060008060808587031215614a0257600080fd5b8435614a0d81614756565b93506020850135614a1d81614756565b92506040850135614a2d81614756565b91506060850135614a3d81614756565b939692955090935050565b600060208284031215614a5a57600080fd5b81356001600160401b03811115614a7057600080fd5b611acc84828501614986565b600080600060608486031215614a9157600080fd5b8335614a9c81614756565b92506020840135614aac81614756565b915060408401356147a2816147e5565b600080600060608486031215614ad157600080fd5b8335614adc81614756565b92506020840135614aec81614756565b929592945050506040919091013590565b600060208284031215614b0f57600080fd5b813561481881614756565b60008060008060008060c08789031215614b3357600080fd5b863595506020870135614b4581614756565b94506040870135614b5581614756565b9350606087013592506080870135614b6c81614756565b8092505060a087013590509295509295509295565b60008060408385031215614b9457600080fd5b8235915060208301356147da81614756565b60a081526000614bb960a0830188614843565b8281036020840152614bcb8188614843565b90508281036040840152614bdf8187614843565b90508281036060840152614bf38186614843565b90508281036080840152614c078185614843565b98975050505050505050565b6001600160a01b031991909116815260200190565b801515811461135957600080fd5b60008060408385031215614c4957600080fd5b8235614c5481614756565b915060208301356147da81614c28565b600080600060608486031215614c7957600080fd5b833592506020840135915060408401356001600160401b03811115614c9d57600080fd5b614ca986828701614986565b9150509250925092565b60008060008060808587031215614cc957600080fd5b8435614cd481614756565b93506020850135614ce481614756565b92506040850135915060608501356001600160401b03811115614d0657600080fd5b8501601f81018713614d1757600080fd5b614d2687823560208401614948565b91505092959194509250565b604080825283519082018190526000906020906060840190828701845b82811015614d745781516001600160a01b031684529284019290840190600101614d4f565b5050508381038285015284518082528583019183019060005b81811015614da957835183529284019291840191600101614d8d565b5090979650505050505050565b60008060408385031215614dc957600080fd5b82356001600160401b03811115614ddf57600080fd5b614deb85828601614986565b92505060208301356147da81614756565b60008060408385031215614e0f57600080fd5b8235614e1a81614756565b915060208301356147da81614756565b606081526000614e3d6060830186614843565b8281036020840152614e4f8186614843565b915050826040830152949350505050565b602080825260179082015276151bdad95b88125108191bd95cc81b9bdd08195e1a5cdd604a1b604082015260600190565b6020808252600b908201526a13db9b1e48185c9d1a5cdd60aa1b604082015260600190565b60208082526010908201526f13db9b1e481a59881d5b9b1bd8dad95960821b604082015260600190565b6020808252818101527f4f6e6c7920617274697374206f722041646d696e2041434c20616c6c6f776564604082015260600190565b60208082526016908201527513db9b1e4810591b5a5b881050d308185b1b1bddd95960521b604082015260600190565b600181811c90821680614f5957607f821691505b60208210810361365557634e487b7160e01b600052602260045260246000fd5b6020808252601b908201527a4d75737420696e707574206e6f6e2d656d70747920737472696e6760281b604082015260600190565b601f82111561152557600081815260208120601f850160051c81016020861015614fd55750805b601f850160051c820191505b81811015614ff457828155600101614fe1565b505050505050565b600019600383901b1c191660019190911b1790565b81516001600160401b0381111561502a5761502a6148db565b61503e816150388454614f45565b84614fae565b602080601f83116001811461506d576000841561505b5750858301515b6150658582614ffc565b865550614ff4565b600085815260208120601f198616915b8281101561509c5788860151825594840194600190910190840161507d565b50858210156150ba5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201615108576151086150e0565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826151345761513461510f565b500490565b6020808252601b908201527a4d75737420696e707574206e6f6e2d7a65726f206164647265737360281b604082015260600190565b60006020828403121561518057600080fd5b815161481881614c28565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b602080825260199082015278141c9bda9958dd08125108191bd95cc81b9bdd08195e1a5cdd603a1b604082015260600190565b6001600160a01b039586168152938516602085015260408401929092529092166060820152608081019190915260a00190565b602080825260189082015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604082015260600190565b60208082526038908201527f4f6e6c792041646d696e2041434c20616c6c6f7765642c206f722061727469736040820152771d081a59881bdddb995c881a185cc81c995b9bdd5b98d95960421b606082015260800190565b80820281158282048414176112ce576112ce6150e0565b818103818111156112ce576112ce6150e0565b62ffffff81811683821601908082111561530f5761530f6150e0565b5092915050565b808201808211156112ce576112ce6150e0565b6000835161533b81846020880161481f565b83519083019061534f81836020880161481f565b01949350505050565b818103615363575050565b61536d8254614f45565b6001600160401b03811115615384576153846148db565b615392816150388454614f45565b6000601f8211600181146153c057600083156153ae5750848201545b6153b88482614ffc565b8555506111b4565b600085815260209020601f19841690600086815260209020845b838110156153fa57828601548255600195860195909101906020016153da565b50858310156150ba5793015460001960f8600387901b161c19169092555050600190811b01905550565b6001600160f81b0381811683821601908082111561530f5761530f6150e0565b62ffffff82811682821603908082111561530f5761530f6150e0565b600060ff821660ff8103615476576154766150e0565b60010192915050565b60006020828403121561549157600080fd5b81516001600160401b038111156154a757600080fd5b8201601f810184136154b857600080fd5b80516154c661495682614921565b8181528560208385010111156154db57600080fd5b613e2682602083016020860161481f565b6a600b5981380380925939f360a81b8152607f60f91b600b820152600c81018490526000602c8201819052606084901b6001600160601b0319166038830152825161553e81604c85016020870161481f565b91909101604c01949350505050565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6000826155ae576155ae61510f565b500690565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906155e690830184614843565b9695505050505050565b60006020828403121561560257600080fd5b8151614818816147e556fea2646970667358221220b0ca9dfc5b2101672385d790aaf5e096669a5b3b5b6fc379b08f1a220f23373964736f6c63430008130033",
|
|
1810
1810
|
"linkReferences": {
|
|
1811
1811
|
"contracts/libs/v0.8.x/BytecodeStorageV1.sol": {
|
|
1812
1812
|
"BytecodeStorageReader": [
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_format": "hh-sol-artifact-1",
|
|
3
|
+
"contractName": "ImmutableUint16ArrayMock",
|
|
4
|
+
"sourceName": "contracts/mock/ImmutableUint16ArrayMock.sol",
|
|
5
|
+
"abi": [
|
|
6
|
+
{
|
|
7
|
+
"inputs": [],
|
|
8
|
+
"name": "clear",
|
|
9
|
+
"outputs": [],
|
|
10
|
+
"stateMutability": "nonpayable",
|
|
11
|
+
"type": "function"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"inputs": [
|
|
15
|
+
{
|
|
16
|
+
"internalType": "uint256",
|
|
17
|
+
"name": "index",
|
|
18
|
+
"type": "uint256"
|
|
19
|
+
}
|
|
20
|
+
],
|
|
21
|
+
"name": "get",
|
|
22
|
+
"outputs": [
|
|
23
|
+
{
|
|
24
|
+
"internalType": "uint16",
|
|
25
|
+
"name": "",
|
|
26
|
+
"type": "uint16"
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"stateMutability": "view",
|
|
30
|
+
"type": "function"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"inputs": [],
|
|
34
|
+
"name": "getAll",
|
|
35
|
+
"outputs": [
|
|
36
|
+
{
|
|
37
|
+
"internalType": "uint16[]",
|
|
38
|
+
"name": "",
|
|
39
|
+
"type": "uint16[]"
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
"stateMutability": "view",
|
|
43
|
+
"type": "function"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"inputs": [],
|
|
47
|
+
"name": "isEmpty",
|
|
48
|
+
"outputs": [
|
|
49
|
+
{
|
|
50
|
+
"internalType": "bool",
|
|
51
|
+
"name": "",
|
|
52
|
+
"type": "bool"
|
|
53
|
+
}
|
|
54
|
+
],
|
|
55
|
+
"stateMutability": "view",
|
|
56
|
+
"type": "function"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"inputs": [],
|
|
60
|
+
"name": "length",
|
|
61
|
+
"outputs": [
|
|
62
|
+
{
|
|
63
|
+
"internalType": "uint256",
|
|
64
|
+
"name": "",
|
|
65
|
+
"type": "uint256"
|
|
66
|
+
}
|
|
67
|
+
],
|
|
68
|
+
"stateMutability": "view",
|
|
69
|
+
"type": "function"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"inputs": [
|
|
73
|
+
{
|
|
74
|
+
"internalType": "uint16[]",
|
|
75
|
+
"name": "values",
|
|
76
|
+
"type": "uint16[]"
|
|
77
|
+
}
|
|
78
|
+
],
|
|
79
|
+
"name": "store",
|
|
80
|
+
"outputs": [],
|
|
81
|
+
"stateMutability": "nonpayable",
|
|
82
|
+
"type": "function"
|
|
83
|
+
}
|
|
84
|
+
],
|
|
85
|
+
"bytecode": "0x608060405234801561001057600080fd5b50610833806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80631f7b6d32146100675780634567a09c1461008257806352efea6e1461009757806353ed51431461009f578063681fe70c146100b45780639507d39a146100d0575b600080fd5b61006f6100f6565b6040519081526020015b60405180910390f35b6100956100903660046105d8565b610107565b005b610095610115565b6100a761012c565b604051610079919061069c565b6000546040516001600160a01b03909116158152602001610079565b6100e36100de3660046106e4565b610138565b60405161ffff9091168152602001610079565b6000610102600061014a565b905090565b610112600082610189565b50565b61012a600080546001600160a01b0319169055565b565b6060610102600061036e565b6000610144818361042e565b92915050565b80546000906001600160a01b031661016457506000919050565b815460009061017b906001600160a01b03166104c2565b6020015160c01c9392505050565b805160008190036101a657505080546001600160a01b0319169055565b61ffff81111561020d5760405162461bcd60e51b815260206004820152602760248201527f546f74616c206279746573206c656e67746820657863656564732075696e74316044820152660d881b1a5b5a5d60ca1b60648201526084015b60405180910390fd5b600061021a826002610713565b9050600061022982600861072a565b9050600061023882602061072a565b6001600160401b0381111561024f5761024f6105ab565b6040519080825280601f01601f191660200182016040528015610279576020820181803683370190505b5060c085901b602082015290506028810160005b8581101561033b576000866102a383601061072a565b106102ae57866102b9565b6102b982601061072a565b90506000805b6102c9848461073d565b81101561031f576102db816010610713565b6102e69060f061073d565b8a6102f1838761072a565b8151811061030157610301610750565b602090810291909101015161ffff16901b91909117906001016102bf565b5083525060209091019061033460108261072a565b905061028d565b50508181528061034a816104e3565b87546001600160a01b0319166001600160a01b039190911617909655505050505050565b80546060906001600160a01b031661039457505060408051600081526020810190915290565b81546000906103ab906001600160a01b03166104c2565b602081015190915060c01c806001600160401b038111156103ce576103ce6105ab565b6040519080825280602002602001820160405280156103f7578160200160208202803683370190505b5092506028820160005b8281101561042557815160f01c602082810287010152600290910190600101610401565b50505050919050565b81546000906001600160a01b03166104585760405162461bcd60e51b815260040161020490610766565b825460009061046f906001600160a01b03166104c2565b602081015190915060c01c8084106104995760405162461bcd60e51b815260040161020490610766565b60006104a6856002610713565b6104b190602861072a565b929092015160f01c95945050505050565b60606101448260016104de816001600160a01b0384163b61073d565b610588565b600080826040516020016104f791906107c3565b604051602081830303815290604052905060008160405160200161051b91906107dd565b60405160208183030381529060405290508051602082016000f092506001600160a01b0383166105815760405162461bcd60e51b81526020600482015260116024820152701111541313d65351539517d19052531151607a1b6044820152606401610204565b5050919050565b60408051603f8301601f19168101909152818152818360208301863c9392505050565b634e487b7160e01b600052604160045260246000fd5b803561ffff811681146105d357600080fd5b919050565b600060208083850312156105eb57600080fd5b82356001600160401b038082111561060257600080fd5b818501915085601f83011261061657600080fd5b813581811115610628576106286105ab565b8060051b604051601f19603f8301168101818110858211171561064d5761064d6105ab565b60405291825284820192508381018501918883111561066b57600080fd5b938501935b8285101561069057610681856105c1565b84529385019392850192610670565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b818110156106d857835161ffff16835292840192918401916001016106b8565b50909695505050505050565b6000602082840312156106f657600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610144576101446106fd565b80820180821115610144576101446106fd565b81810381811115610144576101446106fd565b634e487b7160e01b600052603260045260246000fd5b602080825260139082015272496e646578206f7574206f6620626f756e647360681b604082015260600190565b6000815160005b818110156107b4576020818501810151868301520161079a565b50600093019283525090919050565b6000815260006107d66001830184610793565b9392505050565b6a600b5981380380925939f360a81b815260006107d6600b83018461079356fea26469706673582212209e17941067378b52a041ab01d17e06db0216b6142fb549b608f1eb356221de6664736f6c63430008160033",
|
|
86
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c80631f7b6d32146100675780634567a09c1461008257806352efea6e1461009757806353ed51431461009f578063681fe70c146100b45780639507d39a146100d0575b600080fd5b61006f6100f6565b6040519081526020015b60405180910390f35b6100956100903660046105d8565b610107565b005b610095610115565b6100a761012c565b604051610079919061069c565b6000546040516001600160a01b03909116158152602001610079565b6100e36100de3660046106e4565b610138565b60405161ffff9091168152602001610079565b6000610102600061014a565b905090565b610112600082610189565b50565b61012a600080546001600160a01b0319169055565b565b6060610102600061036e565b6000610144818361042e565b92915050565b80546000906001600160a01b031661016457506000919050565b815460009061017b906001600160a01b03166104c2565b6020015160c01c9392505050565b805160008190036101a657505080546001600160a01b0319169055565b61ffff81111561020d5760405162461bcd60e51b815260206004820152602760248201527f546f74616c206279746573206c656e67746820657863656564732075696e74316044820152660d881b1a5b5a5d60ca1b60648201526084015b60405180910390fd5b600061021a826002610713565b9050600061022982600861072a565b9050600061023882602061072a565b6001600160401b0381111561024f5761024f6105ab565b6040519080825280601f01601f191660200182016040528015610279576020820181803683370190505b5060c085901b602082015290506028810160005b8581101561033b576000866102a383601061072a565b106102ae57866102b9565b6102b982601061072a565b90506000805b6102c9848461073d565b81101561031f576102db816010610713565b6102e69060f061073d565b8a6102f1838761072a565b8151811061030157610301610750565b602090810291909101015161ffff16901b91909117906001016102bf565b5083525060209091019061033460108261072a565b905061028d565b50508181528061034a816104e3565b87546001600160a01b0319166001600160a01b039190911617909655505050505050565b80546060906001600160a01b031661039457505060408051600081526020810190915290565b81546000906103ab906001600160a01b03166104c2565b602081015190915060c01c806001600160401b038111156103ce576103ce6105ab565b6040519080825280602002602001820160405280156103f7578160200160208202803683370190505b5092506028820160005b8281101561042557815160f01c602082810287010152600290910190600101610401565b50505050919050565b81546000906001600160a01b03166104585760405162461bcd60e51b815260040161020490610766565b825460009061046f906001600160a01b03166104c2565b602081015190915060c01c8084106104995760405162461bcd60e51b815260040161020490610766565b60006104a6856002610713565b6104b190602861072a565b929092015160f01c95945050505050565b60606101448260016104de816001600160a01b0384163b61073d565b610588565b600080826040516020016104f791906107c3565b604051602081830303815290604052905060008160405160200161051b91906107dd565b60405160208183030381529060405290508051602082016000f092506001600160a01b0383166105815760405162461bcd60e51b81526020600482015260116024820152701111541313d65351539517d19052531151607a1b6044820152606401610204565b5050919050565b60408051603f8301601f19168101909152818152818360208301863c9392505050565b634e487b7160e01b600052604160045260246000fd5b803561ffff811681146105d357600080fd5b919050565b600060208083850312156105eb57600080fd5b82356001600160401b038082111561060257600080fd5b818501915085601f83011261061657600080fd5b813581811115610628576106286105ab565b8060051b604051601f19603f8301168101818110858211171561064d5761064d6105ab565b60405291825284820192508381018501918883111561066b57600080fd5b938501935b8285101561069057610681856105c1565b84529385019392850192610670565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b818110156106d857835161ffff16835292840192918401916001016106b8565b50909695505050505050565b6000602082840312156106f657600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610144576101446106fd565b80820180821115610144576101446106fd565b81810381811115610144576101446106fd565b634e487b7160e01b600052603260045260246000fd5b602080825260139082015272496e646578206f7574206f6620626f756e647360681b604082015260600190565b6000815160005b818110156107b4576020818501810151868301520161079a565b50600093019283525090919050565b6000815260006107d66001830184610793565b9392505050565b6a600b5981380380925939f360a81b815260006107d6600b83018461079356fea26469706673582212209e17941067378b52a041ab01d17e06db0216b6142fb549b608f1eb356221de6664736f6c63430008160033",
|
|
87
|
+
"linkReferences": {},
|
|
88
|
+
"deployedLinkReferences": {}
|
|
89
|
+
}
|