MATIC Price: $0.360027 (-20.42%)
 

Overview

Max Total Supply

360,588,647,617 MNEP

Holders

13,967,102 (0.00%)

Market

Price

$0.00 @ 0.000000 MATIC

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
300,000 MNEP

Value
$0.00
0x9bed1adbf31d4c6517a78b157b0648bd7c696a36
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Minereum is a self-mining smart contract on the Polygon chain.

Contract Source Code Verified (Exact Match)

Contract Name:
Minereum

Compiler Version
v0.6.0+commit.26b70077

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2021-09-17
*/

pragma solidity ^0.6.0;

interface publicCalls {
  function GenesisDestroyAmountCount (  ) external view returns ( uint256 );
  function GenesisDestroyAmountCountSet ( uint256 _GenesisDestroyAmountCount ) external;
  function GenesisDestroyCountStake (  ) external view returns ( uint256 );
  function GenesisDestroyCountStakeSet ( uint256 _GenesisDestroyCountStake ) external;
  function GenesisDestroyed (  ) external view returns ( uint256 );
  function GenesisDestroyedSet ( uint256 _GenesisDestroyed ) external;
  function NormalAddressBuyPricePerMNE ( address ) external view returns ( uint256 );
  function NormalAddressBuyPricePerMNESet ( address _address, uint256 _NormalAddressBuyPricePerMNE ) external;
  function NormalAddressFeeCount (  ) external view returns ( uint256 );
  function NormalAddressFeeCountSet ( uint256 _NormalAddressFeeCount ) external;
  function NormalAddressSalesCount (  ) external view returns ( uint256 );
  function NormalAddressSalesCountSet ( uint256 _NormalAddressSalesCount ) external;
  function NormalAddressSalesPriceCount (  ) external view returns ( uint256 );
  function NormalAddressSalesPriceCountSet ( uint256 _NormalAddressSalesPriceCount ) external;
  function NormalBalanceImported (  ) external view returns ( uint256 );
  function NormalBalanceImportedSet ( uint256 _NormalBalanceImported ) external;
  function NormalImportedAmountCount (  ) external view returns ( uint256 );
  function NormalImportedAmountCountSet ( uint256 _NormalImportedAmountCount ) external;
  function allowAddressToDestroyGenesis ( address ) external view returns ( address );
  function allowAddressToDestroyGenesisSet ( address _address, address _allowAddressToDestroyGenesis ) external;
  function allowReceiveGenesisTransfers ( address ) external view returns ( bool );
  function allowReceiveGenesisTransfersSet ( address _address, bool _allowReceiveGenesisTransfers ) external;
  function allowed ( address, address ) external view returns ( uint256 );
  function allowedSet ( address _address, address _spender, uint256 _amount ) external;
  function amountOfGenesisToBuyStakes (  ) external view returns ( uint256 );
  function amountOfGenesisToBuyStakesSet ( address _from, uint256 _amountOfGenesisToBuyStakes ) external;
  function amountOfGenesisToTransferStakes (  ) external view returns ( uint256 );
  function amountOfGenesisToTransferStakesSet ( address _from, uint256 _amountOfGenesisToTransferStakes ) external;
  function amountOfMNEForToken (  ) external view returns ( uint256 );
  function amountOfMNEForTokenICO (  ) external view returns ( uint256 );
  function amountOfMNEForTokenICOSet ( address _from, uint256 _amountOfMNEForTokenICO ) external;
  function amountOfMNEForTokenSet ( address _from, uint256 _amountOfMNEForToken ) external;
  function amountOfMNEToBuyStakes (  ) external view returns ( uint256 );
  function amountOfMNEToBuyStakesSet ( address _from, uint256 _amountOfMNEToBuyStakes ) external;
  function amountOfMNEToTransferStakes (  ) external view returns ( uint256 );
  function amountOfMNEToTransferStakesSet ( address _from, uint256 _amountOfMNEToTransferStakes ) external;
  function availableBalance (  ) external view returns ( uint256 );
  function availableBalanceSet ( uint256 _availableBalance ) external;
  function balances ( address ) external view returns ( uint256 );
  function balancesSet ( address _address, uint256 _balances ) external;
  function buyStakeGenesisCount (  ) external view returns ( uint256 );
  function buyStakeGenesisCountSet ( uint256 _buyStakeGenesisCount ) external;
  function buyStakeMNECount (  ) external view returns ( uint256 );
  function buyStakeMNECountSet ( uint256 _buyStakeMNECount ) external;
  function ethFeeForSellerLevel1 (  ) external view returns ( uint256 );
  function ethFeeForSellerLevel1Set ( address _from, uint256 _ethFeeForSellerLevel1 ) external;
  function ethFeeForToken (  ) external view returns ( uint256 );
  function ethFeeForTokenICO (  ) external view returns ( uint256 );
  function ethFeeForTokenICOSet ( address _from, uint256 _ethFeeForTokenICO ) external;
  function ethFeeForTokenSet ( address _from, uint256 _ethFeeForToken ) external;
  function ethFeeToBuyLevel1 (  ) external view returns ( uint256 );
  function ethFeeToBuyLevel1Set ( address _from, uint256 _ethFeeToBuyLevel1 ) external;
  function ethFeeToUpgradeToLevel2 (  ) external view returns ( uint256 );
  function ethFeeToUpgradeToLevel2Set ( address _from, uint256 _ethFeeToUpgradeToLevel2 ) external;
  function ethFeeToUpgradeToLevel3 (  ) external view returns ( uint256 );
  function ethFeeToUpgradeToLevel3Set ( address _from, uint256 _ethFeeToUpgradeToLevel3 ) external;
  function ethPercentFeeGenesisExchange (  ) external view returns ( uint256 );
  function ethPercentFeeGenesisExchangeSet ( address _from, uint256 _ethPercentFeeGenesisExchange ) external;
  function ethPercentFeeNormalExchange (  ) external view returns ( uint256 );
  function ethPercentFeeNormalExchangeSet ( address _from, uint256 _ethPercentFeeNormalExchange ) external;
  function ethPercentStakeExchange (  ) external view returns ( uint256 );
  function ethPercentStakeExchangeSet ( address _from, uint256 _ethPercentStakeExchange ) external;
  function genesisAddressCount (  ) external view returns ( uint256 );
  function genesisAddressCountSet ( uint256 _genesisAddressCount ) external;
  function genesisAddressesForSaleLevel1Index ( address ) external view returns ( uint256 );
  function genesisAddressesForSaleLevel1IndexSet ( address _address, uint256 _genesisAddressesForSaleLevel1Index ) external;
  function genesisAddressesForSaleLevel2Index ( address ) external view returns ( uint256 );
  function genesisAddressesForSaleLevel2IndexSet ( address _address, uint256 _genesisAddressesForSaleLevel2Index ) external;
  function genesisAddressesForSaleLevel3Index ( address ) external view returns ( uint256 );
  function genesisAddressesForSaleLevel3IndexSet ( address _address, uint256 _genesisAddressesForSaleLevel3Index ) external;
  function genesisBuyPrice ( address ) external view returns ( uint256 );
  function genesisBuyPriceSet ( address _address, uint256 _genesisBuyPrice ) external;
  function genesisCallerAddress (  ) external view returns ( address );
  function genesisCallerAddressSet ( address _genesisCallerAddress ) external;
  function genesisInitialSupply ( address ) external view returns ( uint256 );
  function genesisInitialSupplySet ( address _address, uint256 _genesisInitialSupply ) external;
  function genesisRewardPerBlock (  ) external view returns ( uint256 );
  function genesisSalesCount (  ) external view returns ( uint256 );
  function genesisSalesCountSet ( uint256 _genesisSalesCount ) external;
  function genesisSalesPriceCount (  ) external view returns ( uint256 );
  function genesisSalesPriceCountSet ( uint256 _genesisSalesPriceCount ) external;
  function genesisSupplyPerAddress (  ) external view returns ( uint256 );
  function genesisTransfersCount (  ) external view returns ( uint256 );
  function genesisTransfersCountSet ( uint256 _genesisTransfersCount ) external;
  function initialBlockCount (  ) external view returns ( uint256 );
  function initialBlockCountPerAddress ( address ) external view returns ( uint256 );
  function initialBlockCountPerAddressSet ( address _address, uint256 _initialBlockCountPerAddress ) external;
  function initialBlockCountSet ( uint256 _initialBlockCount ) external;
  function isGenesisAddress ( address ) external view returns ( uint8 );
  function isGenesisAddressForSale ( address ) external view returns ( bool );
  function isGenesisAddressForSaleSet ( address _address, bool _isGenesisAddressForSale ) external;
  function isGenesisAddressSet ( address _address, uint8 _isGenesisAddress ) external;
  function isNormalAddressForSale ( address ) external view returns ( bool );
  function isNormalAddressForSaleSet ( address _address, bool _isNormalAddressForSale ) external;
  function level2ActivationsFromLevel1Count (  ) external view returns ( uint256 );
  function level2ActivationsFromLevel1CountSet ( uint256 _level2ActivationsFromLevel1Count ) external;
  function level3ActivationsFromDevCount (  ) external view returns ( uint256 );
  function level3ActivationsFromDevCountSet ( uint256 _level3ActivationsFromDevCount ) external;
  function level3ActivationsFromLevel1Count (  ) external view returns ( uint256 );
  function level3ActivationsFromLevel1CountSet ( uint256 _level3ActivationsFromLevel1Count ) external;
  function level3ActivationsFromLevel2Count (  ) external view returns ( uint256 );
  function level3ActivationsFromLevel2CountSet ( uint256 _level3ActivationsFromLevel2Count ) external;
  function maxBlocks (  ) external view returns ( uint256 );
  function mneBurned (  ) external view returns ( uint256 );
  function mneBurnedSet ( uint256 _mneBurned ) external;
  function normalAddressesForSaleIndex ( address ) external view returns ( uint256 );
  function normalAddressesForSaleIndexSet ( address _address, uint256 _normalAddressesForSaleIndex ) external;
  function overallSupply (  ) external view returns ( uint256 );
  function overallSupplySet ( uint256 _overallSupply ) external;
  function ownerGenesis (  ) external view returns ( address );
  function ownerGenesisBuys (  ) external view returns ( address );
  function ownerMain (  ) external view returns ( address );
  function ownerNormalAddress (  ) external view returns ( address );
  function ownerStakeBuys (  ) external view returns ( address );
  function ownerStakes (  ) external view returns ( address );
  function ownerTokenService (  ) external view returns ( address );
  function setOwnerGenesis (  ) external;
  function setOwnerGenesisBuys (  ) external;
  function setOwnerMain (  ) external;
  function setOwnerNormalAddress (  ) external;
  function setOwnerStakeBuys (  ) external;
  function setOwnerStakes (  ) external;
  function setOwnerTokenService (  ) external;
  function setupRunning (  ) external view returns ( bool );
  function setupRunningSet ( bool _setupRunning ) external;
  function stakeBalances ( address ) external view returns ( uint256 );
  function stakeBalancesSet ( address _address, uint256 _stakeBalances ) external;
  function stakeBuyPrice ( address ) external view returns ( uint256 );
  function stakeBuyPriceSet ( address _address, uint256 _stakeBuyPrice ) external;
  function stakeDecimals (  ) external view returns ( uint256 );
  function stakeDecimalsSet ( address _from, uint256 _stakeDecimals ) external;
  function stakeHoldersImported (  ) external view returns ( uint256 );
  function stakeHoldersImportedSet ( uint256 _stakeHoldersImported ) external;
  function stakeHoldersListIndex ( address ) external view returns ( uint256 );
  function stakeHoldersListIndexSet ( address _address, uint256 _stakeHoldersListIndex ) external;
  function stakeMneBurnCount (  ) external view returns ( uint256 );
  function stakeMneBurnCountSet ( uint256 _stakeMneBurnCount ) external;
  function stakeMneTransferBurnCount (  ) external view returns ( uint256 );
  function stakeMneTransferBurnCountSet ( uint256 _stakeMneTransferBurnCount ) external;
  function stakesForSaleIndex ( address ) external view returns ( uint256 );
  function stakesForSaleIndexSet ( address _address, uint256 _stakesForSaleIndex ) external;
  function tokenCreated ( address, uint256 ) external view returns ( address );
  function tokenCreatedSet ( address _address, address _tokenCreated ) external;
  function tokenICOCreated ( address, uint256 ) external view returns ( address );
  function tokenICOCreatedSet ( address _address, address _tokenICOCreated ) external;
  function totalMaxAvailableAmount (  ) external view returns ( uint256 );
  function totalMaxAvailableAmountSet ( uint256 _totalMaxAvailableAmount ) external;
  function totalPaidStakeHolders (  ) external view returns ( uint256 );
  function totalPaidStakeHoldersSet ( uint256 _totalPaidStakeHolders ) external;
  function transferStakeGenesisCount (  ) external view returns ( uint256 );
  function transferStakeGenesisCountSet ( uint256 _transferStakeGenesisCount ) external;
  function transferStakeMNECount (  ) external view returns ( uint256 );
  function transferStakeMNECountSet ( uint256 _transferStakeMNECount ) external;
}

interface publicArrays {  
  function Level1TradeHistoryAmountETH ( uint256 ) external view returns ( uint256 );
  function Level1TradeHistoryAmountETHFee ( uint256 ) external view returns ( uint256 );
  function Level1TradeHistoryAmountETHFeeLength (  ) external view returns ( uint256 len );
  function Level1TradeHistoryAmountETHFeeSet ( uint256 _Level1TradeHistoryAmountETHFee ) external;
  function Level1TradeHistoryAmountETHLength (  ) external view returns ( uint256 len );
  function Level1TradeHistoryAmountETHSet ( uint256 _Level1TradeHistoryAmountETH ) external;
  function Level1TradeHistoryAmountMNE ( uint256 ) external view returns ( uint256 );
  function Level1TradeHistoryAmountMNELength (  ) external view returns ( uint256 len );
  function Level1TradeHistoryAmountMNESet ( uint256 _Level1TradeHistoryAmountMNE ) external;
  function Level1TradeHistoryBuyer ( uint256 ) external view returns ( address );
  function Level1TradeHistoryBuyerLength (  ) external view returns ( uint256 len );
  function Level1TradeHistoryBuyerSet ( address _Level1TradeHistoryBuyer ) external;
  function Level1TradeHistoryDate ( uint256 ) external view returns ( uint256 );
  function Level1TradeHistoryDateLength (  ) external view returns ( uint256 len );
  function Level1TradeHistoryDateSet ( uint256 _Level1TradeHistoryDate ) external;
  function Level1TradeHistorySeller ( uint256 ) external view returns ( address );
  function Level1TradeHistorySellerLength (  ) external view returns ( uint256 len );
  function Level1TradeHistorySellerSet ( address _Level1TradeHistorySeller ) external;
  function Level2TradeHistoryAmountETH ( uint256 ) external view returns ( uint256 );
  function Level2TradeHistoryAmountETHFee ( uint256 ) external view returns ( uint256 );
  function Level2TradeHistoryAmountETHFeeLength (  ) external view returns ( uint256 len );
  function Level2TradeHistoryAmountETHFeeSet ( uint256 _Level2TradeHistoryAmountETHFee ) external;
  function Level2TradeHistoryAmountETHLength (  ) external view returns ( uint256 len );
  function Level2TradeHistoryAmountETHSet ( uint256 _Level2TradeHistoryAmountETH ) external;
  function Level2TradeHistoryAmountMNE ( uint256 ) external view returns ( uint256 );
  function Level2TradeHistoryAmountMNELength (  ) external view returns ( uint256 len );
  function Level2TradeHistoryAmountMNESet ( uint256 _Level2TradeHistoryAmountMNE ) external;
  function Level2TradeHistoryAvailableAmountMNE ( uint256 ) external view returns ( uint256 );
  function Level2TradeHistoryAvailableAmountMNELength (  ) external view returns ( uint256 len );
  function Level2TradeHistoryAvailableAmountMNESet ( uint256 _Level2TradeHistoryAvailableAmountMNE ) external;
  function Level2TradeHistoryBuyer ( uint256 ) external view returns ( address );
  function Level2TradeHistoryBuyerLength (  ) external view returns ( uint256 len );
  function Level2TradeHistoryBuyerSet ( address _Level2TradeHistoryBuyer ) external;
  function Level2TradeHistoryDate ( uint256 ) external view returns ( uint256 );
  function Level2TradeHistoryDateLength (  ) external view returns ( uint256 len );
  function Level2TradeHistoryDateSet ( uint256 _Level2TradeHistoryDate ) external;
  function Level2TradeHistorySeller ( uint256 ) external view returns ( address );
  function Level2TradeHistorySellerLength (  ) external view returns ( uint256 len );
  function Level2TradeHistorySellerSet ( address _Level2TradeHistorySeller ) external;
  function Level3TradeHistoryAmountETH ( uint256 ) external view returns ( uint256 );
  function Level3TradeHistoryAmountETHFee ( uint256 ) external view returns ( uint256 );
  function Level3TradeHistoryAmountETHFeeLength (  ) external view returns ( uint256 len );
  function Level3TradeHistoryAmountETHFeeSet ( uint256 _Level3TradeHistoryAmountETHFee ) external;
  function Level3TradeHistoryAmountETHLength (  ) external view returns ( uint256 len );
  function Level3TradeHistoryAmountETHSet ( uint256 _Level3TradeHistoryAmountETH ) external;
  function Level3TradeHistoryAmountMNE ( uint256 ) external view returns ( uint256 );
  function Level3TradeHistoryAmountMNELength (  ) external view returns ( uint256 len );
  function Level3TradeHistoryAmountMNESet ( uint256 _Level3TradeHistoryAmountMNE ) external;
  function Level3TradeHistoryAvailableAmountMNE ( uint256 ) external view returns ( uint256 );
  function Level3TradeHistoryAvailableAmountMNELength (  ) external view returns ( uint256 len );
  function Level3TradeHistoryAvailableAmountMNESet ( uint256 _Level3TradeHistoryAvailableAmountMNE ) external;
  function Level3TradeHistoryBuyer ( uint256 ) external view returns ( address );
  function Level3TradeHistoryBuyerLength (  ) external view returns ( uint256 len );
  function Level3TradeHistoryBuyerSet ( address _Level3TradeHistoryBuyer ) external;
  function Level3TradeHistoryDate ( uint256 ) external view returns ( uint256 );
  function Level3TradeHistoryDateLength (  ) external view returns ( uint256 len );
  function Level3TradeHistoryDateSet ( uint256 _Level3TradeHistoryDate ) external;
  function Level3TradeHistorySeller ( uint256 ) external view returns ( address );
  function Level3TradeHistorySellerLength (  ) external view returns ( uint256 len );
  function Level3TradeHistorySellerSet ( address _Level3TradeHistorySeller ) external;
  function MNETradeHistoryAmountETH ( uint256 ) external view returns ( uint256 );
  function MNETradeHistoryAmountETHFee ( uint256 ) external view returns ( uint256 );
  function MNETradeHistoryAmountETHFeeLength (  ) external view returns ( uint256 len );
  function MNETradeHistoryAmountETHFeeSet ( uint256 _MNETradeHistoryAmountETHFee ) external;
  function MNETradeHistoryAmountETHLength (  ) external view returns ( uint256 len );
  function MNETradeHistoryAmountETHSet ( uint256 _MNETradeHistoryAmountETH ) external;
  function MNETradeHistoryAmountMNE ( uint256 ) external view returns ( uint256 );
  function MNETradeHistoryAmountMNELength (  ) external view returns ( uint256 len );
  function MNETradeHistoryAmountMNESet ( uint256 _MNETradeHistoryAmountMNE ) external;
  function MNETradeHistoryBuyer ( uint256 ) external view returns ( address );
  function MNETradeHistoryBuyerLength (  ) external view returns ( uint256 len );
  function MNETradeHistoryBuyerSet ( address _MNETradeHistoryBuyer ) external;
  function MNETradeHistoryDate ( uint256 ) external view returns ( uint256 );
  function MNETradeHistoryDateLength (  ) external view returns ( uint256 len );
  function MNETradeHistoryDateSet ( uint256 _MNETradeHistoryDate ) external;
  function MNETradeHistorySeller ( uint256 ) external view returns ( address );
  function MNETradeHistorySellerLength (  ) external view returns ( uint256 len );
  function MNETradeHistorySellerSet ( address _MNETradeHistorySeller ) external;
  function StakeTradeHistoryBuyer ( uint256 ) external view returns ( address );
  function StakeTradeHistoryBuyerLength (  ) external view returns ( uint256 len );
  function StakeTradeHistoryBuyerSet ( address _StakeTradeHistoryBuyer ) external;
  function StakeTradeHistoryDate ( uint256 ) external view returns ( uint256 );
  function StakeTradeHistoryDateLength (  ) external view returns ( uint256 len );
  function StakeTradeHistoryDateSet ( uint256 _StakeTradeHistoryDate ) external;
  function StakeTradeHistoryETHFee ( uint256 ) external view returns ( uint256 );
  function StakeTradeHistoryETHFeeLength (  ) external view returns ( uint256 len );
  function StakeTradeHistoryETHFeeSet ( uint256 _StakeTradeHistoryETHFee ) external;
  function StakeTradeHistoryETHPrice ( uint256 ) external view returns ( uint256 );
  function StakeTradeHistoryETHPriceLength (  ) external view returns ( uint256 len );
  function StakeTradeHistoryETHPriceSet ( uint256 _StakeTradeHistoryETHPrice ) external;
  function StakeTradeHistoryMNEGenesisBurned ( uint256 ) external view returns ( uint256 );
  function StakeTradeHistoryMNEGenesisBurnedLength (  ) external view returns ( uint256 len );
  function StakeTradeHistoryMNEGenesisBurnedSet ( uint256 _StakeTradeHistoryMNEGenesisBurned ) external;
  function StakeTradeHistorySeller ( uint256 ) external view returns ( address );
  function StakeTradeHistorySellerLength (  ) external view returns ( uint256 len );
  function StakeTradeHistorySellerSet ( address _StakeTradeHistorySeller ) external;
  function StakeTradeHistoryStakeAmount ( uint256 ) external view returns ( uint256 );
  function StakeTradeHistoryStakeAmountLength (  ) external view returns ( uint256 len );
  function StakeTradeHistoryStakeAmountSet ( uint256 _StakeTradeHistoryStakeAmount ) external;
  function deleteGenesisAddressesForSaleLevel1 (  ) external;
  function deleteGenesisAddressesForSaleLevel2 (  ) external;
  function deleteGenesisAddressesForSaleLevel3 (  ) external;
  function deleteNormalAddressesForSale (  ) external;
  function deleteStakeHoldersList (  ) external;
  function deleteStakesForSale (  ) external;
  function genesisAddressesForSaleLevel1 ( uint256 ) external view returns ( address );
  function genesisAddressesForSaleLevel1Length (  ) external view returns ( uint256 len );
  function genesisAddressesForSaleLevel1Set ( address _genesisAddressesForSaleLevel1 ) external;
  function genesisAddressesForSaleLevel1SetAt ( uint256 i, address _address ) external;
  function genesisAddressesForSaleLevel2 ( uint256 ) external view returns ( address );
  function genesisAddressesForSaleLevel2Length (  ) external view returns ( uint256 len );
  function genesisAddressesForSaleLevel2Set ( address _genesisAddressesForSaleLevel2 ) external;
  function genesisAddressesForSaleLevel2SetAt ( uint256 i, address _address ) external;
  function genesisAddressesForSaleLevel3 ( uint256 ) external view returns ( address );
  function genesisAddressesForSaleLevel3Length (  ) external view returns ( uint256 len );
  function genesisAddressesForSaleLevel3Set ( address _genesisAddressesForSaleLevel3 ) external;
  function genesisAddressesForSaleLevel3SetAt ( uint256 i, address _address ) external;
  function normalAddressesForSale ( uint256 ) external view returns ( address );
  function normalAddressesForSaleLength (  ) external view returns ( uint256 len );
  function normalAddressesForSaleSet ( address _normalAddressesForSale ) external;
  function normalAddressesForSaleSetAt ( uint256 i, address _address ) external;
  function ownerGenesis (  ) external view returns ( address );
  function ownerGenesisBuys (  ) external view returns ( address );
  function ownerMain (  ) external view returns ( address );
  function ownerNormalAddress (  ) external view returns ( address );
  function ownerStakeBuys (  ) external view returns ( address );
  function ownerStakes (  ) external view returns ( address );
  function setOwnerGenesis (  ) external;
  function setOwnerGenesisBuys (  ) external;
  function setOwnerMain (  ) external;
  function setOwnerNormalAddress (  ) external;
  function setOwnerStakeBuys (  ) external;
  function setOwnerStakes (  ) external;
  function stakeHoldersList ( uint256 ) external view returns ( address );
  function stakeHoldersListAt ( uint256 i, address _address ) external;
  function stakeHoldersListLength (  ) external view returns ( uint256 len );
  function stakeHoldersListSet ( address _stakeHoldersList ) external;
  function stakesForSale ( uint256 ) external view returns ( address );
  function stakesForSaleLength (  ) external view returns ( uint256 len );
  function stakesForSaleSet ( address _stakesForSale ) external;
  function stakesForSaleSetAt ( uint256 i, address _address ) external;
}

interface genesisCalls {
  function AllowAddressToDestroyGenesis ( address _from, address _address ) external;
  function AllowReceiveGenesisTransfers ( address _from ) external;
  function BurnTokens ( address _from, uint256 mneToBurn ) external returns ( bool success );
  function RemoveAllowAddressToDestroyGenesis ( address _from ) external;
  function RemoveAllowReceiveGenesisTransfers ( address _from ) external;
  function RemoveGenesisAddressFromSale ( address _from ) external;
  function SetGenesisForSale ( address _from, uint256 weiPrice ) external;
  function TransferGenesis ( address _from, address _to ) external;
  function UpgradeToLevel2FromLevel1 ( address _address, uint256 weiValue ) external;
  function UpgradeToLevel3FromDev ( address _address ) external;
  function UpgradeToLevel3FromLevel1 ( address _address, uint256 weiValue ) external;
  function UpgradeToLevel3FromLevel2 ( address _address, uint256 weiValue ) external;
  function availableBalanceOf ( address _address ) external view returns ( uint256 Balance );
  function balanceOf ( address _address ) external view returns ( uint256 balance );
  function deleteAddressFromGenesisSaleList ( address _address ) external;
  function isAnyGenesisAddress ( address _address ) external view returns ( bool success );
  function isGenesisAddressLevel1 ( address _address ) external view returns ( bool success );
  function isGenesisAddressLevel2 ( address _address ) external view returns ( bool success );
  function isGenesisAddressLevel2Or3 ( address _address ) external view returns ( bool success );
  function isGenesisAddressLevel3 ( address _address ) external view returns ( bool success );
  function ownerGenesis (  ) external view returns ( address );
  function ownerGenesisBuys (  ) external view returns ( address );
  function ownerMain (  ) external view returns ( address );
  function ownerNormalAddress (  ) external view returns ( address );
  function ownerStakeBuys (  ) external view returns ( address );
  function ownerStakes (  ) external view returns ( address );
  function setGenesisCallerAddress ( address _caller ) external returns ( bool success );
  function setOwnerGenesisBuys (  ) external;
  function setOwnerMain (  ) external;
  function setOwnerNormalAddress (  ) external;
  function setOwnerStakeBuys (  ) external;
  function setOwnerStakes (  ) external;
  function BurnGenesisAddresses ( address _from, address[] calldata _genesisAddressesToBurn ) external;
}

interface normalAddress {
  function BuyNormalAddress ( address _from, address _address, uint256 _msgvalue ) external returns ( uint256 _totalToSend );
  function RemoveNormalAddressFromSale ( address _address ) external;
  function setBalanceNormalAddress ( address _from, address _address, uint256 balance ) external;
  function SetNormalAddressForSale ( address _from, uint256 weiPricePerMNE ) external;
  function setOwnerMain (  ) external;
  function ownerMain (  ) external view returns ( address );
}

interface stakes {
  function RemoveStakeFromSale ( address _from ) external;
  function SetStakeForSale ( address _from, uint256 priceInWei ) external;
  function StakeTransferGenesis ( address _from, address _to, uint256 _value, address[] calldata _genesisAddressesToBurn ) external;
  function StakeTransferMNE ( address _from, address _to, uint256 _value ) external returns ( uint256 _mneToBurn );
  function ownerMain (  ) external view returns ( address );
  function setBalanceStakes ( address _from, address _address, uint256 balance ) external;
  function setOwnerMain (  ) external;
}

interface stakeBuys {
  function BuyStakeGenesis ( address _from, address _address, address[] calldata _genesisAddressesToBurn, uint256 _msgvalue ) external returns ( uint256 _feesToPayToSeller );
  function BuyStakeMNE ( address _from, address _address, uint256 _msgvalue ) external returns ( uint256 _mneToBurn, uint256 _feesToPayToSeller );
  function ownerMain (  ) external view returns ( address );
  function setOwnerMain (  ) external;
}

interface genesisBuys {
  function BuyGenesisLevel1FromNormal ( address _from, address _address, uint256 _msgvalue ) external returns ( uint256 _totalToSend );
  function BuyGenesisLevel2FromNormal ( address _from, address _address, uint256 _msgvalue ) external returns ( uint256 _totalToSend );
  function BuyGenesisLevel3FromNormal ( address _from, address _address, uint256 _msgvalue ) external returns ( uint256 _totalToSend );
  function ownerMain (  ) external view returns ( address );
  function setOwnerMain (  ) external;
}

interface tokenService {  
  function ownerMain (  ) external view returns ( address );
  function setOwnerMain (  ) external;
  function circulatingSupply() external view returns (uint256);
  function DestroyGenesisAddressLevel1(address _address) external;
  function Bridge(address _sender, address _address, uint _amount) external;
}

interface baseTransfers {
	function setOwnerMain (  ) external;
	function transfer ( address _from, address _to, uint256 _value ) external;
	function transferFrom ( address _sender, address _from, address _to, uint256 _amount ) external returns ( bool success );
	function stopSetup ( address _from ) external returns ( bool success );
	function totalSupply (  ) external view returns ( uint256 TotalSupply );
}

interface mneStaking {
	function startStaking(address _sender, uint256 _amountToStake, address[] calldata _addressList, uint256[] calldata uintList) external;
}

interface luckyDraw {
	function BuyTickets(address _sender, uint256[] calldata _max) payable external returns ( uint256 );
}

interface externalService {
	function externalFunction(address _sender, address[] calldata _addressList, uint256[] calldata _uintList) payable external returns ( uint256 );
}

interface externalReceiver {
	function externalFunction(address _sender, uint256 _mneAmount, address[] calldata _addressList, uint256[] calldata _uintList) payable external;
}

contract Minereum { 
string public name; 
string public symbol; 
uint8 public decimals; 

event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed _owner, address indexed _spender, uint256 _value);
event LogStakeHolderSends(address indexed to, uint balance, uint amountToSend);
event LogFailedStakeHolderSends(address indexed to, uint balance, uint amountToSend);
event StakeTransfer(address indexed from, address indexed to, uint256 value);

publicCalls public pc;
publicArrays public pa;
genesisCalls public gn;
normalAddress public na;
stakes public st;
stakeBuys public stb;
genesisBuys public gnb;
tokenService public tks;
baseTransfers public bst;
mneStaking public mneStk;
luckyDraw public lkd;
externalService public extS1;
externalReceiver public extR1;
address public external1Address;

address public updaterAddress = 0x0000000000000000000000000000000000000000;
function setUpdater() public {if (updaterAddress == 0x0000000000000000000000000000000000000000) updaterAddress = msg.sender; else revert();}
address public payoutOwner = 0x0000000000000000000000000000000000000000;
bool public payoutBlocked = false;
address payable public secondaryPayoutAddress = 0x0000000000000000000000000000000000000000;

modifier onlyOwner(){
    require(msg.sender == external1Address || msg.sender == address(pc) || msg.sender == address(pa) || msg.sender == address(gn) || msg.sender == address(na) || msg.sender == address(st) || msg.sender == address(stb) || msg.sender == address(gnb) || msg.sender == address(tks) || msg.sender == address(bst) || msg.sender == address(mneStk) || msg.sender == address(lkd) || msg.sender == address(extS1) || msg.sender == address(extR1));
     _;
}

constructor(address _publicCallsAddress, address _publicArraysAddress, address _genesisCallsAddress, address _normalAddressAddress,
 address _stakesAddress, address _stakesBuysAddress,address _genesisBuysAddress, address _tokenServiceAddress, address _baseTransfersAddress) public {
name = "Minereum Polygon"; 
symbol = "MNEP"; 
decimals = 8; 
setUpdater();
pc = publicCalls(_publicCallsAddress);
pc.setOwnerMain();
pa = publicArrays(_publicArraysAddress);
pa.setOwnerMain();
gn = genesisCalls(_genesisCallsAddress);
gn.setOwnerMain();
na = normalAddress(_normalAddressAddress);
na.setOwnerMain();
st = stakes(_stakesAddress);
st.setOwnerMain();
stb = stakeBuys(_stakesBuysAddress);
stb.setOwnerMain();
gnb = genesisBuys(_genesisBuysAddress);
gnb.setOwnerMain();
tks = tokenService(_tokenServiceAddress);
tks.setOwnerMain();
bst = baseTransfers(_baseTransfersAddress);
bst.setOwnerMain();
}

function reloadGenesis(address _address) public { if (msg.sender == updaterAddress)	{gn = genesisCalls(_address); gn.setOwnerMain(); } else revert();}
function reloadNormalAddress(address _address) public { if (msg.sender == updaterAddress)	{na = normalAddress(_address); na.setOwnerMain(); } else revert();}
function reloadStakes(address _address) public { if (msg.sender == updaterAddress)	{st = stakes(_address); st.setOwnerMain(); } else revert();}
function reloadStakeBuys(address _address) public { if (msg.sender == updaterAddress)	{stb = stakeBuys(_address); stb.setOwnerMain(); } else revert();}
function reloadGenesisBuys(address _address) public { if (msg.sender == updaterAddress)	{gnb = genesisBuys(_address); gnb.setOwnerMain(); } else revert();}
function reloadTokenService(address _address) public { if (msg.sender == updaterAddress)	{tks = tokenService(_address); tks.setOwnerMain(); } else revert();}
function reloadBaseTransfers(address _address) public { if (msg.sender == updaterAddress)	{bst = baseTransfers(_address); bst.setOwnerMain(); } else revert();}
function reloadPublicCalls(address _address, uint code) public { if (!(code == 1234)) revert();  if (msg.sender == updaterAddress)	{pc = publicCalls(_address); pc.setOwnerMain();} else revert();}
function reloadPublicArrays(address _address, uint code) public { if (!(code == 1234)) revert();  if (msg.sender == updaterAddress)	{pa = publicArrays(_address); pa.setOwnerMain();} else revert();}
function loadMNEStaking(address _address) public { if (msg.sender == updaterAddress)	{mneStk = mneStaking(_address); } else revert();}
function loadLuckyDraw(address _address) public { if (msg.sender == updaterAddress)	{lkd = luckyDraw(_address); } else revert();}

function externalService1(address _address) public { if (msg.sender == updaterAddress)	{extS1 = externalService(_address); } else revert();}
function externalReceiver1(address _address) public { if (msg.sender == updaterAddress)	{extR1 = externalReceiver(_address); } else revert();}

function external1AddressSet(address _address) public { if (msg.sender == updaterAddress)	{external1Address = _address; } else revert();}

function updateTokenInfo(string memory _name, string memory _symbol) public {if (msg.sender == updaterAddress) { name = _name; symbol = _symbol; } else revert();}

function setPayoutOwner(address _address) public
{
	if(msg.sender == updaterAddress)
		payoutOwner = _address;
	else
		revert();
}

function setSecondaryPayoutAddress(address payable _address) public
{
	if(msg.sender == payoutOwner)
		secondaryPayoutAddress = _address;
	else
		revert();
}

function SetBlockPayouts(bool toBlock) public
{
	if(msg.sender == payoutOwner)
	{
		payoutBlocked = toBlock;
	}
}


function currentEthBlock() public view returns (uint256 blockNumber) 
{
	return block.number;
}

function currentBlock() public view returns (uint256 blockNumber)
{
	return block.number - pc.initialBlockCount();
}

function availableBalanceOf(address _address) public view returns (uint256 Balance)
{
	return gn.availableBalanceOf(_address);
}

function totalSupply() public view returns (uint256 TotalSupply)
{	
	return bst.totalSupply();
}

function circulatingSupply() public view returns (uint256)
{
   return tks.circulatingSupply();
}

function transfer(address _to, uint256 _value)  public { 
if (_to == address(this)) revert('if (_to == address(this))');
bst.transfer(msg.sender, _to, _value);
emit Transfer(msg.sender, _to, _value); 
}

function transferReserved(address _from, address _to, uint256 _value) public onlyOwner { 
emit Transfer(_from, _to, _value); 
}

function DestroyGenesisAddressLevel1() public {
	if (gn.isGenesisAddressLevel1(msg.sender))
	{
		emit Transfer(msg.sender, 0x0000000000000000000000000000000000000000, balanceOf(msg.sender));
		tks.DestroyGenesisAddressLevel1(msg.sender);
	}
	else
	{
		revert('Address not Genesis Level 1');
	}
}

function Bridge(address _address, uint _amount) public {
	emit Transfer(address(this), _address, _amount);
	tks.Bridge(msg.sender, _address, _amount);	
}

function transferFrom(
        address _from,
        address _to,
        uint256 _amount
) public returns (bool success) {
		bool result = bst.transferFrom(msg.sender, _from, _to, _amount);
        if (result) emit Transfer(_from, _to, _amount);
        return result;    
}

function approve(address _spender, uint256 _amount) public returns (bool success) {
    pc.allowedSet(msg.sender,_spender, _amount);
    emit Approval(msg.sender, _spender, _amount);
    return true;
}

function allowance(address _owner, address _spender) public view returns (uint256 remaining) {
    return pc.allowed(_owner,_spender);
}

function balanceOf(address _address) public view returns (uint256 balance) {
	return gn.balanceOf(_address);
}

function stakeBalanceOf(address _address) public view returns (uint256 balance) {
	return pc.stakeBalances(_address);
}

function TransferGenesis(address _to) public {
	emit Transfer(msg.sender, _to, balanceOf(msg.sender));	
	if (_to == address(this)) revert('if (_to == address(this))');	
	gn.TransferGenesis(msg.sender, _to);	
}

function SetGenesisForSale(uint256 weiPrice) public {	
	gn.SetGenesisForSale(msg.sender, weiPrice);
}

function AllowReceiveGenesisTransfers() public { 
	gn.AllowReceiveGenesisTransfers(msg.sender);
}

function RemoveAllowReceiveGenesisTransfers() public { 
	gn.RemoveAllowReceiveGenesisTransfers(msg.sender);
}

function RemoveGenesisAddressFromSale() public { 
	gn.RemoveGenesisAddressFromSale(msg.sender);
}

function AllowAddressToDestroyGenesis(address _address) public  { 
	gn.AllowAddressToDestroyGenesis(msg.sender, _address);
}

function RemoveAllowAddressToDestroyGenesis() public { 
	gn.RemoveAllowAddressToDestroyGenesis(msg.sender);
}

function UpgradeToLevel2FromLevel1() public payable {
	gn.UpgradeToLevel2FromLevel1(msg.sender, msg.value);
}

function UpgradeToLevel3FromLevel1() public payable {
	gn.UpgradeToLevel3FromLevel1(msg.sender, msg.value);
}

function UpgradeToLevel3FromLevel2() public payable {
	gn.UpgradeToLevel3FromLevel2(msg.sender, msg.value);
}

function UpgradeToLevel3FromDev() public {
	gn.UpgradeToLevel3FromDev(msg.sender);
}

function UpgradeOthersToLevel2FromLevel1(address[] memory _addresses) public payable {
	uint count = _addresses.length;
	if (msg.value != (pc.ethFeeToUpgradeToLevel2()*count)) revert('(msg.value != pc.ethFeeToUpgradeToLevel2()*count)');
	uint i = 0;
	while (i < count)
	{
		gn.UpgradeToLevel2FromLevel1(_addresses[i], pc.ethFeeToUpgradeToLevel2());
		i++;
	}
}

function UpgradeOthersToLevel3FromLevel1(address[] memory _addresses) public payable {
	uint count = _addresses.length;
	if (msg.value != ((pc.ethFeeToUpgradeToLevel2() + pc.ethFeeToUpgradeToLevel3())*count)) revert('(weiValue != ((msg.value + pc.ethFeeToUpgradeToLevel3())*count))');
	uint i = 0;
	while (i < count)
	{
		gn.UpgradeToLevel3FromLevel1(_addresses[i], (pc.ethFeeToUpgradeToLevel2() + pc.ethFeeToUpgradeToLevel3()));
		i++;
	}
}

function UpgradeOthersToLevel3FromLevel2(address[] memory _addresses) public payable {
	uint count = _addresses.length;
	if (msg.value != (pc.ethFeeToUpgradeToLevel3()*count)) revert('(msg.value != (pc.ethFeeToUpgradeToLevel3()*count))');
	uint i = 0;
	while (i < count)
	{
		gn.UpgradeToLevel3FromLevel2(_addresses[i], pc.ethFeeToUpgradeToLevel3());
		i++;
	}
}

function UpgradeOthersToLevel3FromDev(address[] memory _addresses) public {
	uint count = _addresses.length;	
	uint i = 0;
	while (i < count)
	{
		gn.UpgradeToLevel3FromDev(_addresses[i]);
		i++;
	}
}

function BuyGenesisAddress(address payable _address) public payable
{
	if (gn.isGenesisAddressLevel1(_address))
		BuyGenesisLevel1FromNormal(_address);
	else if (gn.isGenesisAddressLevel2(_address))
		BuyGenesisLevel2FromNormal(_address);
	else if (gn.isGenesisAddressLevel3(_address))
		BuyGenesisLevel3FromNormal(_address);
	else
		revert('Address not for sale');
}

function SetNormalAddressForSale(uint256 weiPricePerMNE) public {	
	na.SetNormalAddressForSale(msg.sender, weiPricePerMNE);
}

function RemoveNormalAddressFromSale() public
{
	na.RemoveNormalAddressFromSale(msg.sender);
}

function BuyNormalAddress(address payable _address) public payable{
	emit Transfer(_address, msg.sender, balanceOf(_address));
	uint256 feesToPayToSeller = na.BuyNormalAddress(msg.sender, address(_address), msg.value);				
	if(!_address.send(feesToPayToSeller)) revert('(!_address.send(feesToPayToSeller))');		
}

function setBalanceNormalAddress(address _address, uint256 _balance) public
{
	na.setBalanceNormalAddress(msg.sender, _address, _balance);
	emit Transfer(address(this), _address, _balance); 
}

function ContractTransferAllFundsOut() public
{
	//in case of hack, funds can be transfered out to another addresses and transferred to the stake holders from there
	if (payoutBlocked)
		if(!secondaryPayoutAddress.send(address(this).balance)) revert();
}

function PayoutStakeHolders() public {
	require(msg.sender == tx.origin); //For security reasons this line is to prevent smart contract calls
	if (payoutBlocked) revert('Payouts Blocked'); //In case of hack, payouts can be blocked
	uint contractBalance = address(this).balance;
	if (!(contractBalance > 0)) revert('(!(contractBalance > 0))');
	uint i;
	uint max;
	
	i = 0;
	max = pa.stakeHoldersListLength();

	while (i < max)
	{
		address payable add = payable(pa.stakeHoldersList(i));
		uint balance = pc.stakeBalances(add);
		uint amountToSend = contractBalance * balance / pc.stakeDecimals();
		if (amountToSend > 0)
		{
			if (!add.send(amountToSend))
				emit LogFailedStakeHolderSends(add, balance, amountToSend);
			else
			{
				pc.totalPaidStakeHoldersSet(pc.totalPaidStakeHolders() + amountToSend);				
			}			
		}
		i++;
	}
}

function stopSetup() public returns (bool success)
{
	return bst.stopSetup(msg.sender);
}

function BurnTokens(uint256 mneToBurn) public returns (bool success) {	
	gn.BurnTokens(msg.sender, mneToBurn);
	emit Transfer(msg.sender, 0x0000000000000000000000000000000000000000, mneToBurn);
	return true;
}

function SetStakeForSale(uint256 priceInWei) public
{	
	st.SetStakeForSale(msg.sender, priceInWei);
}

function RemoveStakeFromSale() public {
	st.RemoveStakeFromSale(msg.sender);
}

function StakeTransferMNE(address _to, uint256 _value) public {
	if (_to == address(this)) revert('if (_to == address(this))');
	BurnTokens(st.StakeTransferMNE(msg.sender, _to, _value));
	emit StakeTransfer(msg.sender, _to, _value); 
}

function BurnGenesisAddresses(address[] memory _genesisAddressesToBurn) public
{
	uint i = 0;	
	while(i < _genesisAddressesToBurn.length)
	{
		emit Transfer(_genesisAddressesToBurn[i], 0x0000000000000000000000000000000000000000, balanceOf(_genesisAddressesToBurn[i]));
		i++;
	}
	gn.BurnGenesisAddresses(msg.sender, _genesisAddressesToBurn);	
}

function StakeTransferGenesis(address _to, uint256 _value, address[] memory _genesisAddressesToBurn) public {
	if (_to == address(this)) revert('if (_to == address(this))');
	uint i = 0;	
	while(i < _genesisAddressesToBurn.length)
	{
		emit Transfer(_genesisAddressesToBurn[i], 0x0000000000000000000000000000000000000000, balanceOf(_genesisAddressesToBurn[i]));
		i++;
	}
	st.StakeTransferGenesis(msg.sender, _to, _value, _genesisAddressesToBurn);	
	emit StakeTransfer(msg.sender, _to, _value); 
}

function setBalanceStakes(address _address, uint256 balance) public {
	st.setBalanceStakes(msg.sender, _address, balance);
}

function BuyGenesisLevel1FromNormal(address payable _address) public payable {
	emit Transfer(_address, msg.sender, balanceOf(_address));
	uint256 feesToPayToSeller = gnb.BuyGenesisLevel1FromNormal(msg.sender, address(_address), msg.value);
	if(!_address.send(feesToPayToSeller)) revert('(!_address.send(feesToPayToSeller))');				
}

function BuyGenesisLevel2FromNormal(address payable _address) public payable{
	emit Transfer(_address, msg.sender, balanceOf(_address));
	uint256 feesToPayToSeller = gnb.BuyGenesisLevel2FromNormal(msg.sender, address(_address), msg.value);	
	if(!_address.send(feesToPayToSeller)) revert('(!_address.send(feesToPayToSeller))');	
}

function BuyGenesisLevel3FromNormal(address payable _address) public payable{
	emit Transfer(_address, msg.sender, balanceOf(_address));
	uint256 feesToPayToSeller = gnb.BuyGenesisLevel3FromNormal(msg.sender, address(_address), msg.value);	
	if(!_address.send(feesToPayToSeller)) revert('(!_address.send(feesToPayToSeller))');		
}

function BuyStakeMNE(address payable _address) public payable {
	uint256 balanceToSend = pc.stakeBalances(_address);
	(uint256 mneToBurn, uint256 feesToPayToSeller) = stb.BuyStakeMNE(msg.sender, address(_address), msg.value);
	BurnTokens(mneToBurn);
	if(!_address.send(feesToPayToSeller)) revert('(!_address.send(feesToPayToSeller))');	
	emit StakeTransfer(_address, msg.sender, balanceToSend); 
}

function BuyStakeGenesis(address payable _address, address[] memory _genesisAddressesToBurn) public payable {
	uint256 balanceToSend = pc.stakeBalances(_address);
	uint i = 0;
	while(i < _genesisAddressesToBurn.length)
	{
		emit Transfer(_genesisAddressesToBurn[i], 0x0000000000000000000000000000000000000000, balanceOf(_genesisAddressesToBurn[i]));
		i++;
	}
	uint256 feesToPayToSeller = stb.BuyStakeGenesis(msg.sender, address(_address), _genesisAddressesToBurn, msg.value);
	if(!_address.send(feesToPayToSeller)) revert();		
	emit StakeTransfer(_address, msg.sender, balanceToSend); 
}

function Payment() public payable {
	
}

function BuyLuckyDrawTickets(uint256[] memory max) public payable {
	uint256 _mneToBurn = lkd.BuyTickets.value(msg.value)(msg.sender, max);
	if (_mneToBurn > 0) BurnTokens(_mneToBurn);
}

function ExternalFunction1(uint256 _amountToStake, address[] memory _addressList, uint256[] memory uintList) public {
	if (_amountToStake > 0)
	{
		bst.transfer(msg.sender, address(mneStk), _amountToStake);
		emit Transfer(msg.sender, address(mneStk), _amountToStake); 
	}
	mneStk.startStaking(msg.sender, _amountToStake, _addressList, uintList);
}

function isAnyGenesisAddress(address _address) public view returns (bool success) {
	return gn.isAnyGenesisAddress(_address);
}

function isGenesisAddressLevel1(address _address) public view returns (bool success) {
	return gn.isGenesisAddressLevel1(_address);
}

function isGenesisAddressLevel2(address _address) public view returns (bool success) {
	return gn.isGenesisAddressLevel2(_address);
}

function isGenesisAddressLevel3(address _address) public view returns (bool success) {
	return gn.isGenesisAddressLevel3(_address);
}

function isGenesisAddressLevel2Or3(address _address) public view returns (bool success) {
	return gn.isGenesisAddressLevel2Or3(_address);
}

function registerAddressesValue(address[] memory _addressList, uint _value) public {
	uint i = 0;
	if (pc.setupRunning() == false) revert();
	if (msg.sender != pc.genesisCallerAddress()) revert(); 
	
	while(i < _addressList.length)
	{
		emit Transfer(address(this), _addressList[i], _value);
		i++;
	}
}

function ethFeeToUpgradeToLevel2Set(uint256 _ethFeeToUpgradeToLevel2) public {pc.ethFeeToUpgradeToLevel2Set(msg.sender, _ethFeeToUpgradeToLevel2);}
function ethFeeToUpgradeToLevel3Set(uint256 _ethFeeToUpgradeToLevel3) public {pc.ethFeeToUpgradeToLevel3Set(msg.sender, _ethFeeToUpgradeToLevel3);}
function ethFeeToBuyLevel1Set(uint256 _ethFeeToBuyLevel1) public {pc.ethFeeToBuyLevel1Set(msg.sender, _ethFeeToBuyLevel1);}
function ethFeeForSellerLevel1Set(uint256 _ethFeeForSellerLevel1) public {pc.ethFeeForSellerLevel1Set(msg.sender, _ethFeeForSellerLevel1);}
function ethPercentFeeGenesisExchangeSet(uint256 _ethPercentFeeGenesisExchange) public {pc.ethPercentFeeGenesisExchangeSet(msg.sender, _ethPercentFeeGenesisExchange);}
function ethPercentFeeNormalExchangeSet(uint256 _ethPercentFeeNormalExchange) public {pc.ethPercentFeeNormalExchangeSet(msg.sender, _ethPercentFeeNormalExchange);}
function ethPercentStakeExchangeSet(uint256 _ethPercentStakeExchange) public {pc.ethPercentStakeExchangeSet(msg.sender, _ethPercentStakeExchange);}
function amountOfGenesisToBuyStakesSet(uint256 _amountOfGenesisToBuyStakes) public {pc.amountOfGenesisToBuyStakesSet(msg.sender, _amountOfGenesisToBuyStakes);}
function amountOfMNEToBuyStakesSet(uint256 _amountOfMNEToBuyStakes) public {pc.amountOfMNEToBuyStakesSet(msg.sender, _amountOfMNEToBuyStakes);}
function amountOfMNEToTransferStakesSet(uint256 _amountOfMNEToTransferStakes) public {pc.amountOfMNEToTransferStakesSet(msg.sender, _amountOfMNEToTransferStakes);}
function amountOfGenesisToTransferStakesSet(uint256 _amountOfGenesisToTransferStakes) public {pc.amountOfGenesisToTransferStakesSet(msg.sender, _amountOfGenesisToTransferStakes);}
function stakeDecimalsSet(uint256 _stakeDecimals) public {pc.stakeDecimalsSet(msg.sender, _stakeDecimals);}


function ServiceFunction1(address[] memory _addressList, uint256[] memory _uintList) public payable {
	uint256 _mneToBurn = extS1.externalFunction.value(msg.value)(msg.sender, _addressList, _uintList);
	if (_mneToBurn > 0) BurnTokens(_mneToBurn);	
}

function ReceiverFunction1(uint256 _mneAmount, address[] memory _addressList, uint256[] memory _uintList) public payable {
	if (_mneAmount > 0)
	{
		bst.transfer(msg.sender, address(extR1), _mneAmount);
		emit Transfer(msg.sender, address(extR1), _mneAmount); 
	}
	extR1.externalFunction.value(msg.value)(msg.sender, _mneAmount, _addressList, _uintList);	
}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_publicCallsAddress","type":"address"},{"internalType":"address","name":"_publicArraysAddress","type":"address"},{"internalType":"address","name":"_genesisCallsAddress","type":"address"},{"internalType":"address","name":"_normalAddressAddress","type":"address"},{"internalType":"address","name":"_stakesAddress","type":"address"},{"internalType":"address","name":"_stakesBuysAddress","type":"address"},{"internalType":"address","name":"_genesisBuysAddress","type":"address"},{"internalType":"address","name":"_tokenServiceAddress","type":"address"},{"internalType":"address","name":"_baseTransfersAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"balance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToSend","type":"uint256"}],"name":"LogFailedStakeHolderSends","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"balance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToSend","type":"uint256"}],"name":"LogStakeHolderSends","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"StakeTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"AllowAddressToDestroyGenesis","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"AllowReceiveGenesisTransfers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Bridge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_genesisAddressesToBurn","type":"address[]"}],"name":"BurnGenesisAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"mneToBurn","type":"uint256"}],"name":"BurnTokens","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"BuyGenesisAddress","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"BuyGenesisLevel1FromNormal","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"BuyGenesisLevel2FromNormal","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"BuyGenesisLevel3FromNormal","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"max","type":"uint256[]"}],"name":"BuyLuckyDrawTickets","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"BuyNormalAddress","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"},{"internalType":"address[]","name":"_genesisAddressesToBurn","type":"address[]"}],"name":"BuyStakeGenesis","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"BuyStakeMNE","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"ContractTransferAllFundsOut","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DestroyGenesisAddressLevel1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountToStake","type":"uint256"},{"internalType":"address[]","name":"_addressList","type":"address[]"},{"internalType":"uint256[]","name":"uintList","type":"uint256[]"}],"name":"ExternalFunction1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"Payment","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"PayoutStakeHolders","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_mneAmount","type":"uint256"},{"internalType":"address[]","name":"_addressList","type":"address[]"},{"internalType":"uint256[]","name":"_uintList","type":"uint256[]"}],"name":"ReceiverFunction1","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"RemoveAllowAddressToDestroyGenesis","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"RemoveAllowReceiveGenesisTransfers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"RemoveGenesisAddressFromSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"RemoveNormalAddressFromSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"RemoveStakeFromSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addressList","type":"address[]"},{"internalType":"uint256[]","name":"_uintList","type":"uint256[]"}],"name":"ServiceFunction1","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bool","name":"toBlock","type":"bool"}],"name":"SetBlockPayouts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiPrice","type":"uint256"}],"name":"SetGenesisForSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiPricePerMNE","type":"uint256"}],"name":"SetNormalAddressForSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"priceInWei","type":"uint256"}],"name":"SetStakeForSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"address[]","name":"_genesisAddressesToBurn","type":"address[]"}],"name":"StakeTransferGenesis","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"StakeTransferMNE","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"}],"name":"TransferGenesis","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"UpgradeOthersToLevel2FromLevel1","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"UpgradeOthersToLevel3FromDev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"UpgradeOthersToLevel3FromLevel1","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"UpgradeOthersToLevel3FromLevel2","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"UpgradeToLevel2FromLevel1","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"UpgradeToLevel3FromDev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"UpgradeToLevel3FromLevel1","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"UpgradeToLevel3FromLevel2","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountOfGenesisToBuyStakes","type":"uint256"}],"name":"amountOfGenesisToBuyStakesSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountOfGenesisToTransferStakes","type":"uint256"}],"name":"amountOfGenesisToTransferStakesSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountOfMNEToBuyStakes","type":"uint256"}],"name":"amountOfMNEToBuyStakesSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountOfMNEToTransferStakes","type":"uint256"}],"name":"amountOfMNEToTransferStakesSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"availableBalanceOf","outputs":[{"internalType":"uint256","name":"Balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bst","outputs":[{"internalType":"contract baseTransfers","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentBlock","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentEthBlock","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ethFeeForSellerLevel1","type":"uint256"}],"name":"ethFeeForSellerLevel1Set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ethFeeToBuyLevel1","type":"uint256"}],"name":"ethFeeToBuyLevel1Set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ethFeeToUpgradeToLevel2","type":"uint256"}],"name":"ethFeeToUpgradeToLevel2Set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ethFeeToUpgradeToLevel3","type":"uint256"}],"name":"ethFeeToUpgradeToLevel3Set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ethPercentFeeGenesisExchange","type":"uint256"}],"name":"ethPercentFeeGenesisExchangeSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ethPercentFeeNormalExchange","type":"uint256"}],"name":"ethPercentFeeNormalExchangeSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ethPercentStakeExchange","type":"uint256"}],"name":"ethPercentStakeExchangeSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"extR1","outputs":[{"internalType":"contract externalReceiver","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"extS1","outputs":[{"internalType":"contract externalService","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"external1Address","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"external1AddressSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"externalReceiver1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"externalService1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gn","outputs":[{"internalType":"contract genesisCalls","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gnb","outputs":[{"internalType":"contract genesisBuys","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isAnyGenesisAddress","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isGenesisAddressLevel1","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isGenesisAddressLevel2","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isGenesisAddressLevel2Or3","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isGenesisAddressLevel3","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lkd","outputs":[{"internalType":"contract luckyDraw","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"loadLuckyDraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"loadMNEStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mneStk","outputs":[{"internalType":"contract mneStaking","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"na","outputs":[{"internalType":"contract normalAddress","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pa","outputs":[{"internalType":"contract publicArrays","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"payoutBlocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"payoutOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pc","outputs":[{"internalType":"contract publicCalls","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addressList","type":"address[]"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"registerAddressesValue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"reloadBaseTransfers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"reloadGenesis","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"reloadGenesisBuys","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"reloadNormalAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"code","type":"uint256"}],"name":"reloadPublicArrays","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"code","type":"uint256"}],"name":"reloadPublicCalls","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"reloadStakeBuys","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"reloadStakes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"reloadTokenService","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"secondaryPayoutAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"_balance","type":"uint256"}],"name":"setBalanceNormalAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"}],"name":"setBalanceStakes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setPayoutOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"setSecondaryPayoutAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setUpdater","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"st","outputs":[{"internalType":"contract stakes","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"stakeBalanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_stakeDecimals","type":"uint256"}],"name":"stakeDecimalsSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stb","outputs":[{"internalType":"contract stakeBuys","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stopSetup","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tks","outputs":[{"internalType":"contract tokenService","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"TotalSupply","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferReserved","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"}],"name":"updateTokenInfo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"updaterAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

6080604052601080546001600160a01b0319908116909155601180546001600160a81b03191690556012805490911690553480156200003d57600080fd5b50604051620066093803806200660983398181016040526101208110156200006457600080fd5b5080516020808301516040808501516060860151608087015160a088015160c089015160e08a0151610100909a0151865180880190975260108088526f26b4b732b932bab6902837b63cb3b7b760811b9790990196875298999698949793969295919490939091620000da9160009190620005ab565b506040805180820190915260048082526304d4e45560e41b60209092019182526200010891600191620005ab565b506002805460ff19166008179055620001296001600160e01b036200057b16565b88600260016101000a8154816001600160a01b0302191690836001600160a01b03160217905550600260019054906101000a90046001600160a01b03166001600160a01b03166313b9f0c76040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620001a157600080fd5b505af1158015620001b6573d6000803e3d6000fd5b5050600380546001600160a01b0319166001600160a01b038c81169190911791829055604080516313b9f0c760e01b815290519290911693506313b9f0c7925060048082019260009290919082900301818387803b1580156200021857600080fd5b505af11580156200022d573d6000803e3d6000fd5b5050600480546001600160a01b0319166001600160a01b038b811691909117808355604080516313b9f0c760e01b815290519190921694506313b9f0c793508183019260009282900301818387803b1580156200028957600080fd5b505af11580156200029e573d6000803e3d6000fd5b5050600580546001600160a01b0319166001600160a01b038a81169190911791829055604080516313b9f0c760e01b815290519290911693506313b9f0c7925060048082019260009290919082900301818387803b1580156200030057600080fd5b505af115801562000315573d6000803e3d6000fd5b5050600680546001600160a01b0319166001600160a01b038981169190911791829055604080516313b9f0c760e01b815290519290911693506313b9f0c7925060048082019260009290919082900301818387803b1580156200037757600080fd5b505af11580156200038c573d6000803e3d6000fd5b5050600780546001600160a01b0319166001600160a01b038881169190911791829055604080516313b9f0c760e01b815290519290911693506313b9f0c7925060048082019260009290919082900301818387803b158015620003ee57600080fd5b505af115801562000403573d6000803e3d6000fd5b5050600880546001600160a01b0319166001600160a01b038781169190911791829055604080516313b9f0c760e01b815290519290911693506313b9f0c7925060048082019260009290919082900301818387803b1580156200046557600080fd5b505af11580156200047a573d6000803e3d6000fd5b5050600980546001600160a01b0319166001600160a01b038681169190911791829055604080516313b9f0c760e01b815290519290911693506313b9f0c7925060048082019260009290919082900301818387803b158015620004dc57600080fd5b505af1158015620004f1573d6000803e3d6000fd5b5050600a80546001600160a01b0319166001600160a01b038581169190911791829055604080516313b9f0c760e01b815290519290911693506313b9f0c7925060048082019260009290919082900301818387803b1580156200055357600080fd5b505af115801562000568573d6000803e3d6000fd5b5050505050505050505050505062000650565b6010546001600160a01b0316620005a457601080546001600160a01b03191633179055620005a9565b600080fd5b565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620005ee57805160ff19168380011785556200061e565b828001600101855582156200061e579182015b828111156200061e57825182559160200191906001019062000601565b506200062c92915062000630565b5090565b6200064d91905b808211156200062c576000815560010162000637565b90565b615fa980620006606000396000f3fe6080604052600436106106d35760003560e01c80637347060c1161037a578063b9c25cae116101d1578063ddcbfce011610102578063e69919ae116100a0578063ef3dd5c81161007a578063ef3dd5c814611fe1578063fd3c763814612014578063fdbc653014612047578063ffc4b1681461205c576106d3565b8063e69919ae14611eeb578063e9095e5c14611f00578063eb0fbbad14611fae576106d3565b8063e12ed13c116100dc578063e12ed13c14611e79578063e241263014611e8e578063e33eaaf714611ea3578063e4c4b47c14611eb8576106d3565b8063ddcbfce014611e07578063df02f1db14611e31578063df462a4714611e64576106d3565b8063c92f146a1161016f578063dae487ca11610149578063dae487ca14611d63578063db16cb5b14611d78578063dd2c455c14611da2578063dd62ed3e14611dcc576106d3565b8063c92f146a14611cf1578063cf91e33114611d06578063d4f7457914611d39576106d3565b8063bdbdcd75116101ab578063bdbdcd7514611b45578063c0ea2e7714611b78578063c169653314611b8d578063c3536e8b14611c50576106d3565b8063b9c25cae14611ae8578063bad0f93414611afd578063bd65fc4c14611b30576106d3565b806393c63b9d116102ab578063aa13504e11610249578063aee1fabc11610223578063aee1fabc14611a61578063af46aa0814611a76578063b3e9047614611aa9578063b4e85ec814611ad3576106d3565b8063aa13504e146118f6578063ac0f738f14611929578063aede090f1461193e576106d3565b806397b5e5541161028557806397b5e55414611858578063a33b12601461188b578063a5094f8f14611893578063a9059cbb146118bd576106d3565b806393c63b9d146117dd57806394ccd96f1461181057806395d89b4114611843576106d3565b806380167ebf116103185780638af8edfc116102f25780638af8edfc146116cf5780638ccb0023146116e45780639055a23e146117955780639358928b146117c8576106d3565b806380167ebf146116045780638278188a146116a55780638a670113146116ba576106d3565b8063742ec16411610354578063742ec164146114ef57806374a72e41146115195780637b411ca5146115c95780637d20a24f146115de576106d3565b80637347060c1461147b57806373668817146114a157806373f0cc2d146114da576106d3565b80633521bbed1161052e57806361a3be801161045f5780636dcb9800116103fd5780637022c79e116103d75780637022c79e146113d45780637050ec891461140757806370a082311461144057806370a8a2e614611473576106d3565b80636dcb98001461136f5780636e3ee8f1146113995780636fd615bf146113bf576106d3565b80636af43470116104395780636af434701461128b5780636b3b2800146112935780636be2ca43146112b95780636c2f12e6146112ce576106d3565b806361a3be8014611226578063633865511461123b57806366a497b714611261576106d3565b80634890bb51116104cc578063542aa99f116104a6578063542aa99f1461119957806357e08c60146111ae5780635b48a884146111e75780635b65268f14611211576106d3565b80634890bb511461112e57806350ac2f6914611136578063522c628f14611160576106d3565b80633c64cfc6116105085780633c64cfc6146110b6578063416e8604146110ef578063460b72ce14611104578063474b07bf14611119576106d3565b80633521bbed14610f1957806336d6991014610f4c578063399c40ea14610f7f576106d3565b806321df8098116106085780632940187a116105a65780633118f543116105805780633118f54314610e89578063313ce56714610e9e5780633181a5a714610ec957806333d5993414610eef576106d3565b80632940187a14610cf65780632cd3fd7014610d295780632f71d02214610d53576106d3565b806323e46e7c116105e257806323e46e7c14610c3f57806324ac57b714610c6b57806325d998bb14610c805780632631ef1214610cb3576106d3565b806321df809814610b9057806322e3f16214610bc357806323b872dd14610bfc576106d3565b80630d061e7511610675578063177e48d01161064f578063177e48d014610a7d57806318160ddd14610b1e5780631d2cb86114610b335780631ec32a6614610b66576106d3565b80630d061e7514610a0b578063124d83d814610a20578063128fb93014610a4a576106d3565b8063095ea7b3116106b1578063095ea7b3146108b857806309ae18441461090557806309f6c607146109b35780630a63361c146109da576106d3565b806306fdde03146106d857806307c5c18e14610762578063088c35fd1461088e575b600080fd5b3480156106e457600080fd5b506106ed61208f565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561072757818101518382015260200161070f565b50505050905090810190601f1680156107545780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61088c6004803603606081101561077857600080fd5b81359190810190604081016020820135600160201b81111561079957600080fd5b8201836020820111156107ab57600080fd5b803590602001918460208302840111600160201b831117156107cc57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561081b57600080fd5b82018360208201111561082d57600080fd5b803590602001918460208302840111600160201b8311171561084e57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061211d945050505050565b005b34801561089a57600080fd5b5061088c600480360360208110156108b157600080fd5b50356122ce565b3480156108c457600080fd5b506108f1600480360360408110156108db57600080fd5b506001600160a01b038135169060200135612340565b604080519115158252519081900360200190f35b34801561091157600080fd5b5061088c6004803603602081101561092857600080fd5b810190602081018135600160201b81111561094257600080fd5b82018360208201111561095457600080fd5b803590602001918460208302840111600160201b8311171561097557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612403945050505050565b3480156109bf57600080fd5b506109c8612529565b60408051918252519081900360200190f35b3480156109e657600080fd5b506109ef61252e565b604080516001600160a01b039092168252519081900360200190f35b348015610a1757600080fd5b506109ef61253d565b348015610a2c57600080fd5b5061088c60048036036020811015610a4357600080fd5b503561254c565b348015610a5657600080fd5b5061088c60048036036020811015610a6d57600080fd5b50356001600160a01b03166125a3565b61088c60048036036020811015610a9357600080fd5b810190602081018135600160201b811115610aad57600080fd5b820183602082011115610abf57600080fd5b803590602001918460208302840111600160201b83111715610ae057600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506125d5945050505050565b348015610b2a57600080fd5b506109c86127b1565b348015610b3f57600080fd5b5061088c60048036036020811015610b5657600080fd5b50356001600160a01b0316612827565b348015610b7257600080fd5b5061088c60048036036020811015610b8957600080fd5b503561285a565b348015610b9c57600080fd5b5061088c60048036036020811015610bb357600080fd5b50356001600160a01b03166128b1565b348015610bcf57600080fd5b5061088c60048036036040811015610be657600080fd5b506001600160a01b03813516906020013561293e565b348015610c0857600080fd5b506108f160048036036060811015610c1f57600080fd5b506001600160a01b038135811691602081013590911690604001356129c7565b348015610c4b57600080fd5b5061088c60048036036020811015610c6257600080fd5b50351515612aa2565b348015610c7757600080fd5b506109ef612ad1565b348015610c8c57600080fd5b506109c860048036036020811015610ca357600080fd5b50356001600160a01b0316612ae0565b348015610cbf57600080fd5b5061088c60048036036060811015610cd657600080fd5b506001600160a01b03813581169160208101359091169060400135612b65565b348015610d0257600080fd5b506108f160048036036020811015610d1957600080fd5b50356001600160a01b0316612cd0565b348015610d3557600080fd5b506108f160048036036020811015610d4c57600080fd5b5035612d23565b348015610d5f57600080fd5b5061088c60048036036040811015610d7657600080fd5b810190602081018135600160201b811115610d9057600080fd5b820183602082011115610da257600080fd5b803590602001918460018302840111600160201b83111715610dc357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b811115610e1557600080fd5b820183602082011115610e2757600080fd5b803590602001918460018302840111600160201b83111715610e4857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612dd4945050505050565b348015610e9557600080fd5b506109ef612e12565b348015610eaa57600080fd5b50610eb3612e21565b6040805160ff9092168252519081900360200190f35b61088c60048036036020811015610edf57600080fd5b50356001600160a01b0316612e2a565b348015610efb57600080fd5b5061088c60048036036020811015610f1257600080fd5b5035613017565b348015610f2557600080fd5b5061088c60048036036020811015610f3c57600080fd5b50356001600160a01b031661306e565b348015610f5857600080fd5b506108f160048036036020811015610f6f57600080fd5b50356001600160a01b03166130a1565b348015610f8b57600080fd5b5061088c60048036036060811015610fa257600080fd5b81359190810190604081016020820135600160201b811115610fc357600080fd5b820183602082011115610fd557600080fd5b803590602001918460208302840111600160201b83111715610ff657600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561104557600080fd5b82018360208201111561105757600080fd5b803590602001918460208302840111600160201b8311171561107857600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506130f4945050505050565b3480156110c257600080fd5b5061088c600480360360408110156110d957600080fd5b506001600160a01b0381351690602001356132a4565b3480156110fb57600080fd5b506109ef6132ff565b34801561111057600080fd5b5061088c61330e565b34801561112557600080fd5b506109ef61346f565b61088c61347e565b34801561114257600080fd5b5061088c6004803603602081101561115957600080fd5b50356134eb565b34801561116c57600080fd5b5061088c6004803603604081101561118357600080fd5b506001600160a01b038135169060200135613542565b3480156111a557600080fd5b506108f16135dd565b3480156111ba57600080fd5b5061088c600480360360408110156111d157600080fd5b506001600160a01b03813516906020013561363d565b3480156111f357600080fd5b5061088c6004803603602081101561120a57600080fd5b50356136e2565b34801561121d57600080fd5b5061088c613735565b34801561123257600080fd5b5061088c613782565b61088c6004803603602081101561125157600080fd5b50356001600160a01b03166137cf565b34801561126d57600080fd5b5061088c6004803603602081101561128457600080fd5b5035613984565b61088c6139db565b61088c600480360360208110156112a957600080fd5b50356001600160a01b0316613a2e565b3480156112c557600080fd5b5061088c613b4f565b61088c600480360360208110156112e457600080fd5b810190602081018135600160201b8111156112fe57600080fd5b82018360208201111561131057600080fd5b803590602001918460208302840111600160201b8311171561133157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613b9b945050505050565b34801561137b57600080fd5b5061088c6004803603602081101561139257600080fd5b5035613d72565b61088c600480360360208110156113af57600080fd5b50356001600160a01b0316613dc9565b3480156113cb57600080fd5b506109ef613e5b565b3480156113e057600080fd5b5061088c600480360360208110156113f757600080fd5b50356001600160a01b0316613e6a565b34801561141357600080fd5b5061088c6004803603604081101561142a57600080fd5b506001600160a01b038135169060200135613eda565b34801561144c57600080fd5b506109c86004803603602081101561146357600080fd5b50356001600160a01b0316613ff9565b61088c61404c565b61088c6004803603602081101561149157600080fd5b50356001600160a01b031661409f565b3480156114ad57600080fd5b5061088c600480360360408110156114c457600080fd5b506001600160a01b038135169060200135614131565b3480156114e657600080fd5b506109ef6141c9565b3480156114fb57600080fd5b5061088c6004803603602081101561151257600080fd5b50356141d8565b34801561152557600080fd5b5061088c6004803603604081101561153c57600080fd5b810190602081018135600160201b81111561155657600080fd5b82018360208201111561156857600080fd5b803590602001918460208302840111600160201b8311171561158957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550509135925061422c915050565b3480156115d557600080fd5b5061088c614396565b61088c600480360360208110156115f457600080fd5b50356001600160a01b03166147a7565b61088c6004803603602081101561161a57600080fd5b810190602081018135600160201b81111561163457600080fd5b82018360208201111561164657600080fd5b803590602001918460208302840111600160201b8311171561166757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550614839945050505050565b3480156116b157600080fd5b506109ef614908565b3480156116c657600080fd5b506109ef614917565b3480156116db57600080fd5b506109ef614926565b61088c600480360360408110156116fa57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561172457600080fd5b82018360208201111561173657600080fd5b803590602001918460208302840111600160201b8311171561175757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550614935945050505050565b3480156117a157600080fd5b506108f1600480360360208110156117b857600080fd5b50356001600160a01b0316614b5d565b3480156117d457600080fd5b506109c8614bb0565b3480156117e957600080fd5b5061088c6004803603602081101561180057600080fd5b50356001600160a01b0316614bf5565b34801561181c57600080fd5b5061088c6004803603602081101561183357600080fd5b50356001600160a01b0316614c61565b34801561184f57600080fd5b506106ed614c94565b34801561186457600080fd5b5061088c6004803603602081101561187b57600080fd5b50356001600160a01b0316614cee565b61088c61346d565b34801561189f57600080fd5b5061088c600480360360208110156118b657600080fd5b5035614d5e565b3480156118c957600080fd5b5061088c600480360360408110156118e057600080fd5b506001600160a01b038135169060200135614db5565b34801561190257600080fd5b5061088c6004803603602081101561191957600080fd5b50356001600160a01b0316614eb4565b34801561193557600080fd5b5061088c614ee7565b61088c6004803603604081101561195457600080fd5b810190602081018135600160201b81111561196e57600080fd5b82018360208201111561198057600080fd5b803590602001918460208302840111600160201b831117156119a157600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156119f057600080fd5b820183602082011115611a0257600080fd5b803590602001918460208302840111600160201b83111715611a2357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550614f34945050505050565b348015611a6d57600080fd5b506109ef61504c565b348015611a8257600080fd5b506109c860048036036020811015611a9957600080fd5b50356001600160a01b031661505b565b348015611ab557600080fd5b5061088c60048036036020811015611acc57600080fd5b50356150b0565b348015611adf57600080fd5b5061088c615107565b348015611af457600080fd5b5061088c615153565b348015611b0957600080fd5b5061088c60048036036020811015611b2057600080fd5b50356001600160a01b03166151a0565b348015611b3c57600080fd5b506109ef615210565b348015611b5157600080fd5b5061088c60048036036020811015611b6857600080fd5b50356001600160a01b031661521f565b348015611b8457600080fd5b506108f161528f565b348015611b9957600080fd5b5061088c60048036036060811015611bb057600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b811115611bdf57600080fd5b820183602082011115611bf157600080fd5b803590602001918460208302840111600160201b83111715611c1257600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061529f945050505050565b61088c60048036036020811015611c6657600080fd5b810190602081018135600160201b811115611c8057600080fd5b820183602082011115611c9257600080fd5b803590602001918460208302840111600160201b83111715611cb357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550615455945050505050565b348015611cfd57600080fd5b5061088c615716565b348015611d1257600080fd5b5061088c60048036036020811015611d2957600080fd5b50356001600160a01b0316615763565b348015611d4557600080fd5b5061088c60048036036020811015611d5c57600080fd5b5035615846565b348015611d6f57600080fd5b506109ef61589d565b348015611d8457600080fd5b5061088c60048036036020811015611d9b57600080fd5b50356158ac565b348015611dae57600080fd5b5061088c60048036036020811015611dc557600080fd5b50356158ff565b348015611dd857600080fd5b506109c860048036036040811015611def57600080fd5b506001600160a01b0381358116916020013516615956565b348015611e1357600080fd5b5061088c60048036036020811015611e2a57600080fd5b50356159e6565b348015611e3d57600080fd5b5061088c60048036036020811015611e5457600080fd5b50356001600160a01b0316615a3d565b348015611e7057600080fd5b506109ef615a70565b348015611e8557600080fd5b506109c8615a7f565b348015611e9a57600080fd5b5061088c615b02565b348015611eaf57600080fd5b5061088c615b29565b348015611ec457600080fd5b5061088c60048036036020811015611edb57600080fd5b50356001600160a01b0316615b6c565b348015611ef757600080fd5b506109ef615b9f565b348015611f0c57600080fd5b5061088c60048036036020811015611f2357600080fd5b810190602081018135600160201b811115611f3d57600080fd5b820183602082011115611f4f57600080fd5b803590602001918460208302840111600160201b83111715611f7057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550615bb3945050505050565b348015611fba57600080fd5b506108f160048036036020811015611fd157600080fd5b50356001600160a01b0316615c57565b348015611fed57600080fd5b5061088c6004803603602081101561200457600080fd5b50356001600160a01b0316615caa565b34801561202057600080fd5b5061088c6004803603602081101561203757600080fd5b50356001600160a01b0316615cff565b34801561205357600080fd5b506109ef615d6f565b34801561206857600080fd5b506108f16004803603602081101561207f57600080fd5b50356001600160a01b0316615d7e565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156121155780601f106120ea57610100808354040283529160200191612115565b820191906000526020600020905b8154815290600101906020018083116120f857829003601f168201915b505050505081565b82156121cd57600a54600e54604080516317d5759960e31b81523360048201526001600160a01b039283166024820152604481018790529051919092169163beabacc891606480830192600092919082900301818387803b15801561218157600080fd5b505af1158015612195573d6000803e3d6000fd5b5050600e546040805187815290516001600160a01b039092169350339250600080516020615f23833981519152919081900360200190a35b600e54604051632433a49160e11b81523360048201818152602483018790526080604484019081528651608485015286516001600160a01b03909516946348674922943494938a938a938a93606481019160a4909101906020808801910280838360005b83811015612249578181015183820152602001612231565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015612288578181015183820152602001612270565b5050505090500196505050505050506000604051808303818588803b1580156122b057600080fd5b505af11580156122c4573d6000803e3d6000fd5b5050505050505050565b600254604080516305de45bd60e11b81523360048201526024810184905290516101009092046001600160a01b031691630bbc8b7a9160448082019260009290919082900301818387803b15801561232557600080fd5b505af1158015612339573d6000803e3d6000fd5b5050505050565b6002546040805163779a859960e11b81523360048201526001600160a01b03858116602483015260448201859052915160009361010090049092169163ef350b3291606480820192869290919082900301818387803b1580156123a257600080fd5b505af11580156123b6573d6000803e3d6000fd5b50506040805185815290516001600160a01b03871693503392507f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259181900360200190a350600192915050565b60005b815181101561247b5760006001600160a01b031682828151811061242657fe5b60200260200101516001600160a01b0316600080516020615f2383398151915261246285858151811061245557fe5b6020026020010151613ff9565b60408051918252519081900360200190a3600101612406565b6004805460408051633ca4fe7b60e11b815233938101848152602482019283528651604483015286516001600160a01b0390941694637949fcf6949093889390916064909101906020808601910280838360005b838110156124e75781810151838201526020016124cf565b505050509050019350505050600060405180830381600087803b15801561250d57600080fd5b505af1158015612521573d6000803e3d6000fd5b505050505050565b435b90565b6003546001600160a01b031681565b6012546001600160a01b031681565b60025460408051633429fca760e21b81523360048201526024810184905290516101009092046001600160a01b03169163d0a7f29c9160448082019260009290919082900301818387803b15801561232557600080fd5b6010546001600160a01b03163314156106d357600b80546001600160a01b0319166001600160a01b0383161790555b50565b805160025460408051633238268960e01b81529051839261010090046001600160a01b0316916332382689916004808301926020929190829003018186803b15801561262057600080fd5b505afa158015612634573d6000803e3d6000fd5b505050506040513d602081101561264a57600080fd5b505102341461268a5760405162461bcd60e51b8152600401808060200182810382526031815260200180615f436031913960400191505060405180910390fd5b60005b818110156127ac5760045483516001600160a01b03909116906376067e67908590849081106126b857fe5b6020026020010151600260019054906101000a90046001600160a01b03166001600160a01b031663323826896040518163ffffffff1660e01b815260040160206040518083038186803b15801561270e57600080fd5b505afa158015612722573d6000803e3d6000fd5b505050506040513d602081101561273857600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b039093166004840152602483019190915251604480830192600092919082900301818387803b15801561278857600080fd5b505af115801561279c573d6000803e3d6000fd5b50506001909201915061268d9050565b505050565b600a54604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b1580156127f657600080fd5b505afa15801561280a573d6000803e3d6000fd5b505050506040513d602081101561282057600080fd5b5051905090565b6010546001600160a01b03163314156106d357600e80546001600160a01b0319166001600160a01b0383161790556125d2565b600254604080516372a4edd560e01b81523360048201526024810184905290516101009092046001600160a01b0316916372a4edd59160448082019260009290919082900301818387803b15801561232557600080fd5b6010546001600160a01b03163314156106d357600780546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b15801561292157600080fd5b505af1158015612935573d6000803e3d6000fd5b505050506125d2565b6040805182815290516001600160a01b038416913091600080516020615f238339815191529181900360200190a3600954604080516359bc8a9160e01b81523360048201526001600160a01b03858116602483015260448201859052915191909216916359bc8a9191606480830192600092919082900301818387803b15801561250d57600080fd5b600a5460408051630aed65f560e11b81523360048201526001600160a01b0386811660248301528581166044830152606482018590529151600093849316916315dacbea91608480830192602092919082900301818787803b158015612a2c57600080fd5b505af1158015612a40573d6000803e3d6000fd5b505050506040513d6020811015612a5657600080fd5b505190508015612a9a57836001600160a01b0316856001600160a01b0316600080516020615f23833981519152856040518082815260200191505060405180910390a35b949350505050565b6011546001600160a01b03163314156125d25760118054821515600160a01b0260ff60a01b1990911617905550565b600b546001600160a01b031681565b60048054604080516325d998bb60e01b81526001600160a01b03858116948201949094529051600093909216916325d998bb91602480820192602092909190829003018186803b158015612b3357600080fd5b505afa158015612b47573d6000803e3d6000fd5b505050506040513d6020811015612b5d57600080fd5b505192915050565b600f546001600160a01b0316331480612b8d575060025461010090046001600160a01b031633145b80612ba257506003546001600160a01b031633145b80612bb757506004546001600160a01b031633145b80612bcc57506005546001600160a01b031633145b80612be157506006546001600160a01b031633145b80612bf657506007546001600160a01b031633145b80612c0b57506008546001600160a01b031633145b80612c2057506009546001600160a01b031633145b80612c355750600a546001600160a01b031633145b80612c4a5750600b546001600160a01b031633145b80612c5f5750600c546001600160a01b031633145b80612c745750600d546001600160a01b031633145b80612c895750600e546001600160a01b031633145b612c9257600080fd5b816001600160a01b0316836001600160a01b0316600080516020615f23833981519152836040518082815260200191505060405180910390a3505050565b60048054604080516314a00c3d60e11b81526001600160a01b0385811694820194909452905160009390921691632940187a91602480820192602092909190829003018186803b158015612b3357600080fd5b6004805460408051631c46b08160e11b8152339381019390935260248301849052516000926001600160a01b039092169163388d610291604480830192602092919082900301818787803b158015612d7a57600080fd5b505af1158015612d8e573d6000803e3d6000fd5b505050506040513d6020811015612da457600080fd5b50506040805183815290516000913391600080516020615f238339815191529181900360200190a3506001919050565b6010546001600160a01b03163314156106d3578151612dfa906000906020850190615dd4565b5080516127ac906001906020840190615dd4565b5050565b6004546001600160a01b031681565b60025460ff1681565b600480546040805163482ad11f60e11b81526001600160a01b038581169482019490945290519290911691639055a23e91602480820192602092909190829003018186803b158015612e7b57600080fd5b505afa158015612e8f573d6000803e3d6000fd5b505050506040513d6020811015612ea557600080fd5b505115612eba57612eb581613a2e565b6125d2565b60048054604080516314a00c3d60e11b81526001600160a01b038581169482019490945290519290911691632940187a91602480820192602092909190829003018186803b158015612f0b57600080fd5b505afa158015612f1f573d6000803e3d6000fd5b505050506040513d6020811015612f3557600080fd5b505115612f4557612eb58161409f565b60048054604080516001620769d360e31b031981526001600160a01b03858116948201949094529051929091169163ffc4b16891602480820192602092909190829003018186803b158015612f9957600080fd5b505afa158015612fad573d6000803e3d6000fd5b505050506040513d6020811015612fc357600080fd5b505115612fd357612eb581613dc9565b6040805162461bcd60e51b815260206004820152601460248201527341646472657373206e6f7420666f722073616c6560601b604482015290519081900360640190fd5b6002546040805163f5d1858560e01b81523360048201526024810184905290516101009092046001600160a01b03169163f5d185859160448082019260009290919082900301818387803b15801561232557600080fd5b6010546001600160a01b03163314156106d357600f80546001600160a01b0319166001600160a01b0383161790556125d2565b600480546040805163036d699160e41b81526001600160a01b03858116948201949094529051600093909216916336d6991091602480820192602092909190829003018186803b158015612b3357600080fd5b82156131a457600a54600b54604080516317d5759960e31b81523360048201526001600160a01b039283166024820152604481018790529051919092169163beabacc891606480830192600092919082900301818387803b15801561315857600080fd5b505af115801561316c573d6000803e3d6000fd5b5050600b546040805187815290516001600160a01b039092169350339250600080516020615f23833981519152919081900360200190a35b600b54604051630a67889360e01b81523360048201818152602483018790526080604484019081528651608485015286516001600160a01b0390951694630a6788939489938993899391929091606482019160a401906020808801910280838360005b8381101561321f578181015183820152602001613207565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561325e578181015183820152602001613246565b505050509050019650505050505050600060405180830381600087803b15801561328757600080fd5b505af115801561329b573d6000803e3d6000fd5b50505050505050565b6006546040805163f8e4df0f60e01b81523360048201526001600160a01b038581166024830152604482018590529151919092169163f8e4df0f91606480830192600092919082900301818387803b15801561250d57600080fd5b6005546001600160a01b031681565b600480546040805163482ad11f60e11b81523393810193909352516001600160a01b0390911691639055a23e916024808301926020929190829003018186803b15801561335a57600080fd5b505afa15801561336e573d6000803e3d6000fd5b505050506040513d602081101561338457600080fd5b50511561342057600033600080516020615f238339815191526133a682613ff9565b60408051918252519081900360200190a360095460408051634cb752db60e01b815233600482015290516001600160a01b0390921691634cb752db9160248082019260009290919082900301818387803b15801561340357600080fd5b505af1158015613417573d6000803e3d6000fd5b5050505061346d565b6040805162461bcd60e51b815260206004820152601b60248201527f41646472657373206e6f742047656e65736973204c6576656c20310000000000604482015290519081900360640190fd5b565b600e546001600160a01b031681565b60048054604080516376067e6760e01b81523393810193909352346024840152516001600160a01b03909116916376067e6791604480830192600092919082900301818387803b1580156134d157600080fd5b505af11580156134e5573d6000803e3d6000fd5b50505050565b6002546040805163c226832b60e01b81523360048201526024810184905290516101009092046001600160a01b03169163c226832b9160448082019260009290919082900301818387803b15801561232557600080fd5b806104d21461355057600080fd5b6010546001600160a01b03163314156106d357600380546001600160a01b0319166001600160a01b038481169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b1580156135c057600080fd5b505af11580156135d4573d6000803e3d6000fd5b50505050612e0e565b600a5460408051633b8d674f60e01b815233600482015290516000926001600160a01b031691633b8d674f91602480830192602092919082900301818787803b15801561362957600080fd5b505af115801561280a573d6000803e3d6000fd5b60055460408051631e4eb16d60e31b81523360048201526001600160a01b038581166024830152604482018590529151919092169163f2758b6891606480830192600092919082900301818387803b15801561369857600080fd5b505af11580156136ac573d6000803e3d6000fd5b50506040805184815290516001600160a01b0386169350309250600080516020615f238339815191529181900360200190a35050565b60055460408051631d90fdf560e31b81523360048201526024810184905290516001600160a01b039092169163ec87efa89160448082019260009290919082900301818387803b15801561232557600080fd5b60048054604080516306baf26360e01b81523393810193909352516001600160a01b03909116916306baf26391602480830192600092919082900301818387803b1580156134d157600080fd5b60048054604080516352ba171d60e01b81523393810193909352516001600160a01b03909116916352ba171d91602480830192600092919082900301818387803b1580156134d157600080fd5b60025460408051633b317dab60e01b81526001600160a01b0384811660048301529151600093610100900490921691633b317dab91602480820192602092909190829003018186803b15801561382457600080fd5b505afa158015613838573d6000803e3d6000fd5b505050506040513d602081101561384e57600080fd5b505160075460408051632bfac20f60e01b81523360048201526001600160a01b038681166024830152346044830152825194955060009485949190911692632bfac20f926064808201939182900301818787803b1580156138ae57600080fd5b505af11580156138c2573d6000803e3d6000fd5b505050506040513d60408110156138d857600080fd5b50805160209091015190925090506138ef82612d23565b506040516001600160a01b0385169082156108fc029083906000818181858888f193505050506139505760405162461bcd60e51b8152600401808060200182810382526023815260200180615ecd6023913960400191505060405180910390fd5b60408051848152905133916001600160a01b03871691600080516020615ead8339815191529181900360200190a350505050565b60025460408051637626dfcf60e01b81523360048201526024810184905290516101009092046001600160a01b031691637626dfcf9160448082019260009290919082900301818387803b15801561232557600080fd5b600480546040805163ecc517f160e01b81523393810193909352346024840152516001600160a01b039091169163ecc517f191604480830192600092919082900301818387803b1580156134d157600080fd5b336001600160a01b038216600080516020615f23833981519152613a5184613ff9565b60408051918252519081900360200190a36008546040805163eb19110d60e01b81523360048201526001600160a01b0384811660248301523460448301529151600093929092169163eb19110d9160648082019260209290919082900301818787803b158015613ac057600080fd5b505af1158015613ad4573d6000803e3d6000fd5b505050506040513d6020811015613aea57600080fd5b50516040519091506001600160a01b0383169082156108fc029083906000818181858888f19350505050612e0e5760405162461bcd60e51b8152600401808060200182810382526023815260200180615ecd6023913960400191505060405180910390fd5b6005546040805163062199f760e31b815233600482015290516001600160a01b039092169163310ccfb89160248082019260009290919082900301818387803b1580156134d157600080fd5b80516002546040805163d050a90560e01b81529051839261010090046001600160a01b03169163d050a905916004808301926020929190829003018186803b158015613be657600080fd5b505afa158015613bfa573d6000803e3d6000fd5b505050506040513d6020811015613c1057600080fd5b5051023414613c505760405162461bcd60e51b8152600401808060200182810382526033815260200180615ef06033913960400191505060405180910390fd5b60005b818110156127ac5760045483516001600160a01b039091169063ecc517f190859084908110613c7e57fe5b6020026020010151600260019054906101000a90046001600160a01b03166001600160a01b031663d050a9056040518163ffffffff1660e01b815260040160206040518083038186803b158015613cd457600080fd5b505afa158015613ce8573d6000803e3d6000fd5b505050506040513d6020811015613cfe57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b039093166004840152602483019190915251604480830192600092919082900301818387803b158015613d4e57600080fd5b505af1158015613d62573d6000803e3d6000fd5b505060019092019150613c539050565b6002546040805163225e453360e21b81523360048201526024810184905290516101009092046001600160a01b03169163897914cc9160448082019260009290919082900301818387803b15801561232557600080fd5b336001600160a01b038216600080516020615f23833981519152613dec84613ff9565b60408051918252519081900360200190a36008546040805163e7cba43360e01b81523360048201526001600160a01b0384811660248301523460448301529151600093929092169163e7cba4339160648082019260209290919082900301818787803b158015613ac057600080fd5b600f546001600160a01b031681565b6010546001600160a01b03163314156106d357600580546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b15801561292157600080fd5b6001600160a01b038216301415613f34576040805162461bcd60e51b8152602060048201526019602482015278696620285f746f203d3d20616464726573732874686973292960381b604482015290519081900360640190fd5b60065460408051631c1b2e5560e21b81523360048201526001600160a01b038581166024830152604482018590529151613fc693929092169163706cb954916064808201926020929091908290030181600087803b158015613f9557600080fd5b505af1158015613fa9573d6000803e3d6000fd5b505050506040513d6020811015613fbf57600080fd5b5051612d23565b506040805182815290516001600160a01b038416913391600080516020615ead8339815191529181900360200190a35050565b60048054604080516370a0823160e01b81526001600160a01b03858116948201949094529051600093909216916370a0823191602480820192602092909190829003018186803b158015612b3357600080fd5b600480546040805163016e045960e41b81523393810193909352346024840152516001600160a01b03909116916316e0459091604480830192600092919082900301818387803b1580156134d157600080fd5b336001600160a01b038216600080516020615f238339815191526140c284613ff9565b60408051918252519081900360200190a3600854604080516345b4f43b60e01b81523360048201526001600160a01b038481166024830152346044830152915160009392909216916345b4f43b9160648082019260209290919082900301818787803b158015613ac057600080fd5b806104d21461413f57600080fd5b6010546001600160a01b03163314156106d35781600260016101000a8154816001600160a01b0302191690836001600160a01b03160217905550600260019054906101000a90046001600160a01b03166001600160a01b03166313b9f0c76040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156135c057600080fd5b6006546001600160a01b031681565b600480546040805163ed401ac360e01b8152339381019390935260248301849052516001600160a01b039091169163ed401ac391604480830192600092919082900301818387803b15801561232557600080fd5b600254604080516349ca9db360e01b8152905160009261010090046001600160a01b0316916349ca9db3916004808301926020929190829003018186803b15801561427657600080fd5b505afa15801561428a573d6000803e3d6000fd5b505050506040513d60208110156142a057600080fd5b50516142ab57600080fd5b600260019054906101000a90046001600160a01b03166001600160a01b031663fb6560676040518163ffffffff1660e01b815260040160206040518083038186803b1580156142f957600080fd5b505afa15801561430d573d6000803e3d6000fd5b505050506040513d602081101561432357600080fd5b50516001600160a01b0316331461433957600080fd5b82518110156127ac5782818151811061434e57fe5b60200260200101516001600160a01b0316306001600160a01b0316600080516020615f23833981519152846040518082815260200191505060405180910390a3600101614339565b3332146143a257600080fd5b601154600160a01b900460ff16156143f3576040805162461bcd60e51b815260206004820152600f60248201526e14185e5bdd5d1cc8109b1bd8dad959608a1b604482015290519081900360640190fd5b4780614446576040805162461bcd60e51b815260206004820152601860248201527f282128636f6e747261637442616c616e6365203e203029290000000000000000604482015290519081900360640190fd5b6003546040805163643a943160e01b8152905160009283926001600160a01b039091169163643a943191600480820192602092909190829003018186803b15801561449057600080fd5b505afa1580156144a4573d6000803e3d6000fd5b505050506040513d60208110156144ba57600080fd5b505190505b808210156127ac576003546040805163124183a760e31b81526004810185905290516000926001600160a01b03169163920c1d38916024808301926020929190829003018186803b15801561451357600080fd5b505afa158015614527573d6000803e3d6000fd5b505050506040513d602081101561453d57600080fd5b505160025460408051633b317dab60e01b81526001600160a01b038085166004830152915193945060009361010090930490911691633b317dab91602480820192602092909190829003018186803b15801561459857600080fd5b505afa1580156145ac573d6000803e3d6000fd5b505050506040513d60208110156145c257600080fd5b50516002546040805163433ad96960e11b815290519293506000926101009092046001600160a01b031691638675b2d291600480820192602092909190829003018186803b15801561461357600080fd5b505afa158015614627573d6000803e3d6000fd5b505050506040513d602081101561463d57600080fd5b50518683028161464957fe5b0490508015614799576040516001600160a01b0384169082156108fc029083906000818181858888f193505050506146c357604080518381526020810183905281516001600160a01b038616927f50a6033bb1b577c577f67a1425e1ac9939c9382b114ae85b5274fd3e76a7f7df928290030190a2614799565b6002546040805163028f4a6960e41b815290516101009092046001600160a01b031691631eeb57ec91849184916328f4a690916004808301926020929190829003018186803b15801561471557600080fd5b505afa158015614729573d6000803e3d6000fd5b505050506040513d602081101561473f57600080fd5b5051604080516001600160e01b031960e086901b16815292909101600483015251602480830192600092919082900301818387803b15801561478057600080fd5b505af1158015614794573d6000803e3d6000fd5b505050505b5050600190920191506144bf565b336001600160a01b038216600080516020615f238339815191526147ca84613ff9565b60408051918252519081900360200190a360055460408051636311a8d360e11b81523360048201526001600160a01b0384811660248301523460448301529151600093929092169163c62351a69160648082019260209290919082900301818787803b158015613ac057600080fd5b600c5460408051631a3a8c1f60e21b81523360048201818152602483019384528551604484015285516000956001600160a01b0316946368ea307c94349493899390929160640190602080860191028083838d5b838110156148a557818101518382015260200161488d565b5050505090500193505050506020604051808303818588803b1580156148ca57600080fd5b505af11580156148de573d6000803e3d6000fd5b50505050506040513d60208110156148f557600080fd5b505190508015612e0e576127ac81612d23565b6008546001600160a01b031681565b6011546001600160a01b031681565b600a546001600160a01b031681565b60025460408051633b317dab60e01b81526001600160a01b0385811660048301529151600093610100900490921691633b317dab91602480820192602092909190829003018186803b15801561498a57600080fd5b505afa15801561499e573d6000803e3d6000fd5b505050506040513d60208110156149b457600080fd5b5051905060005b8251811015614a235760006001600160a01b03168382815181106149db57fe5b60200260200101516001600160a01b0316600080516020615f23833981519152614a0a86858151811061245557fe5b60408051918252519081900360200190a36001016149bb565b6007546040516367711a5960e01b815233600482018181526001600160a01b038881166024850152346064850181905260806044860190815289516084870152895160009793909316956367711a5995948c948c9493919260a40190602080870191028083838e5b83811015614aa3578181015183820152602001614a8b565b5050505090500195505050505050602060405180830381600087803b158015614acb57600080fd5b505af1158015614adf573d6000803e3d6000fd5b505050506040513d6020811015614af557600080fd5b50516040519091506001600160a01b0386169082156108fc029083906000818181858888f19350505050614b2857600080fd5b60408051848152905133916001600160a01b03881691600080516020615ead8339815191529181900360200190a35050505050565b600480546040805163482ad11f60e11b81526001600160a01b0385811694820194909452905160009390921691639055a23e91602480820192602092909190829003018186803b158015612b3357600080fd5b60095460408051639358928b60e01b815290516000926001600160a01b031691639358928b916004808301926020929190829003018186803b1580156127f657600080fd5b6010546001600160a01b03163314156106d357600480546001600160a01b0319166001600160a01b0383811691909117808355604080516313b9f0c760e01b8152905191909216926313b9f0c79280820192600092909182900301818387803b15801561292157600080fd5b6010546001600160a01b03163314156106d357601180546001600160a01b0319166001600160a01b0383161790556125d2565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156121155780601f106120ea57610100808354040283529160200191612115565b6010546001600160a01b03163314156106d357600980546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b15801561292157600080fd5b60025460408051634ea8c93760e11b81523360048201526024810184905290516101009092046001600160a01b031691639d51926e9160448082019260009290919082900301818387803b15801561232557600080fd5b6001600160a01b038216301415614e0f576040805162461bcd60e51b8152602060048201526019602482015278696620285f746f203d3d20616464726573732874686973292960381b604482015290519081900360640190fd5b600a54604080516317d5759960e31b81523360048201526001600160a01b038581166024830152604482018590529151919092169163beabacc891606480830192600092919082900301818387803b158015614e6a57600080fd5b505af1158015614e7e573d6000803e3d6000fd5b50506040805184815290516001600160a01b0386169350339250600080516020615f238339815191529181900360200190a35050565b6010546001600160a01b03163314156106d357600d80546001600160a01b0319166001600160a01b0383161790556125d2565b600480546040805163ca02eb9d60e01b81523393810193909352516001600160a01b039091169163ca02eb9d91602480830192600092919082900301818387803b1580156134d157600080fd5b600d5460405163fe942a2d60e01b815233600482018181526060602484019081528651606485015286516000956001600160a01b03169463fe942a2d94349490938a938a936044810191608490910190602080880191028083838f5b83811015614fa8578181015183820152602001614f90565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015614fe7578181015183820152602001614fcf565b50505050905001955050505050506020604051808303818588803b15801561500e57600080fd5b505af1158015615022573d6000803e3d6000fd5b50505050506040513d602081101561503957600080fd5b5051905080156127ac576134e581612d23565b600d546001600160a01b031681565b60025460408051633b317dab60e01b81526001600160a01b0384811660048301529151600093610100900490921691633b317dab91602480820192602092909190829003018186803b158015612b3357600080fd5b600254604080516344c077ab60e11b81523360048201526024810184905290516101009092046001600160a01b031691638980ef569160448082019260009290919082900301818387803b15801561232557600080fd5b6006546040805163ac39285b60e01b815233600482015290516001600160a01b039092169163ac39285b9160248082019260009290919082900301818387803b1580156134d157600080fd5b600480546040805163034043e160e51b81523393810193909352516001600160a01b03909116916368087c2091602480830192600092919082900301818387803b1580156134d157600080fd5b6010546001600160a01b03163314156106d357600880546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b15801561292157600080fd5b6007546001600160a01b031681565b6010546001600160a01b03163314156106d357600680546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b15801561292157600080fd5b601154600160a01b900460ff1681565b6001600160a01b0383163014156152f9576040805162461bcd60e51b8152602060048201526019602482015278696620285f746f203d3d20616464726573732874686973292960381b604482015290519081900360640190fd5b60005b81518110156153645760006001600160a01b031682828151811061531c57fe5b60200260200101516001600160a01b0316600080516020615f2383398151915261534b85858151811061245557fe5b60408051918252519081900360200190a36001016152fc565b600654604051632464a27d60e01b815233600482018181526001600160a01b038881166024850152604484018890526080606485019081528751608486015287519190951694632464a27d948a938a938a93919260a401906020808601910280838360005b838110156153e15781810151838201526020016153c9565b5050505090500195505050505050600060405180830381600087803b15801561540957600080fd5b505af115801561541d573d6000803e3d6000fd5b50506040805186815290516001600160a01b0388169350339250600080516020615ead8339815191529181900360200190a350505050565b80516002546040805163d050a90560e01b81529051839261010090046001600160a01b03169163d050a905916004808301926020929190829003018186803b1580156154a057600080fd5b505afa1580156154b4573d6000803e3d6000fd5b505050506040513d60208110156154ca57600080fd5b505160025460408051633238268960e01b815290516101009092046001600160a01b031691633238268991600480820192602092909190829003018186803b15801561551557600080fd5b505afa158015615529573d6000803e3d6000fd5b505050506040513d602081101561553f57600080fd5b5051010234146155805760405162461bcd60e51b8152600401808060200182810382526040815260200180615e6d6040913960400191505060405180910390fd5b60005b818110156127ac5760045483516001600160a01b03909116906316e04590908590849081106155ae57fe5b6020026020010151600260019054906101000a90046001600160a01b03166001600160a01b031663d050a9056040518163ffffffff1660e01b815260040160206040518083038186803b15801561560457600080fd5b505afa158015615618573d6000803e3d6000fd5b505050506040513d602081101561562e57600080fd5b505160025460408051633238268960e01b815290516101009092046001600160a01b031691633238268991600480820192602092909190829003018186803b15801561567957600080fd5b505afa15801561568d573d6000803e3d6000fd5b505050506040513d60208110156156a357600080fd5b5051604080516001600160e01b031960e087901b1681526001600160a01b0390941660048501529101602483015251604480830192600092919082900301818387803b1580156156f257600080fd5b505af1158015615706573d6000803e3d6000fd5b5050600190920191506155839050565b60048054604080516371681de560e11b81523393810193909352516001600160a01b039091169163e2d03bca91602480830192600092919082900301818387803b1580156134d157600080fd5b6001600160a01b03811633600080516020615f2383398151915261578682613ff9565b60408051918252519081900360200190a36001600160a01b0381163014156157f1576040805162461bcd60e51b8152602060048201526019602482015278696620285f746f203d3d20616464726573732874686973292960381b604482015290519081900360640190fd5b60048054604080516334d5831d60e21b815233938101939093526001600160a01b038481166024850152905191169163d3560c7491604480830192600092919082900301818387803b15801561232557600080fd5b60025460408051631d25fd5560e01b81523360048201526024810184905290516101009092046001600160a01b031691631d25fd559160448082019260009290919082900301818387803b15801561232557600080fd5b6009546001600160a01b031681565b60065460408051637cb6d17b60e11b81523360048201526024810184905290516001600160a01b039092169163f96da2f69160448082019260009290919082900301818387803b15801561232557600080fd5b6002546040805163124e91b960e01b81523360048201526024810184905290516101009092046001600160a01b03169163124e91b99160448082019260009290919082900301818387803b15801561232557600080fd5b60025460408051635c65816560e01b81526001600160a01b03858116600483015284811660248301529151600093610100900490921691635c65816591604480820192602092909190829003018186803b1580156159b357600080fd5b505afa1580156159c7573d6000803e3d6000fd5b505050506040513d60208110156159dd57600080fd5b50519392505050565b60025460408051633bb868dd60e21b81523360048201526024810184905290516101009092046001600160a01b03169163eee1a3749160448082019260009290919082900301818387803b15801561232557600080fd5b6011546001600160a01b03163314156106d357601280546001600160a01b0319166001600160a01b0383161790556125d2565b600c546001600160a01b031681565b6000600260019054906101000a90046001600160a01b03166001600160a01b031663e5f65c716040518163ffffffff1660e01b815260040160206040518083038186803b158015615acf57600080fd5b505afa158015615ae3573d6000803e3d6000fd5b505050506040513d6020811015615af957600080fd5b50514303905090565b6010546001600160a01b03166106d357601080546001600160a01b0319163317905561346d565b601154600160a01b900460ff161561346d576012546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505061346d57600080fd5b6010546001600160a01b03163314156106d357600c80546001600160a01b0319166001600160a01b0383161790556125d2565b60025461010090046001600160a01b031681565b805160005b818110156127ac5760045483516001600160a01b03909116906352ba171d90859084908110615be357fe5b60200260200101516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b158015615c3357600080fd5b505af1158015615c47573d6000803e3d6000fd5b505060019092019150615bb89050565b600480546040805163eb0fbbad60e01b81526001600160a01b038581169482019490945290516000939092169163eb0fbbad91602480820192602092909190829003018186803b158015612b3357600080fd5b600480546040805163d42e1c2f60e01b815233938101939093526001600160a01b038481166024850152905191169163d42e1c2f91604480830192600092919082900301818387803b15801561232557600080fd5b6010546001600160a01b03163314156106d357600a80546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b15801561292157600080fd5b6010546001600160a01b031681565b60048054604080516001620769d360e31b031981526001600160a01b038581169482019490945290516000939092169163ffc4b16891602480820192602092909190829003018186803b158015612b3357600080fd5b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615e1557805160ff1916838001178555615e42565b82800160010185558215615e42579182015b82811115615e42578251825591602001919060010190615e27565b50615e4e929150615e52565b5090565b61252b91905b80821115615e4e5760008155600101615e5856fe2877656956616c756520213d2028286d73672e76616c7565202b2070632e657468466565546f55706772616465546f4c6576656c332829292a636f756e742929cc6ddb19d323297cc6ed8f3dbda06395f6f153d24bf678f36305752ab635e10928215f616464726573732e73656e642866656573546f506179546f53656c6c65722929286d73672e76616c756520213d202870632e657468466565546f55706772616465546f4c6576656c3328292a636f756e742929ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef286d73672e76616c756520213d2070632e657468466565546f55706772616465546f4c6576656c3228292a636f756e7429a264697066735822122079765151e361fad17aba014cb886e4508095db6a9c63f145d70b230953f5f8a164736f6c634300060000330000000000000000000000000e35a9caef5f24e1802c51ee935836af07d73b3300000000000000000000000012c60985421f3ea92ac4997e2cec8b1bbf33ee660000000000000000000000007d5424f6c617c486ab4437b88410357bba7d124e000000000000000000000000426d86b00f85d8ea716727fec9cdff58f65504b3000000000000000000000000c59e57fc338e4dd177904faccd063c688833bf710000000000000000000000008efd839d6bcabaac5072d1c2bb360cbdb130c1b60000000000000000000000007ca3ffa001d9bc98bf1fdfb1e48830b785cd67990000000000000000000000005e179082c652fd750b7bf3b48c5a253a63ba98330000000000000000000000000e5047e1273dfab56eb800f31da9e8a8872e14d8

Deployed Bytecode

0x6080604052600436106106d35760003560e01c80637347060c1161037a578063b9c25cae116101d1578063ddcbfce011610102578063e69919ae116100a0578063ef3dd5c81161007a578063ef3dd5c814611fe1578063fd3c763814612014578063fdbc653014612047578063ffc4b1681461205c576106d3565b8063e69919ae14611eeb578063e9095e5c14611f00578063eb0fbbad14611fae576106d3565b8063e12ed13c116100dc578063e12ed13c14611e79578063e241263014611e8e578063e33eaaf714611ea3578063e4c4b47c14611eb8576106d3565b8063ddcbfce014611e07578063df02f1db14611e31578063df462a4714611e64576106d3565b8063c92f146a1161016f578063dae487ca11610149578063dae487ca14611d63578063db16cb5b14611d78578063dd2c455c14611da2578063dd62ed3e14611dcc576106d3565b8063c92f146a14611cf1578063cf91e33114611d06578063d4f7457914611d39576106d3565b8063bdbdcd75116101ab578063bdbdcd7514611b45578063c0ea2e7714611b78578063c169653314611b8d578063c3536e8b14611c50576106d3565b8063b9c25cae14611ae8578063bad0f93414611afd578063bd65fc4c14611b30576106d3565b806393c63b9d116102ab578063aa13504e11610249578063aee1fabc11610223578063aee1fabc14611a61578063af46aa0814611a76578063b3e9047614611aa9578063b4e85ec814611ad3576106d3565b8063aa13504e146118f6578063ac0f738f14611929578063aede090f1461193e576106d3565b806397b5e5541161028557806397b5e55414611858578063a33b12601461188b578063a5094f8f14611893578063a9059cbb146118bd576106d3565b806393c63b9d146117dd57806394ccd96f1461181057806395d89b4114611843576106d3565b806380167ebf116103185780638af8edfc116102f25780638af8edfc146116cf5780638ccb0023146116e45780639055a23e146117955780639358928b146117c8576106d3565b806380167ebf146116045780638278188a146116a55780638a670113146116ba576106d3565b8063742ec16411610354578063742ec164146114ef57806374a72e41146115195780637b411ca5146115c95780637d20a24f146115de576106d3565b80637347060c1461147b57806373668817146114a157806373f0cc2d146114da576106d3565b80633521bbed1161052e57806361a3be801161045f5780636dcb9800116103fd5780637022c79e116103d75780637022c79e146113d45780637050ec891461140757806370a082311461144057806370a8a2e614611473576106d3565b80636dcb98001461136f5780636e3ee8f1146113995780636fd615bf146113bf576106d3565b80636af43470116104395780636af434701461128b5780636b3b2800146112935780636be2ca43146112b95780636c2f12e6146112ce576106d3565b806361a3be8014611226578063633865511461123b57806366a497b714611261576106d3565b80634890bb51116104cc578063542aa99f116104a6578063542aa99f1461119957806357e08c60146111ae5780635b48a884146111e75780635b65268f14611211576106d3565b80634890bb511461112e57806350ac2f6914611136578063522c628f14611160576106d3565b80633c64cfc6116105085780633c64cfc6146110b6578063416e8604146110ef578063460b72ce14611104578063474b07bf14611119576106d3565b80633521bbed14610f1957806336d6991014610f4c578063399c40ea14610f7f576106d3565b806321df8098116106085780632940187a116105a65780633118f543116105805780633118f54314610e89578063313ce56714610e9e5780633181a5a714610ec957806333d5993414610eef576106d3565b80632940187a14610cf65780632cd3fd7014610d295780632f71d02214610d53576106d3565b806323e46e7c116105e257806323e46e7c14610c3f57806324ac57b714610c6b57806325d998bb14610c805780632631ef1214610cb3576106d3565b806321df809814610b9057806322e3f16214610bc357806323b872dd14610bfc576106d3565b80630d061e7511610675578063177e48d01161064f578063177e48d014610a7d57806318160ddd14610b1e5780631d2cb86114610b335780631ec32a6614610b66576106d3565b80630d061e7514610a0b578063124d83d814610a20578063128fb93014610a4a576106d3565b8063095ea7b3116106b1578063095ea7b3146108b857806309ae18441461090557806309f6c607146109b35780630a63361c146109da576106d3565b806306fdde03146106d857806307c5c18e14610762578063088c35fd1461088e575b600080fd5b3480156106e457600080fd5b506106ed61208f565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561072757818101518382015260200161070f565b50505050905090810190601f1680156107545780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61088c6004803603606081101561077857600080fd5b81359190810190604081016020820135600160201b81111561079957600080fd5b8201836020820111156107ab57600080fd5b803590602001918460208302840111600160201b831117156107cc57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561081b57600080fd5b82018360208201111561082d57600080fd5b803590602001918460208302840111600160201b8311171561084e57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061211d945050505050565b005b34801561089a57600080fd5b5061088c600480360360208110156108b157600080fd5b50356122ce565b3480156108c457600080fd5b506108f1600480360360408110156108db57600080fd5b506001600160a01b038135169060200135612340565b604080519115158252519081900360200190f35b34801561091157600080fd5b5061088c6004803603602081101561092857600080fd5b810190602081018135600160201b81111561094257600080fd5b82018360208201111561095457600080fd5b803590602001918460208302840111600160201b8311171561097557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612403945050505050565b3480156109bf57600080fd5b506109c8612529565b60408051918252519081900360200190f35b3480156109e657600080fd5b506109ef61252e565b604080516001600160a01b039092168252519081900360200190f35b348015610a1757600080fd5b506109ef61253d565b348015610a2c57600080fd5b5061088c60048036036020811015610a4357600080fd5b503561254c565b348015610a5657600080fd5b5061088c60048036036020811015610a6d57600080fd5b50356001600160a01b03166125a3565b61088c60048036036020811015610a9357600080fd5b810190602081018135600160201b811115610aad57600080fd5b820183602082011115610abf57600080fd5b803590602001918460208302840111600160201b83111715610ae057600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506125d5945050505050565b348015610b2a57600080fd5b506109c86127b1565b348015610b3f57600080fd5b5061088c60048036036020811015610b5657600080fd5b50356001600160a01b0316612827565b348015610b7257600080fd5b5061088c60048036036020811015610b8957600080fd5b503561285a565b348015610b9c57600080fd5b5061088c60048036036020811015610bb357600080fd5b50356001600160a01b03166128b1565b348015610bcf57600080fd5b5061088c60048036036040811015610be657600080fd5b506001600160a01b03813516906020013561293e565b348015610c0857600080fd5b506108f160048036036060811015610c1f57600080fd5b506001600160a01b038135811691602081013590911690604001356129c7565b348015610c4b57600080fd5b5061088c60048036036020811015610c6257600080fd5b50351515612aa2565b348015610c7757600080fd5b506109ef612ad1565b348015610c8c57600080fd5b506109c860048036036020811015610ca357600080fd5b50356001600160a01b0316612ae0565b348015610cbf57600080fd5b5061088c60048036036060811015610cd657600080fd5b506001600160a01b03813581169160208101359091169060400135612b65565b348015610d0257600080fd5b506108f160048036036020811015610d1957600080fd5b50356001600160a01b0316612cd0565b348015610d3557600080fd5b506108f160048036036020811015610d4c57600080fd5b5035612d23565b348015610d5f57600080fd5b5061088c60048036036040811015610d7657600080fd5b810190602081018135600160201b811115610d9057600080fd5b820183602082011115610da257600080fd5b803590602001918460018302840111600160201b83111715610dc357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b811115610e1557600080fd5b820183602082011115610e2757600080fd5b803590602001918460018302840111600160201b83111715610e4857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612dd4945050505050565b348015610e9557600080fd5b506109ef612e12565b348015610eaa57600080fd5b50610eb3612e21565b6040805160ff9092168252519081900360200190f35b61088c60048036036020811015610edf57600080fd5b50356001600160a01b0316612e2a565b348015610efb57600080fd5b5061088c60048036036020811015610f1257600080fd5b5035613017565b348015610f2557600080fd5b5061088c60048036036020811015610f3c57600080fd5b50356001600160a01b031661306e565b348015610f5857600080fd5b506108f160048036036020811015610f6f57600080fd5b50356001600160a01b03166130a1565b348015610f8b57600080fd5b5061088c60048036036060811015610fa257600080fd5b81359190810190604081016020820135600160201b811115610fc357600080fd5b820183602082011115610fd557600080fd5b803590602001918460208302840111600160201b83111715610ff657600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561104557600080fd5b82018360208201111561105757600080fd5b803590602001918460208302840111600160201b8311171561107857600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506130f4945050505050565b3480156110c257600080fd5b5061088c600480360360408110156110d957600080fd5b506001600160a01b0381351690602001356132a4565b3480156110fb57600080fd5b506109ef6132ff565b34801561111057600080fd5b5061088c61330e565b34801561112557600080fd5b506109ef61346f565b61088c61347e565b34801561114257600080fd5b5061088c6004803603602081101561115957600080fd5b50356134eb565b34801561116c57600080fd5b5061088c6004803603604081101561118357600080fd5b506001600160a01b038135169060200135613542565b3480156111a557600080fd5b506108f16135dd565b3480156111ba57600080fd5b5061088c600480360360408110156111d157600080fd5b506001600160a01b03813516906020013561363d565b3480156111f357600080fd5b5061088c6004803603602081101561120a57600080fd5b50356136e2565b34801561121d57600080fd5b5061088c613735565b34801561123257600080fd5b5061088c613782565b61088c6004803603602081101561125157600080fd5b50356001600160a01b03166137cf565b34801561126d57600080fd5b5061088c6004803603602081101561128457600080fd5b5035613984565b61088c6139db565b61088c600480360360208110156112a957600080fd5b50356001600160a01b0316613a2e565b3480156112c557600080fd5b5061088c613b4f565b61088c600480360360208110156112e457600080fd5b810190602081018135600160201b8111156112fe57600080fd5b82018360208201111561131057600080fd5b803590602001918460208302840111600160201b8311171561133157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613b9b945050505050565b34801561137b57600080fd5b5061088c6004803603602081101561139257600080fd5b5035613d72565b61088c600480360360208110156113af57600080fd5b50356001600160a01b0316613dc9565b3480156113cb57600080fd5b506109ef613e5b565b3480156113e057600080fd5b5061088c600480360360208110156113f757600080fd5b50356001600160a01b0316613e6a565b34801561141357600080fd5b5061088c6004803603604081101561142a57600080fd5b506001600160a01b038135169060200135613eda565b34801561144c57600080fd5b506109c86004803603602081101561146357600080fd5b50356001600160a01b0316613ff9565b61088c61404c565b61088c6004803603602081101561149157600080fd5b50356001600160a01b031661409f565b3480156114ad57600080fd5b5061088c600480360360408110156114c457600080fd5b506001600160a01b038135169060200135614131565b3480156114e657600080fd5b506109ef6141c9565b3480156114fb57600080fd5b5061088c6004803603602081101561151257600080fd5b50356141d8565b34801561152557600080fd5b5061088c6004803603604081101561153c57600080fd5b810190602081018135600160201b81111561155657600080fd5b82018360208201111561156857600080fd5b803590602001918460208302840111600160201b8311171561158957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550509135925061422c915050565b3480156115d557600080fd5b5061088c614396565b61088c600480360360208110156115f457600080fd5b50356001600160a01b03166147a7565b61088c6004803603602081101561161a57600080fd5b810190602081018135600160201b81111561163457600080fd5b82018360208201111561164657600080fd5b803590602001918460208302840111600160201b8311171561166757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550614839945050505050565b3480156116b157600080fd5b506109ef614908565b3480156116c657600080fd5b506109ef614917565b3480156116db57600080fd5b506109ef614926565b61088c600480360360408110156116fa57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561172457600080fd5b82018360208201111561173657600080fd5b803590602001918460208302840111600160201b8311171561175757600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550614935945050505050565b3480156117a157600080fd5b506108f1600480360360208110156117b857600080fd5b50356001600160a01b0316614b5d565b3480156117d457600080fd5b506109c8614bb0565b3480156117e957600080fd5b5061088c6004803603602081101561180057600080fd5b50356001600160a01b0316614bf5565b34801561181c57600080fd5b5061088c6004803603602081101561183357600080fd5b50356001600160a01b0316614c61565b34801561184f57600080fd5b506106ed614c94565b34801561186457600080fd5b5061088c6004803603602081101561187b57600080fd5b50356001600160a01b0316614cee565b61088c61346d565b34801561189f57600080fd5b5061088c600480360360208110156118b657600080fd5b5035614d5e565b3480156118c957600080fd5b5061088c600480360360408110156118e057600080fd5b506001600160a01b038135169060200135614db5565b34801561190257600080fd5b5061088c6004803603602081101561191957600080fd5b50356001600160a01b0316614eb4565b34801561193557600080fd5b5061088c614ee7565b61088c6004803603604081101561195457600080fd5b810190602081018135600160201b81111561196e57600080fd5b82018360208201111561198057600080fd5b803590602001918460208302840111600160201b831117156119a157600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156119f057600080fd5b820183602082011115611a0257600080fd5b803590602001918460208302840111600160201b83111715611a2357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550614f34945050505050565b348015611a6d57600080fd5b506109ef61504c565b348015611a8257600080fd5b506109c860048036036020811015611a9957600080fd5b50356001600160a01b031661505b565b348015611ab557600080fd5b5061088c60048036036020811015611acc57600080fd5b50356150b0565b348015611adf57600080fd5b5061088c615107565b348015611af457600080fd5b5061088c615153565b348015611b0957600080fd5b5061088c60048036036020811015611b2057600080fd5b50356001600160a01b03166151a0565b348015611b3c57600080fd5b506109ef615210565b348015611b5157600080fd5b5061088c60048036036020811015611b6857600080fd5b50356001600160a01b031661521f565b348015611b8457600080fd5b506108f161528f565b348015611b9957600080fd5b5061088c60048036036060811015611bb057600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b811115611bdf57600080fd5b820183602082011115611bf157600080fd5b803590602001918460208302840111600160201b83111715611c1257600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061529f945050505050565b61088c60048036036020811015611c6657600080fd5b810190602081018135600160201b811115611c8057600080fd5b820183602082011115611c9257600080fd5b803590602001918460208302840111600160201b83111715611cb357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550615455945050505050565b348015611cfd57600080fd5b5061088c615716565b348015611d1257600080fd5b5061088c60048036036020811015611d2957600080fd5b50356001600160a01b0316615763565b348015611d4557600080fd5b5061088c60048036036020811015611d5c57600080fd5b5035615846565b348015611d6f57600080fd5b506109ef61589d565b348015611d8457600080fd5b5061088c60048036036020811015611d9b57600080fd5b50356158ac565b348015611dae57600080fd5b5061088c60048036036020811015611dc557600080fd5b50356158ff565b348015611dd857600080fd5b506109c860048036036040811015611def57600080fd5b506001600160a01b0381358116916020013516615956565b348015611e1357600080fd5b5061088c60048036036020811015611e2a57600080fd5b50356159e6565b348015611e3d57600080fd5b5061088c60048036036020811015611e5457600080fd5b50356001600160a01b0316615a3d565b348015611e7057600080fd5b506109ef615a70565b348015611e8557600080fd5b506109c8615a7f565b348015611e9a57600080fd5b5061088c615b02565b348015611eaf57600080fd5b5061088c615b29565b348015611ec457600080fd5b5061088c60048036036020811015611edb57600080fd5b50356001600160a01b0316615b6c565b348015611ef757600080fd5b506109ef615b9f565b348015611f0c57600080fd5b5061088c60048036036020811015611f2357600080fd5b810190602081018135600160201b811115611f3d57600080fd5b820183602082011115611f4f57600080fd5b803590602001918460208302840111600160201b83111715611f7057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550615bb3945050505050565b348015611fba57600080fd5b506108f160048036036020811015611fd157600080fd5b50356001600160a01b0316615c57565b348015611fed57600080fd5b5061088c6004803603602081101561200457600080fd5b50356001600160a01b0316615caa565b34801561202057600080fd5b5061088c6004803603602081101561203757600080fd5b50356001600160a01b0316615cff565b34801561205357600080fd5b506109ef615d6f565b34801561206857600080fd5b506108f16004803603602081101561207f57600080fd5b50356001600160a01b0316615d7e565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156121155780601f106120ea57610100808354040283529160200191612115565b820191906000526020600020905b8154815290600101906020018083116120f857829003601f168201915b505050505081565b82156121cd57600a54600e54604080516317d5759960e31b81523360048201526001600160a01b039283166024820152604481018790529051919092169163beabacc891606480830192600092919082900301818387803b15801561218157600080fd5b505af1158015612195573d6000803e3d6000fd5b5050600e546040805187815290516001600160a01b039092169350339250600080516020615f23833981519152919081900360200190a35b600e54604051632433a49160e11b81523360048201818152602483018790526080604484019081528651608485015286516001600160a01b03909516946348674922943494938a938a938a93606481019160a4909101906020808801910280838360005b83811015612249578181015183820152602001612231565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015612288578181015183820152602001612270565b5050505090500196505050505050506000604051808303818588803b1580156122b057600080fd5b505af11580156122c4573d6000803e3d6000fd5b5050505050505050565b600254604080516305de45bd60e11b81523360048201526024810184905290516101009092046001600160a01b031691630bbc8b7a9160448082019260009290919082900301818387803b15801561232557600080fd5b505af1158015612339573d6000803e3d6000fd5b5050505050565b6002546040805163779a859960e11b81523360048201526001600160a01b03858116602483015260448201859052915160009361010090049092169163ef350b3291606480820192869290919082900301818387803b1580156123a257600080fd5b505af11580156123b6573d6000803e3d6000fd5b50506040805185815290516001600160a01b03871693503392507f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259181900360200190a350600192915050565b60005b815181101561247b5760006001600160a01b031682828151811061242657fe5b60200260200101516001600160a01b0316600080516020615f2383398151915261246285858151811061245557fe5b6020026020010151613ff9565b60408051918252519081900360200190a3600101612406565b6004805460408051633ca4fe7b60e11b815233938101848152602482019283528651604483015286516001600160a01b0390941694637949fcf6949093889390916064909101906020808601910280838360005b838110156124e75781810151838201526020016124cf565b505050509050019350505050600060405180830381600087803b15801561250d57600080fd5b505af1158015612521573d6000803e3d6000fd5b505050505050565b435b90565b6003546001600160a01b031681565b6012546001600160a01b031681565b60025460408051633429fca760e21b81523360048201526024810184905290516101009092046001600160a01b03169163d0a7f29c9160448082019260009290919082900301818387803b15801561232557600080fd5b6010546001600160a01b03163314156106d357600b80546001600160a01b0319166001600160a01b0383161790555b50565b805160025460408051633238268960e01b81529051839261010090046001600160a01b0316916332382689916004808301926020929190829003018186803b15801561262057600080fd5b505afa158015612634573d6000803e3d6000fd5b505050506040513d602081101561264a57600080fd5b505102341461268a5760405162461bcd60e51b8152600401808060200182810382526031815260200180615f436031913960400191505060405180910390fd5b60005b818110156127ac5760045483516001600160a01b03909116906376067e67908590849081106126b857fe5b6020026020010151600260019054906101000a90046001600160a01b03166001600160a01b031663323826896040518163ffffffff1660e01b815260040160206040518083038186803b15801561270e57600080fd5b505afa158015612722573d6000803e3d6000fd5b505050506040513d602081101561273857600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b039093166004840152602483019190915251604480830192600092919082900301818387803b15801561278857600080fd5b505af115801561279c573d6000803e3d6000fd5b50506001909201915061268d9050565b505050565b600a54604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b1580156127f657600080fd5b505afa15801561280a573d6000803e3d6000fd5b505050506040513d602081101561282057600080fd5b5051905090565b6010546001600160a01b03163314156106d357600e80546001600160a01b0319166001600160a01b0383161790556125d2565b600254604080516372a4edd560e01b81523360048201526024810184905290516101009092046001600160a01b0316916372a4edd59160448082019260009290919082900301818387803b15801561232557600080fd5b6010546001600160a01b03163314156106d357600780546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b15801561292157600080fd5b505af1158015612935573d6000803e3d6000fd5b505050506125d2565b6040805182815290516001600160a01b038416913091600080516020615f238339815191529181900360200190a3600954604080516359bc8a9160e01b81523360048201526001600160a01b03858116602483015260448201859052915191909216916359bc8a9191606480830192600092919082900301818387803b15801561250d57600080fd5b600a5460408051630aed65f560e11b81523360048201526001600160a01b0386811660248301528581166044830152606482018590529151600093849316916315dacbea91608480830192602092919082900301818787803b158015612a2c57600080fd5b505af1158015612a40573d6000803e3d6000fd5b505050506040513d6020811015612a5657600080fd5b505190508015612a9a57836001600160a01b0316856001600160a01b0316600080516020615f23833981519152856040518082815260200191505060405180910390a35b949350505050565b6011546001600160a01b03163314156125d25760118054821515600160a01b0260ff60a01b1990911617905550565b600b546001600160a01b031681565b60048054604080516325d998bb60e01b81526001600160a01b03858116948201949094529051600093909216916325d998bb91602480820192602092909190829003018186803b158015612b3357600080fd5b505afa158015612b47573d6000803e3d6000fd5b505050506040513d6020811015612b5d57600080fd5b505192915050565b600f546001600160a01b0316331480612b8d575060025461010090046001600160a01b031633145b80612ba257506003546001600160a01b031633145b80612bb757506004546001600160a01b031633145b80612bcc57506005546001600160a01b031633145b80612be157506006546001600160a01b031633145b80612bf657506007546001600160a01b031633145b80612c0b57506008546001600160a01b031633145b80612c2057506009546001600160a01b031633145b80612c355750600a546001600160a01b031633145b80612c4a5750600b546001600160a01b031633145b80612c5f5750600c546001600160a01b031633145b80612c745750600d546001600160a01b031633145b80612c895750600e546001600160a01b031633145b612c9257600080fd5b816001600160a01b0316836001600160a01b0316600080516020615f23833981519152836040518082815260200191505060405180910390a3505050565b60048054604080516314a00c3d60e11b81526001600160a01b0385811694820194909452905160009390921691632940187a91602480820192602092909190829003018186803b158015612b3357600080fd5b6004805460408051631c46b08160e11b8152339381019390935260248301849052516000926001600160a01b039092169163388d610291604480830192602092919082900301818787803b158015612d7a57600080fd5b505af1158015612d8e573d6000803e3d6000fd5b505050506040513d6020811015612da457600080fd5b50506040805183815290516000913391600080516020615f238339815191529181900360200190a3506001919050565b6010546001600160a01b03163314156106d3578151612dfa906000906020850190615dd4565b5080516127ac906001906020840190615dd4565b5050565b6004546001600160a01b031681565b60025460ff1681565b600480546040805163482ad11f60e11b81526001600160a01b038581169482019490945290519290911691639055a23e91602480820192602092909190829003018186803b158015612e7b57600080fd5b505afa158015612e8f573d6000803e3d6000fd5b505050506040513d6020811015612ea557600080fd5b505115612eba57612eb581613a2e565b6125d2565b60048054604080516314a00c3d60e11b81526001600160a01b038581169482019490945290519290911691632940187a91602480820192602092909190829003018186803b158015612f0b57600080fd5b505afa158015612f1f573d6000803e3d6000fd5b505050506040513d6020811015612f3557600080fd5b505115612f4557612eb58161409f565b60048054604080516001620769d360e31b031981526001600160a01b03858116948201949094529051929091169163ffc4b16891602480820192602092909190829003018186803b158015612f9957600080fd5b505afa158015612fad573d6000803e3d6000fd5b505050506040513d6020811015612fc357600080fd5b505115612fd357612eb581613dc9565b6040805162461bcd60e51b815260206004820152601460248201527341646472657373206e6f7420666f722073616c6560601b604482015290519081900360640190fd5b6002546040805163f5d1858560e01b81523360048201526024810184905290516101009092046001600160a01b03169163f5d185859160448082019260009290919082900301818387803b15801561232557600080fd5b6010546001600160a01b03163314156106d357600f80546001600160a01b0319166001600160a01b0383161790556125d2565b600480546040805163036d699160e41b81526001600160a01b03858116948201949094529051600093909216916336d6991091602480820192602092909190829003018186803b158015612b3357600080fd5b82156131a457600a54600b54604080516317d5759960e31b81523360048201526001600160a01b039283166024820152604481018790529051919092169163beabacc891606480830192600092919082900301818387803b15801561315857600080fd5b505af115801561316c573d6000803e3d6000fd5b5050600b546040805187815290516001600160a01b039092169350339250600080516020615f23833981519152919081900360200190a35b600b54604051630a67889360e01b81523360048201818152602483018790526080604484019081528651608485015286516001600160a01b0390951694630a6788939489938993899391929091606482019160a401906020808801910280838360005b8381101561321f578181015183820152602001613207565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561325e578181015183820152602001613246565b505050509050019650505050505050600060405180830381600087803b15801561328757600080fd5b505af115801561329b573d6000803e3d6000fd5b50505050505050565b6006546040805163f8e4df0f60e01b81523360048201526001600160a01b038581166024830152604482018590529151919092169163f8e4df0f91606480830192600092919082900301818387803b15801561250d57600080fd5b6005546001600160a01b031681565b600480546040805163482ad11f60e11b81523393810193909352516001600160a01b0390911691639055a23e916024808301926020929190829003018186803b15801561335a57600080fd5b505afa15801561336e573d6000803e3d6000fd5b505050506040513d602081101561338457600080fd5b50511561342057600033600080516020615f238339815191526133a682613ff9565b60408051918252519081900360200190a360095460408051634cb752db60e01b815233600482015290516001600160a01b0390921691634cb752db9160248082019260009290919082900301818387803b15801561340357600080fd5b505af1158015613417573d6000803e3d6000fd5b5050505061346d565b6040805162461bcd60e51b815260206004820152601b60248201527f41646472657373206e6f742047656e65736973204c6576656c20310000000000604482015290519081900360640190fd5b565b600e546001600160a01b031681565b60048054604080516376067e6760e01b81523393810193909352346024840152516001600160a01b03909116916376067e6791604480830192600092919082900301818387803b1580156134d157600080fd5b505af11580156134e5573d6000803e3d6000fd5b50505050565b6002546040805163c226832b60e01b81523360048201526024810184905290516101009092046001600160a01b03169163c226832b9160448082019260009290919082900301818387803b15801561232557600080fd5b806104d21461355057600080fd5b6010546001600160a01b03163314156106d357600380546001600160a01b0319166001600160a01b038481169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b1580156135c057600080fd5b505af11580156135d4573d6000803e3d6000fd5b50505050612e0e565b600a5460408051633b8d674f60e01b815233600482015290516000926001600160a01b031691633b8d674f91602480830192602092919082900301818787803b15801561362957600080fd5b505af115801561280a573d6000803e3d6000fd5b60055460408051631e4eb16d60e31b81523360048201526001600160a01b038581166024830152604482018590529151919092169163f2758b6891606480830192600092919082900301818387803b15801561369857600080fd5b505af11580156136ac573d6000803e3d6000fd5b50506040805184815290516001600160a01b0386169350309250600080516020615f238339815191529181900360200190a35050565b60055460408051631d90fdf560e31b81523360048201526024810184905290516001600160a01b039092169163ec87efa89160448082019260009290919082900301818387803b15801561232557600080fd5b60048054604080516306baf26360e01b81523393810193909352516001600160a01b03909116916306baf26391602480830192600092919082900301818387803b1580156134d157600080fd5b60048054604080516352ba171d60e01b81523393810193909352516001600160a01b03909116916352ba171d91602480830192600092919082900301818387803b1580156134d157600080fd5b60025460408051633b317dab60e01b81526001600160a01b0384811660048301529151600093610100900490921691633b317dab91602480820192602092909190829003018186803b15801561382457600080fd5b505afa158015613838573d6000803e3d6000fd5b505050506040513d602081101561384e57600080fd5b505160075460408051632bfac20f60e01b81523360048201526001600160a01b038681166024830152346044830152825194955060009485949190911692632bfac20f926064808201939182900301818787803b1580156138ae57600080fd5b505af11580156138c2573d6000803e3d6000fd5b505050506040513d60408110156138d857600080fd5b50805160209091015190925090506138ef82612d23565b506040516001600160a01b0385169082156108fc029083906000818181858888f193505050506139505760405162461bcd60e51b8152600401808060200182810382526023815260200180615ecd6023913960400191505060405180910390fd5b60408051848152905133916001600160a01b03871691600080516020615ead8339815191529181900360200190a350505050565b60025460408051637626dfcf60e01b81523360048201526024810184905290516101009092046001600160a01b031691637626dfcf9160448082019260009290919082900301818387803b15801561232557600080fd5b600480546040805163ecc517f160e01b81523393810193909352346024840152516001600160a01b039091169163ecc517f191604480830192600092919082900301818387803b1580156134d157600080fd5b336001600160a01b038216600080516020615f23833981519152613a5184613ff9565b60408051918252519081900360200190a36008546040805163eb19110d60e01b81523360048201526001600160a01b0384811660248301523460448301529151600093929092169163eb19110d9160648082019260209290919082900301818787803b158015613ac057600080fd5b505af1158015613ad4573d6000803e3d6000fd5b505050506040513d6020811015613aea57600080fd5b50516040519091506001600160a01b0383169082156108fc029083906000818181858888f19350505050612e0e5760405162461bcd60e51b8152600401808060200182810382526023815260200180615ecd6023913960400191505060405180910390fd5b6005546040805163062199f760e31b815233600482015290516001600160a01b039092169163310ccfb89160248082019260009290919082900301818387803b1580156134d157600080fd5b80516002546040805163d050a90560e01b81529051839261010090046001600160a01b03169163d050a905916004808301926020929190829003018186803b158015613be657600080fd5b505afa158015613bfa573d6000803e3d6000fd5b505050506040513d6020811015613c1057600080fd5b5051023414613c505760405162461bcd60e51b8152600401808060200182810382526033815260200180615ef06033913960400191505060405180910390fd5b60005b818110156127ac5760045483516001600160a01b039091169063ecc517f190859084908110613c7e57fe5b6020026020010151600260019054906101000a90046001600160a01b03166001600160a01b031663d050a9056040518163ffffffff1660e01b815260040160206040518083038186803b158015613cd457600080fd5b505afa158015613ce8573d6000803e3d6000fd5b505050506040513d6020811015613cfe57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b039093166004840152602483019190915251604480830192600092919082900301818387803b158015613d4e57600080fd5b505af1158015613d62573d6000803e3d6000fd5b505060019092019150613c539050565b6002546040805163225e453360e21b81523360048201526024810184905290516101009092046001600160a01b03169163897914cc9160448082019260009290919082900301818387803b15801561232557600080fd5b336001600160a01b038216600080516020615f23833981519152613dec84613ff9565b60408051918252519081900360200190a36008546040805163e7cba43360e01b81523360048201526001600160a01b0384811660248301523460448301529151600093929092169163e7cba4339160648082019260209290919082900301818787803b158015613ac057600080fd5b600f546001600160a01b031681565b6010546001600160a01b03163314156106d357600580546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b15801561292157600080fd5b6001600160a01b038216301415613f34576040805162461bcd60e51b8152602060048201526019602482015278696620285f746f203d3d20616464726573732874686973292960381b604482015290519081900360640190fd5b60065460408051631c1b2e5560e21b81523360048201526001600160a01b038581166024830152604482018590529151613fc693929092169163706cb954916064808201926020929091908290030181600087803b158015613f9557600080fd5b505af1158015613fa9573d6000803e3d6000fd5b505050506040513d6020811015613fbf57600080fd5b5051612d23565b506040805182815290516001600160a01b038416913391600080516020615ead8339815191529181900360200190a35050565b60048054604080516370a0823160e01b81526001600160a01b03858116948201949094529051600093909216916370a0823191602480820192602092909190829003018186803b158015612b3357600080fd5b600480546040805163016e045960e41b81523393810193909352346024840152516001600160a01b03909116916316e0459091604480830192600092919082900301818387803b1580156134d157600080fd5b336001600160a01b038216600080516020615f238339815191526140c284613ff9565b60408051918252519081900360200190a3600854604080516345b4f43b60e01b81523360048201526001600160a01b038481166024830152346044830152915160009392909216916345b4f43b9160648082019260209290919082900301818787803b158015613ac057600080fd5b806104d21461413f57600080fd5b6010546001600160a01b03163314156106d35781600260016101000a8154816001600160a01b0302191690836001600160a01b03160217905550600260019054906101000a90046001600160a01b03166001600160a01b03166313b9f0c76040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156135c057600080fd5b6006546001600160a01b031681565b600480546040805163ed401ac360e01b8152339381019390935260248301849052516001600160a01b039091169163ed401ac391604480830192600092919082900301818387803b15801561232557600080fd5b600254604080516349ca9db360e01b8152905160009261010090046001600160a01b0316916349ca9db3916004808301926020929190829003018186803b15801561427657600080fd5b505afa15801561428a573d6000803e3d6000fd5b505050506040513d60208110156142a057600080fd5b50516142ab57600080fd5b600260019054906101000a90046001600160a01b03166001600160a01b031663fb6560676040518163ffffffff1660e01b815260040160206040518083038186803b1580156142f957600080fd5b505afa15801561430d573d6000803e3d6000fd5b505050506040513d602081101561432357600080fd5b50516001600160a01b0316331461433957600080fd5b82518110156127ac5782818151811061434e57fe5b60200260200101516001600160a01b0316306001600160a01b0316600080516020615f23833981519152846040518082815260200191505060405180910390a3600101614339565b3332146143a257600080fd5b601154600160a01b900460ff16156143f3576040805162461bcd60e51b815260206004820152600f60248201526e14185e5bdd5d1cc8109b1bd8dad959608a1b604482015290519081900360640190fd5b4780614446576040805162461bcd60e51b815260206004820152601860248201527f282128636f6e747261637442616c616e6365203e203029290000000000000000604482015290519081900360640190fd5b6003546040805163643a943160e01b8152905160009283926001600160a01b039091169163643a943191600480820192602092909190829003018186803b15801561449057600080fd5b505afa1580156144a4573d6000803e3d6000fd5b505050506040513d60208110156144ba57600080fd5b505190505b808210156127ac576003546040805163124183a760e31b81526004810185905290516000926001600160a01b03169163920c1d38916024808301926020929190829003018186803b15801561451357600080fd5b505afa158015614527573d6000803e3d6000fd5b505050506040513d602081101561453d57600080fd5b505160025460408051633b317dab60e01b81526001600160a01b038085166004830152915193945060009361010090930490911691633b317dab91602480820192602092909190829003018186803b15801561459857600080fd5b505afa1580156145ac573d6000803e3d6000fd5b505050506040513d60208110156145c257600080fd5b50516002546040805163433ad96960e11b815290519293506000926101009092046001600160a01b031691638675b2d291600480820192602092909190829003018186803b15801561461357600080fd5b505afa158015614627573d6000803e3d6000fd5b505050506040513d602081101561463d57600080fd5b50518683028161464957fe5b0490508015614799576040516001600160a01b0384169082156108fc029083906000818181858888f193505050506146c357604080518381526020810183905281516001600160a01b038616927f50a6033bb1b577c577f67a1425e1ac9939c9382b114ae85b5274fd3e76a7f7df928290030190a2614799565b6002546040805163028f4a6960e41b815290516101009092046001600160a01b031691631eeb57ec91849184916328f4a690916004808301926020929190829003018186803b15801561471557600080fd5b505afa158015614729573d6000803e3d6000fd5b505050506040513d602081101561473f57600080fd5b5051604080516001600160e01b031960e086901b16815292909101600483015251602480830192600092919082900301818387803b15801561478057600080fd5b505af1158015614794573d6000803e3d6000fd5b505050505b5050600190920191506144bf565b336001600160a01b038216600080516020615f238339815191526147ca84613ff9565b60408051918252519081900360200190a360055460408051636311a8d360e11b81523360048201526001600160a01b0384811660248301523460448301529151600093929092169163c62351a69160648082019260209290919082900301818787803b158015613ac057600080fd5b600c5460408051631a3a8c1f60e21b81523360048201818152602483019384528551604484015285516000956001600160a01b0316946368ea307c94349493899390929160640190602080860191028083838d5b838110156148a557818101518382015260200161488d565b5050505090500193505050506020604051808303818588803b1580156148ca57600080fd5b505af11580156148de573d6000803e3d6000fd5b50505050506040513d60208110156148f557600080fd5b505190508015612e0e576127ac81612d23565b6008546001600160a01b031681565b6011546001600160a01b031681565b600a546001600160a01b031681565b60025460408051633b317dab60e01b81526001600160a01b0385811660048301529151600093610100900490921691633b317dab91602480820192602092909190829003018186803b15801561498a57600080fd5b505afa15801561499e573d6000803e3d6000fd5b505050506040513d60208110156149b457600080fd5b5051905060005b8251811015614a235760006001600160a01b03168382815181106149db57fe5b60200260200101516001600160a01b0316600080516020615f23833981519152614a0a86858151811061245557fe5b60408051918252519081900360200190a36001016149bb565b6007546040516367711a5960e01b815233600482018181526001600160a01b038881166024850152346064850181905260806044860190815289516084870152895160009793909316956367711a5995948c948c9493919260a40190602080870191028083838e5b83811015614aa3578181015183820152602001614a8b565b5050505090500195505050505050602060405180830381600087803b158015614acb57600080fd5b505af1158015614adf573d6000803e3d6000fd5b505050506040513d6020811015614af557600080fd5b50516040519091506001600160a01b0386169082156108fc029083906000818181858888f19350505050614b2857600080fd5b60408051848152905133916001600160a01b03881691600080516020615ead8339815191529181900360200190a35050505050565b600480546040805163482ad11f60e11b81526001600160a01b0385811694820194909452905160009390921691639055a23e91602480820192602092909190829003018186803b158015612b3357600080fd5b60095460408051639358928b60e01b815290516000926001600160a01b031691639358928b916004808301926020929190829003018186803b1580156127f657600080fd5b6010546001600160a01b03163314156106d357600480546001600160a01b0319166001600160a01b0383811691909117808355604080516313b9f0c760e01b8152905191909216926313b9f0c79280820192600092909182900301818387803b15801561292157600080fd5b6010546001600160a01b03163314156106d357601180546001600160a01b0319166001600160a01b0383161790556125d2565b60018054604080516020600284861615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156121155780601f106120ea57610100808354040283529160200191612115565b6010546001600160a01b03163314156106d357600980546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b15801561292157600080fd5b60025460408051634ea8c93760e11b81523360048201526024810184905290516101009092046001600160a01b031691639d51926e9160448082019260009290919082900301818387803b15801561232557600080fd5b6001600160a01b038216301415614e0f576040805162461bcd60e51b8152602060048201526019602482015278696620285f746f203d3d20616464726573732874686973292960381b604482015290519081900360640190fd5b600a54604080516317d5759960e31b81523360048201526001600160a01b038581166024830152604482018590529151919092169163beabacc891606480830192600092919082900301818387803b158015614e6a57600080fd5b505af1158015614e7e573d6000803e3d6000fd5b50506040805184815290516001600160a01b0386169350339250600080516020615f238339815191529181900360200190a35050565b6010546001600160a01b03163314156106d357600d80546001600160a01b0319166001600160a01b0383161790556125d2565b600480546040805163ca02eb9d60e01b81523393810193909352516001600160a01b039091169163ca02eb9d91602480830192600092919082900301818387803b1580156134d157600080fd5b600d5460405163fe942a2d60e01b815233600482018181526060602484019081528651606485015286516000956001600160a01b03169463fe942a2d94349490938a938a936044810191608490910190602080880191028083838f5b83811015614fa8578181015183820152602001614f90565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015614fe7578181015183820152602001614fcf565b50505050905001955050505050506020604051808303818588803b15801561500e57600080fd5b505af1158015615022573d6000803e3d6000fd5b50505050506040513d602081101561503957600080fd5b5051905080156127ac576134e581612d23565b600d546001600160a01b031681565b60025460408051633b317dab60e01b81526001600160a01b0384811660048301529151600093610100900490921691633b317dab91602480820192602092909190829003018186803b158015612b3357600080fd5b600254604080516344c077ab60e11b81523360048201526024810184905290516101009092046001600160a01b031691638980ef569160448082019260009290919082900301818387803b15801561232557600080fd5b6006546040805163ac39285b60e01b815233600482015290516001600160a01b039092169163ac39285b9160248082019260009290919082900301818387803b1580156134d157600080fd5b600480546040805163034043e160e51b81523393810193909352516001600160a01b03909116916368087c2091602480830192600092919082900301818387803b1580156134d157600080fd5b6010546001600160a01b03163314156106d357600880546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b15801561292157600080fd5b6007546001600160a01b031681565b6010546001600160a01b03163314156106d357600680546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b15801561292157600080fd5b601154600160a01b900460ff1681565b6001600160a01b0383163014156152f9576040805162461bcd60e51b8152602060048201526019602482015278696620285f746f203d3d20616464726573732874686973292960381b604482015290519081900360640190fd5b60005b81518110156153645760006001600160a01b031682828151811061531c57fe5b60200260200101516001600160a01b0316600080516020615f2383398151915261534b85858151811061245557fe5b60408051918252519081900360200190a36001016152fc565b600654604051632464a27d60e01b815233600482018181526001600160a01b038881166024850152604484018890526080606485019081528751608486015287519190951694632464a27d948a938a938a93919260a401906020808601910280838360005b838110156153e15781810151838201526020016153c9565b5050505090500195505050505050600060405180830381600087803b15801561540957600080fd5b505af115801561541d573d6000803e3d6000fd5b50506040805186815290516001600160a01b0388169350339250600080516020615ead8339815191529181900360200190a350505050565b80516002546040805163d050a90560e01b81529051839261010090046001600160a01b03169163d050a905916004808301926020929190829003018186803b1580156154a057600080fd5b505afa1580156154b4573d6000803e3d6000fd5b505050506040513d60208110156154ca57600080fd5b505160025460408051633238268960e01b815290516101009092046001600160a01b031691633238268991600480820192602092909190829003018186803b15801561551557600080fd5b505afa158015615529573d6000803e3d6000fd5b505050506040513d602081101561553f57600080fd5b5051010234146155805760405162461bcd60e51b8152600401808060200182810382526040815260200180615e6d6040913960400191505060405180910390fd5b60005b818110156127ac5760045483516001600160a01b03909116906316e04590908590849081106155ae57fe5b6020026020010151600260019054906101000a90046001600160a01b03166001600160a01b031663d050a9056040518163ffffffff1660e01b815260040160206040518083038186803b15801561560457600080fd5b505afa158015615618573d6000803e3d6000fd5b505050506040513d602081101561562e57600080fd5b505160025460408051633238268960e01b815290516101009092046001600160a01b031691633238268991600480820192602092909190829003018186803b15801561567957600080fd5b505afa15801561568d573d6000803e3d6000fd5b505050506040513d60208110156156a357600080fd5b5051604080516001600160e01b031960e087901b1681526001600160a01b0390941660048501529101602483015251604480830192600092919082900301818387803b1580156156f257600080fd5b505af1158015615706573d6000803e3d6000fd5b5050600190920191506155839050565b60048054604080516371681de560e11b81523393810193909352516001600160a01b039091169163e2d03bca91602480830192600092919082900301818387803b1580156134d157600080fd5b6001600160a01b03811633600080516020615f2383398151915261578682613ff9565b60408051918252519081900360200190a36001600160a01b0381163014156157f1576040805162461bcd60e51b8152602060048201526019602482015278696620285f746f203d3d20616464726573732874686973292960381b604482015290519081900360640190fd5b60048054604080516334d5831d60e21b815233938101939093526001600160a01b038481166024850152905191169163d3560c7491604480830192600092919082900301818387803b15801561232557600080fd5b60025460408051631d25fd5560e01b81523360048201526024810184905290516101009092046001600160a01b031691631d25fd559160448082019260009290919082900301818387803b15801561232557600080fd5b6009546001600160a01b031681565b60065460408051637cb6d17b60e11b81523360048201526024810184905290516001600160a01b039092169163f96da2f69160448082019260009290919082900301818387803b15801561232557600080fd5b6002546040805163124e91b960e01b81523360048201526024810184905290516101009092046001600160a01b03169163124e91b99160448082019260009290919082900301818387803b15801561232557600080fd5b60025460408051635c65816560e01b81526001600160a01b03858116600483015284811660248301529151600093610100900490921691635c65816591604480820192602092909190829003018186803b1580156159b357600080fd5b505afa1580156159c7573d6000803e3d6000fd5b505050506040513d60208110156159dd57600080fd5b50519392505050565b60025460408051633bb868dd60e21b81523360048201526024810184905290516101009092046001600160a01b03169163eee1a3749160448082019260009290919082900301818387803b15801561232557600080fd5b6011546001600160a01b03163314156106d357601280546001600160a01b0319166001600160a01b0383161790556125d2565b600c546001600160a01b031681565b6000600260019054906101000a90046001600160a01b03166001600160a01b031663e5f65c716040518163ffffffff1660e01b815260040160206040518083038186803b158015615acf57600080fd5b505afa158015615ae3573d6000803e3d6000fd5b505050506040513d6020811015615af957600080fd5b50514303905090565b6010546001600160a01b03166106d357601080546001600160a01b0319163317905561346d565b601154600160a01b900460ff161561346d576012546040516001600160a01b03909116904780156108fc02916000818181858888f1935050505061346d57600080fd5b6010546001600160a01b03163314156106d357600c80546001600160a01b0319166001600160a01b0383161790556125d2565b60025461010090046001600160a01b031681565b805160005b818110156127ac5760045483516001600160a01b03909116906352ba171d90859084908110615be357fe5b60200260200101516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b158015615c3357600080fd5b505af1158015615c47573d6000803e3d6000fd5b505060019092019150615bb89050565b600480546040805163eb0fbbad60e01b81526001600160a01b038581169482019490945290516000939092169163eb0fbbad91602480820192602092909190829003018186803b158015612b3357600080fd5b600480546040805163d42e1c2f60e01b815233938101939093526001600160a01b038481166024850152905191169163d42e1c2f91604480830192600092919082900301818387803b15801561232557600080fd5b6010546001600160a01b03163314156106d357600a80546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b15801561292157600080fd5b6010546001600160a01b031681565b60048054604080516001620769d360e31b031981526001600160a01b038581169482019490945290516000939092169163ffc4b16891602480820192602092909190829003018186803b158015612b3357600080fd5b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10615e1557805160ff1916838001178555615e42565b82800160010185558215615e42579182015b82811115615e42578251825591602001919060010190615e27565b50615e4e929150615e52565b5090565b61252b91905b80821115615e4e5760008155600101615e5856fe2877656956616c756520213d2028286d73672e76616c7565202b2070632e657468466565546f55706772616465546f4c6576656c332829292a636f756e742929cc6ddb19d323297cc6ed8f3dbda06395f6f153d24bf678f36305752ab635e10928215f616464726573732e73656e642866656573546f506179546f53656c6c65722929286d73672e76616c756520213d202870632e657468466565546f55706772616465546f4c6576656c3328292a636f756e742929ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef286d73672e76616c756520213d2070632e657468466565546f55706772616465546f4c6576656c3228292a636f756e7429a264697066735822122079765151e361fad17aba014cb886e4508095db6a9c63f145d70b230953f5f8a164736f6c63430006000033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000000e35a9caef5f24e1802c51ee935836af07d73b3300000000000000000000000012c60985421f3ea92ac4997e2cec8b1bbf33ee660000000000000000000000007d5424f6c617c486ab4437b88410357bba7d124e000000000000000000000000426d86b00f85d8ea716727fec9cdff58f65504b3000000000000000000000000c59e57fc338e4dd177904faccd063c688833bf710000000000000000000000008efd839d6bcabaac5072d1c2bb360cbdb130c1b60000000000000000000000007ca3ffa001d9bc98bf1fdfb1e48830b785cd67990000000000000000000000005e179082c652fd750b7bf3b48c5a253a63ba98330000000000000000000000000e5047e1273dfab56eb800f31da9e8a8872e14d8

-----Decoded View---------------
Arg [0] : _publicCallsAddress (address): 0x0E35A9caEf5f24e1802C51EE935836af07D73b33
Arg [1] : _publicArraysAddress (address): 0x12C60985421F3ea92Ac4997E2CEc8B1BBf33Ee66
Arg [2] : _genesisCallsAddress (address): 0x7d5424F6C617c486aB4437B88410357bbA7d124E
Arg [3] : _normalAddressAddress (address): 0x426d86B00f85D8eA716727fec9cDFF58f65504b3
Arg [4] : _stakesAddress (address): 0xC59E57FC338e4dD177904FaCCD063C688833BF71
Arg [5] : _stakesBuysAddress (address): 0x8efd839d6BcABaAC5072D1c2Bb360CBdB130c1b6
Arg [6] : _genesisBuysAddress (address): 0x7ca3ffA001d9Bc98bF1fDfB1e48830b785CD6799
Arg [7] : _tokenServiceAddress (address): 0x5E179082c652Fd750B7Bf3b48C5a253a63ba9833
Arg [8] : _baseTransfersAddress (address): 0x0e5047e1273dFaB56EB800F31da9e8A8872e14D8

-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 0000000000000000000000000e35a9caef5f24e1802c51ee935836af07d73b33
Arg [1] : 00000000000000000000000012c60985421f3ea92ac4997e2cec8b1bbf33ee66
Arg [2] : 0000000000000000000000007d5424f6c617c486ab4437b88410357bba7d124e
Arg [3] : 000000000000000000000000426d86b00f85d8ea716727fec9cdff58f65504b3
Arg [4] : 000000000000000000000000c59e57fc338e4dd177904faccd063c688833bf71
Arg [5] : 0000000000000000000000008efd839d6bcabaac5072d1c2bb360cbdb130c1b6
Arg [6] : 0000000000000000000000007ca3ffa001d9bc98bf1fdfb1e48830b785cd6799
Arg [7] : 0000000000000000000000005e179082c652fd750b7bf3b48c5a253a63ba9833
Arg [8] : 0000000000000000000000000e5047e1273dfab56eb800f31da9e8a8872e14d8


Deployed Bytecode Sourcemap

30407:20542:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30429:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30429:18:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;30429:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;50582:364;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;50582:364:0;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;50582:364:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;50582:364:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;50582:364:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;50582:364:0;;;;;;;;-1:-1:-1;50582:364:0;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;50582:364:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;50582:364:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;50582:364:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;50582:364:0;;-1:-1:-1;50582:364:0;;-1:-1:-1;;;;;50582:364:0:i;:::-;;48812:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;48812:123:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;48812:123:0;;:::i;37539:205::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;37539:205:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;37539:205:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;43882:353;;8:9:-1;5:2;;;30:1;27;20:12;5:2;43882:353:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;43882:353:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;43882:353:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;43882:353:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;43882:353:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;43882:353:0;;-1:-1:-1;43882:353:0;;-1:-1:-1;;;;;43882:353:0:i;35872:98::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35872:98:0;;;:::i;:::-;;;;;;;;;;;;;;;;30932:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30932:22:0;;;:::i;:::-;;;;-1:-1:-1;;;;;30932:22:0;;;;;;;;;;;;;;31606:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31606:90:0;;;:::i;48937:139::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;48937:139:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;48937:139:0;;:::i;34576:134::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34576:134:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34576:134:0;-1:-1:-1;;;;;34576:134:0;;:::i;39456:369::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;39456:369:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;39456:369:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;39456:369:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;39456:369:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;39456:369:0;;-1:-1:-1;39456:369:0;;-1:-1:-1;;;;;39456:369:0:i;36232:99::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36232:99:0;;;:::i;34987:142::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34987:142:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34987:142:0;-1:-1:-1;;;;;34987:142:0;;:::i;49078:167::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;49078:167:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;49078:167:0;;:::i;33550:151::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33550:151:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33550:151:0;-1:-1:-1;;;;;33550:151:0;;:::i;37091:156::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;37091:156:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;37091:156:0;;;;;;;;:::i;37251:284::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;37251:284:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;37251:284:0;;;;;;;;;;;;;;;;;:::i;35747:119::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35747:119:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;35747:119:0;;;;:::i;31128:24::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31128:24:0;;;:::i;36097:131::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36097:131:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;36097:131:0;-1:-1:-1;;;;;36097:131:0;;:::i;36649:129::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36649:129:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;36649:129:0;;;;;;;;;;;;;;;;;:::i;47774:135::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;47774:135:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;47774:135:0;-1:-1:-1;;;;;47774:135:0;;:::i;43230:213::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;43230:213:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;43230:213:0;;:::i;35274:162::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35274:162:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;35274:162:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;35274:162:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;35274:162:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;35274:162:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;35274:162:0;;;;;;;;-1:-1:-1;35274:162:0;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;35274:162:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;35274:162:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;35274:162:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;35274:162:0;;-1:-1:-1;35274:162:0;;-1:-1:-1;;;;;35274:162:0:i;30957:22::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30957:22:0;;;:::i;30475:21::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30475:21:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;40870:377;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;40870:377:0;-1:-1:-1;;;;;40870:377:0;;:::i;49867:163::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;49867:163:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;49867:163:0;;:::i;35133:137::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35133:137:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;35133:137:0;-1:-1:-1;;;;;35133:137:0;;:::i;48052:141::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;48052:141:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;48052:141:0;-1:-1:-1;;;;;48052:141:0;;:::i;47143:355::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;47143:355:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;47143:355:0;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;47143:355:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;47143:355:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;47143:355:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;47143:355:0;;;;;;;;-1:-1:-1;47143:355:0;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;47143:355:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;47143:355:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;47143:355:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;47143:355:0;;-1:-1:-1;47143:355:0;;-1:-1:-1;;;;;47143:355:0:i;44750:126::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;44750:126:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;44750:126:0;;;;;;;;:::i;30982:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30982:23:0;;;:::i;36782:305::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36782:305:0;;;:::i;31209:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31209:29:0;;;:::i;39021:111::-;;;:::i;48514:147::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;48514:147:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;48514:147:0;;:::i;34377:197::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34377:197:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;34377:197:0;;;;;;;;:::i;43134:92::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;43134:92:0;;;:::i;41803:196::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;41803:196:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;41803:196:0;;;;;;;;:::i;41251:127::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;41251:127:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;41251:127:0;;:::i;38558:111::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38558:111:0;;;:::i;39366:86::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;39366:86:0;;;:::i;45895:403::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;45895:403:0;-1:-1:-1;;;;;45895:403:0;;:::i;49412:147::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;49412:147:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;49412:147:0;;:::i;39251:111::-;;;:::i;44880:336::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;44880:336:0;-1:-1:-1;;;;;44880:336:0;;:::i;41382:97::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;41382:97:0;;;:::i;40283:371::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;40283:371:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;40283:371:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;40283:371:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;40283:371:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;40283:371:0;;-1:-1:-1;40283:371:0;;-1:-1:-1;;;;;40283:371:0:i;50213:107::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;50213:107:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;50213:107:0;;:::i;45557:334::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;45557:334:0;-1:-1:-1;;;;;45557:334:0;;:::i;31241:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31241:31:0;;;:::i;33246:157::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33246:157:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33246:157:0;-1:-1:-1;;;;;33246:157:0;;:::i;43639:239::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;43639:239:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;43639:239:0;;;;;;;;:::i;37890:112::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;37890:112:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;37890:112:0;-1:-1:-1;;;;;37890:112:0;;:::i;39136:111::-;;;:::i;45220:333::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;45220:333:0;-1:-1:-1;;;;;45220:333:0;;:::i;34180:195::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34180:195:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;34180:195:0;;;;;;;;:::i;31008:16::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31008:16:0;;;:::i;38348:103::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38348:103:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;38348:103:0;;:::i;48197:313::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;48197:313:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;48197:313:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;48197:313:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;48197:313:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;48197:313:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;48197:313:0;;-1:-1:-1;;48197:313:0;;;-1:-1:-1;48197:313:0;;-1:-1:-1;;48197:313:0:i;42266:864::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;42266:864:0;;;:::i;41483:316::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;41483:316:0;-1:-1:-1;;;;;41483:316:0;;:::i;46950:189::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;46950:189:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;46950:189:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;46950:189:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;46950:189:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;46950:189:0;;-1:-1:-1;46950:189:0;;-1:-1:-1;;;;;46950:189:0:i;31050:22::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31050:22:0;;;:::i;31496:71::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31496:71:0;;;:::i;31101:24::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31101:24:0;;;:::i;46302:599::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;46302:599:0;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;46302:599:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;46302:599:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;46302:599:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;46302:599:0;;-1:-1:-1;46302:599:0;;-1:-1:-1;;;;;46302:599:0:i;47635:135::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;47635:135:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;47635:135:0;-1:-1:-1;;;;;47635:135:0;;:::i;36335:100::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36335:100:0;;;:::i;33094:150::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33094:150:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33094:150:0;-1:-1:-1;;;;;33094:150:0;;:::i;35440:136::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35440:136:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;35440:136:0;-1:-1:-1;;;;;35440:136:0;;:::i;30451:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30451:20:0;;;:::i;33860:157::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33860:157:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33860:157:0;-1:-1:-1;;;;;33860:157:0;;:::i;46905:41::-;;;:::i;50032:179::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;50032:179:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;50032:179:0;;:::i;36439:206::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36439:206:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;36439:206:0;;;;;;;;:::i;34845:140::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34845:140:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34845:140:0;-1:-1:-1;;;;;34845:140:0;;:::i;38906:111::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38906:111:0;;;:::i;50326:252::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;50326:252:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;50326:252:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;50326:252:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;50326:252:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;50326:252:0;;;;;;;;-1:-1:-1;50326:252:0;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;50326:252:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;50326:252:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;50326:252:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;50326:252:0;;-1:-1:-1;50326:252:0;;-1:-1:-1;;;;;50326:252:0:i;31178:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31178:28:0;;;:::i;38006:121::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38006:121:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;38006:121:0;-1:-1:-1;;;;;38006:121:0;;:::i;49722:143::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;49722:143:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;49722:143:0;;:::i;43555:80::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;43555:80:0;;;:::i;38455:99::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38455:99:0;;;:::i;33703:155::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33703:155:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33703:155:0;-1:-1:-1;;;;;33703:155:0;;:::i;31027:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31027:20:0;;;:::i;33405:143::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33405:143:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33405:143:0;-1:-1:-1;;;;;33405:143:0;;:::i;31570:33::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31570:33:0;;;:::i;44239:507::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;44239:507:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;44239:507:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;44239:507:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;44239:507:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;44239:507:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;44239:507:0;;-1:-1:-1;44239:507:0;;-1:-1:-1;;;;;44239:507:0:i;39829:450::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;39829:450:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;39829:450:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;39829:450:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;39829:450:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;39829:450:0;;-1:-1:-1;39829:450:0;;-1:-1:-1;;;;;39829:450:0:i;38673:99::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38673:99:0;;;:::i;38131:213::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38131:213:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;38131:213:0;-1:-1:-1;;;;;38131:213:0;;:::i;49561:159::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;49561:159:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;49561:159:0;;:::i;31075:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31075:23:0;;;:::i;43447:104::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;43447:104:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;43447:104:0;;:::i;48663:147::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;48663:147:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;48663:147:0;;:::i;37748:138::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;37748:138:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;37748:138:0;;;;;;;;;;:::i;49247:163::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;49247:163:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;49247:163:0;;:::i;35580:::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35580:163:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;35580:163:0;-1:-1:-1;;;;;35580:163:0;;:::i;31155:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31155:20:0;;;:::i;35974:119::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35974:119:0;;;:::i;31354:140::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31354:140:0;;;:::i;42003:259::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;42003:259:0;;;:::i;34712:129::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34712:129:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34712:129:0;-1:-1:-1;;;;;34712:129:0;;:::i;30908:21::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30908:21:0;;;:::i;40658:208::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;40658:208:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;40658:208:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;40658:208:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;40658:208:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;40658:208:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;40658:208:0;;-1:-1:-1;40658:208:0;;-1:-1:-1;;;;;40658:208:0:i;47502:129::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;47502:129:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;47502:129:0;-1:-1:-1;;;;;47502:129:0;;:::i;38776:126::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38776:126:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;38776:126:0;-1:-1:-1;;;;;38776:126:0;;:::i;34019:159::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34019:159:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34019:159:0;-1:-1:-1;;;;;34019:159:0;;:::i;31277:74::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;31277:74:0;;;:::i;47913:135::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;47913:135:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;47913:135:0;-1:-1:-1;;;;;47913:135:0;;:::i;30429:18::-;;;;;;;;;;;;;;;-1:-1:-1;;30429:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;50582:364::-;50711:14;;50707:143;;50734:3;;50767:5;;50734:52;;;-1:-1:-1;;;50734:52:0;;50747:10;50734:52;;;;-1:-1:-1;;;;;50767:5:0;;;50734:52;;;;;;;;;;;;:3;;;;;:12;;:52;;;;;:3;;:52;;;;;;;:3;;:52;;;5:2:-1;;;;30:1;27;20:12;5:2;50734:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;50825:5:0;;50796:48;;;;;;;;-1:-1:-1;;;;;50825:5:0;;;;-1:-1:-1;50805:10:0;;-1:-1:-1;;;;;;;;;;;;50796:48:0;;;;;;;;;50707:143;50853:5;;:88;;-1:-1:-1;;;50853:88:0;;50893:10;50853:88;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;50853:5:0;;;;:22;;50882:9;;50893:10;50905;;50917:12;;50931:9;;50853:88;;;;;;;;;;;;;;;;;;:5;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;50853:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;50853:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;50853:88:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;50853:88:0;;;;;50582:364;;;:::o;48812:123::-;48878:2;;:55;;;-1:-1:-1;;;48878:55:0;;48902:10;48878:55;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;48878:2:0;;:23;;:55;;;;;-1:-1:-1;;48878:55:0;;;;;;;;-1:-1:-1;48878:2:0;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;48878:55:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;48878:55:0;;;;48812:123;:::o;37539:205::-;37628:2;;:43;;;-1:-1:-1;;;37628:43:0;;37642:10;37628:43;;;;-1:-1:-1;;;;;37628:43:0;;;;;;;;;;;;;;;-1:-1:-1;;37628:2:0;;;;;;;:13;;:43;;;;;-1:-1:-1;;37628:43:0;;;;;;;;-1:-1:-1;37628:2:0;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;37628:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;37683:39:0;;;;;;;;-1:-1:-1;;;;;37683:39:0;;;-1:-1:-1;37692:10:0;;-1:-1:-1;37683:39:0;;;;;;;;;-1:-1:-1;37736:4:0;37539:205;;;;:::o;43882:353::-;43966:6;43981:186;43991:23;:30;43987:1;:34;43981:186;;;44072:42;-1:-1:-1;;;;;44035:119:0;44044:23;44068:1;44044:26;;;;;;;;;;;;;;-1:-1:-1;;;;;44035:119:0;-1:-1:-1;;;;;;;;;;;44116:37:0;44126:23;44150:1;44126:26;;;;;;;;;;;;;;44116:9;:37::i;:::-;44035:119;;;;;;;;;;;;;;;44159:3;;43981:186;;;44170:2;;;:60;;;-1:-1:-1;;;44170:60:0;;44194:10;44170:60;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;44170:2:0;;;;:23;;44194:10;;44206:23;;44170:60;;;;;;;;;;;;;;;;:2;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;44170:60:0;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;44170:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;44170:60:0;;;;43882:353;;:::o;35872:98::-;35954:12;35872:98;;:::o;30932:22::-;;;-1:-1:-1;;;;;30932:22:0;;:::o;31606:90::-;;;-1:-1:-1;;;;;31606:90:0;;:::o;48937:139::-;49011:2;;:63;;;-1:-1:-1;;;49011:63:0;;49039:10;49011:63;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;49011:2:0;;:27;;:63;;;;;-1:-1:-1;;49011:63:0;;;;;;;;-1:-1:-1;49011:2:0;:63;;;5:2:-1;;;;30:1;27;20:12;34576:134:0;34645:14;;-1:-1:-1;;;;;34645:14:0;34631:10;:28;34627:81;;;34662:6;:29;;-1:-1:-1;;;;;;34662:29:0;-1:-1:-1;;;;;34662:29:0;;;;;34627:81;34576:134;:::o;39456:369::-;39558:17;;39597:2;;:28;;;-1:-1:-1;;;39597:28:0;;;;39558:17;;39597:2;;;-1:-1:-1;;;;;39597:2:0;;:26;;:28;;;;;;;;;;;;;;:2;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;39597:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;39597:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;39597:28:0;:34;39583:9;:49;39579:114;;39634:59;;-1:-1:-1;;;39634:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39579:114;39697:6;39711:111;39722:5;39718:1;:9;39711:111;;;39736:2;;39765:13;;-1:-1:-1;;;;;39736:2:0;;;;:28;;39765:10;;39776:1;;39765:13;;;;;;;;;;;;39780:2;;;;;;;;;-1:-1:-1;;;;;39780:2:0;-1:-1:-1;;;;;39780:26:0;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;39780:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;39780:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;39780:28:0;39736:73;;;-1:-1:-1;;;;;;39736:73:0;;;;;;;-1:-1:-1;;;;;39736:73:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;39736:73:0;;;;;;;-1:-1:-1;39736:73:0;;;;5:2:-1;;;;30:1;27;20:12;5:2;39736:73:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;39814:3:0;;;;;-1:-1:-1;39711:111:0;;-1:-1:-1;39711:111:0;;39456:369;;;:::o;36232:99::-;36310:3;;:17;;;-1:-1:-1;;;36310:17:0;;;;36276:19;;-1:-1:-1;;;;;36310:3:0;;:15;;:17;;;;;;;;;;;;;;:3;:17;;;5:2:-1;;;;30:1;27;20:12;5:2;36310:17:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;36310:17:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;36310:17:0;;-1:-1:-1;36232:99:0;:::o;34987:142::-;35059:14;;-1:-1:-1;;;;;35059:14:0;35045:10;:28;35041:86;;;35076:5;:34;;-1:-1:-1;;;;;;35076:34:0;-1:-1:-1;;;;;35076:34:0;;;;;35041:86;;49078:167;49166:2;;:77;;;-1:-1:-1;;;49166:77:0;;49201:10;49166:77;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;49166:2:0;;:34;;:77;;;;;-1:-1:-1;;49166:77:0;;;;;;;;-1:-1:-1;49166:2:0;:77;;;5:2:-1;;;;30:1;27;20:12;33550:151:0;33620:14;;-1:-1:-1;;;;;33620:14:0;33606:10;:28;33602:97;;;33637:3;:25;;-1:-1:-1;;;;;;33637:25:0;-1:-1:-1;;;;;33637:25:0;;;;;;;;;;;33664:18;;;-1:-1:-1;;;33664:18:0;;;;:3;;;;;:16;;:18;;;;;-1:-1:-1;;33664:18:0;;;;;;;;-1:-1:-1;33664:3:0;:18;;;5:2:-1;;;;30:1;27;20:12;5:2;33664:18:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33664:18:0;;;;33602:97;;37091:156;37155:42;;;;;;;;-1:-1:-1;;;;;37155:42:0;;;37172:4;;-1:-1:-1;;;;;;;;;;;37155:42:0;;;;;;;;37201:3;;:41;;;-1:-1:-1;;;37201:41:0;;37212:10;37201:41;;;;-1:-1:-1;;;;;37201:41:0;;;;;;;;;;;;;;;:3;;;;;:10;;:41;;;;;:3;;:41;;;;;;;:3;;:41;;;5:2:-1;;;;30:1;27;20:12;37251:284:0;37397:3;;:49;;;-1:-1:-1;;;37397:49:0;;37414:10;37397:49;;;;-1:-1:-1;;;;;37397:49:0;;;;;;;;;;;;;;;;;;;;;;37364:12;;;;37397:3;;:16;;:49;;;;;;;;;;;;;;37364:12;37397:3;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;37397:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;37397:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;37397:49:0;;-1:-1:-1;37457:46:0;;;;37490:3;-1:-1:-1;;;;;37474:29:0;37483:5;-1:-1:-1;;;;;37474:29:0;-1:-1:-1;;;;;;;;;;;37495:7:0;37474:29;;;;;;;;;;;;;;;;;;37457:46;37521:6;37251:284;-1:-1:-1;;;;37251:284:0:o;35747:119::-;35815:11;;-1:-1:-1;;;;;35815:11:0;35801:10;:25;35798:65;;;35835:13;:23;;;;;-1:-1:-1;;;35835:23:0;-1:-1:-1;;;;35835:23:0;;;;;;35747:119;:::o;31128:24::-;;;-1:-1:-1;;;;;31128:24:0;;:::o;36097:131::-;36193:2;;;:31;;;-1:-1:-1;;;36193:31:0;;-1:-1:-1;;;;;36193:31:0;;;;;;;;;;;;36164:15;;36193:2;;;;:21;;:31;;;;;;;;;;;;;;;:2;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;36193:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;36193:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;36193:31:0;;36097:131;-1:-1:-1;;36097:131:0:o;36649:129::-;31750:16;;-1:-1:-1;;;;;31750:16:0;31736:10;:30;;:59;;-1:-1:-1;31792:2:0;;;;;-1:-1:-1;;;;;31792:2:0;31770:10;:25;31736:59;:88;;;-1:-1:-1;31821:2:0;;-1:-1:-1;;;;;31821:2:0;31799:10;:25;31736:88;:117;;;-1:-1:-1;31850:2:0;;-1:-1:-1;;;;;31850:2:0;31828:10;:25;31736:117;:146;;;-1:-1:-1;31879:2:0;;-1:-1:-1;;;;;31879:2:0;31857:10;:25;31736:146;:175;;;-1:-1:-1;31908:2:0;;-1:-1:-1;;;;;31908:2:0;31886:10;:25;31736:175;:205;;;-1:-1:-1;31937:3:0;;-1:-1:-1;;;;;31937:3:0;31915:10;:26;31736:205;:235;;;-1:-1:-1;31967:3:0;;-1:-1:-1;;;;;31967:3:0;31945:10;:26;31736:235;:265;;;-1:-1:-1;31997:3:0;;-1:-1:-1;;;;;31997:3:0;31975:10;:26;31736:265;:295;;;-1:-1:-1;32027:3:0;;-1:-1:-1;;;;;32027:3:0;32005:10;:26;31736:295;:328;;;-1:-1:-1;32057:6:0;;-1:-1:-1;;;;;32057:6:0;32035:10;:29;31736:328;:358;;;-1:-1:-1;32090:3:0;;-1:-1:-1;;;;;32090:3:0;32068:10;:26;31736:358;:390;;;-1:-1:-1;32120:5:0;;-1:-1:-1;;;;;32120:5:0;32098:10;:28;31736:390;:422;;;-1:-1:-1;32152:5:0;;-1:-1:-1;;;;;32152:5:0;32130:10;:28;31736:422;31728:431;;;;;;36761:3:::1;-1:-1:-1::0;;;;;36745:28:0::1;36754:5;-1:-1:-1::0;;;;;36745:28:0::1;-1:-1:-1::0;;;;;;;;;;;36766:6:0::1;36745:28;;;;;;;;;;;;;;;;;;36649:129:::0;;;:::o;47774:135::-;47870:2;;;:35;;;-1:-1:-1;;;47870:35:0;;-1:-1:-1;;;;;47870:35:0;;;;;;;;;;;;47845:12;;47870:2;;;;:25;;:35;;;;;;;;;;;;;;;:2;:35;;;5:2:-1;;;;30:1;27;20:12;43230:213:0;43304:2;;;:36;;;-1:-1:-1;;;43304:36:0;;43318:10;43304:36;;;;;;;;;;;;;;43285:12;;-1:-1:-1;;;;;43304:2:0;;;;:13;;:36;;;;;;;;;;;;;;43285:12;43304:2;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;43304:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;43304:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;43349:75:0;;;;;;;;43370:42;;43358:10;;-1:-1:-1;;;;;;;;;;;43349:75:0;;;;43304:36;43349:75;;;-1:-1:-1;43435:4:0;43230:213;;;:::o;35274:162::-;35369:14;;-1:-1:-1;;;;;35369:14:0;35355:10;:28;35351:83;;;35387:12;;;;:4;;:12;;;;;:::i;:::-;-1:-1:-1;35401:16:0;;;;:6;;:16;;;;;:::i;35351:83::-;35274:162;;:::o;30957:22::-;;;-1:-1:-1;;;;;30957:22:0;;:::o;30475:21::-;;;;;;:::o;40870:377::-;40947:2;;;:35;;;-1:-1:-1;;;40947:35:0;;-1:-1:-1;;;;;40947:35:0;;;;;;;;;;;;:2;;;;;:25;;:35;;;;;;;;;;;;;;;:2;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;40947:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;40947:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;40947:35:0;40943:300;;;40987:36;41014:8;40987:26;:36::i;:::-;40943:300;;;41036:2;;;:35;;;-1:-1:-1;;;41036:35:0;;-1:-1:-1;;;;;41036:35:0;;;;;;;;;;;;:2;;;;;:25;;:35;;;;;;;;;;;;;;;:2;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;41036:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;41036:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;41036:35:0;41032:211;;;41076:36;41103:8;41076:26;:36::i;41032:211::-;41125:2;;;:35;;;-1:-1:-1;;;;;;41125:35:0;;-1:-1:-1;;;;;41125:35:0;;;;;;;;;;;;:2;;;;;:25;;:35;;;;;;;;;;;;;;;:2;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;41125:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;41125:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;41125:35:0;41121:122;;;41165:36;41192:8;41165:26;:36::i;41121:122::-;41213:30;;;-1:-1:-1;;;41213:30:0;;;;;;;;;;;;-1:-1:-1;;;41213:30:0;;;;;;;;;;;;;;49867:163;49953:2;;:75;;;-1:-1:-1;;;49953:75:0;;49987:10;49953:75;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;49953:2:0;;:33;;:75;;;;;-1:-1:-1;;49953:75:0;;;;;;;;-1:-1:-1;49953:2:0;:75;;;5:2:-1;;;;30:1;27;20:12;35133:137:0;35207:14;;-1:-1:-1;;;;;35207:14:0;35193:10;:28;35189:79;;;35224:16;:27;;-1:-1:-1;;;;;;35224:27:0;-1:-1:-1;;;;;35224:27:0;;;;;35189:79;;48052:141;48151:2;;;:38;;;-1:-1:-1;;;48151:38:0;;-1:-1:-1;;;;;48151:38:0;;;;;;;;;;;;48126:12;;48151:2;;;;:28;;:38;;;;;;;;;;;;;;;:2;:38;;;5:2:-1;;;;30:1;27;20:12;47143:355:0;47267:18;;47263:157;;47294:3;;47327:6;;47294:57;;;-1:-1:-1;;;47294:57:0;;47307:10;47294:57;;;;-1:-1:-1;;;;;47327:6:0;;;47294:57;;;;;;;;;;;;:3;;;;;:12;;:57;;;;;:3;;:57;;;;;;;:3;;:57;;;5:2:-1;;;;30:1;27;20:12;5:2;47294:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;47390:6:0;;47361:53;;;;;;;;-1:-1:-1;;;;;47390:6:0;;;;-1:-1:-1;47370:10:0;;-1:-1:-1;;;;;;;;;;;;47361:53:0;;;;;;;;;47263:157;47423:6;;:71;;-1:-1:-1;;;47423:71:0;;47443:10;47423:71;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;47423:6:0;;;;:19;;47455:14;;47471:12;;47485:8;;47423:71;;;;;;;;;;;;;;;;;;;;:6;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;47423:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;47423:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;47423:71:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;47423:71:0;;;;47143:355;;;:::o;44750:126::-;44822:2;;:50;;;-1:-1:-1;;;44822:50:0;;44842:10;44822:50;;;;-1:-1:-1;;;;;44822:50:0;;;;;;;;;;;;;;;:2;;;;;:19;;:50;;;;;:2;;:50;;;;;;;:2;;:50;;;5:2:-1;;;;30:1;27;20:12;30982:23:0;;;-1:-1:-1;;;;;30982:23:0;;:::o;36782:305::-;36836:2;;;:37;;;-1:-1:-1;;;36836:37:0;;36862:10;36836:37;;;;;;;;-1:-1:-1;;;;;36836:2:0;;;;:25;;:37;;;;;;;;;;;;;;:2;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;36836:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;36836:37:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;36836:37:0;36832:252;;;36908:42;36896:10;-1:-1:-1;;;;;;;;;;;36952:21:0;36896:10;36952:9;:21::i;:::-;36887:87;;;;;;;;;;;;;;;36979:3;;:43;;;-1:-1:-1;;;36979:43:0;;37011:10;36979:43;;;;;;-1:-1:-1;;;;;36979:3:0;;;;:31;;:43;;;;;:3;;:43;;;;;;;;:3;;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;36979:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;36979:43:0;;;;36832:252;;;37042:37;;;-1:-1:-1;;;37042:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;36832:252;36782:305::o;31209:29::-;;;-1:-1:-1;;;;;31209:29:0;;:::o;39021:111::-;39077:2;;;:51;;;-1:-1:-1;;;39077:51:0;;39106:10;39077:51;;;;;;;39118:9;39077:51;;;;;-1:-1:-1;;;;;39077:2:0;;;;:28;;:51;;;;;:2;;:51;;;;;;;:2;;:51;;;5:2:-1;;;;30:1;27;20:12;5:2;39077:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;39077:51:0;;;;39021:111::o;48514:147::-;48592:2;;:67;;;-1:-1:-1;;;48592:67:0;;48622:10;48592:67;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;48592:2:0;;:29;;:67;;;;;-1:-1:-1;;48592:67:0;;;;;;;;-1:-1:-1;48592:2:0;:67;;;5:2:-1;;;;30:1;27;20:12;34377:197:0;34449:4;34457;34449:12;34443:29;;34464:8;;;34443:29;34493:14;;-1:-1:-1;;;;;34493:14:0;34479:10;:28;34475:97;;;34510:2;:27;;-1:-1:-1;;;;;;34510:27:0;-1:-1:-1;;;;;34510:27:0;;;;;;;;;;;34539:17;;;-1:-1:-1;;;34539:17:0;;;;:2;;;;;:15;;:17;;;;;-1:-1:-1;;34539:17:0;;;;;;;;-1:-1:-1;34539:2:0;:17;;;5:2:-1;;;;30:1;27;20:12;5:2;34539:17:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;34539:17:0;;;;34475:97;;43134:92;43197:3;;:25;;;-1:-1:-1;;;43197:25:0;;43211:10;43197:25;;;;;;43171:12;;-1:-1:-1;;;;;43197:3:0;;:13;;:25;;;;;;;;;;;;;;43171:12;43197:3;:25;;;5:2:-1;;;;30:1;27;20:12;5:2;43197:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;41803:196:0;41884:2;;:58;;;-1:-1:-1;;;41884:58:0;;41911:10;41884:58;;;;-1:-1:-1;;;;;41884:58:0;;;;;;;;;;;;;;;:2;;;;;:26;;:58;;;;;:2;;:58;;;;;;;:2;;:58;;;5:2:-1;;;;30:1;27;20:12;5:2;41884:58:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;41951:43:0;;;;;;;;-1:-1:-1;;;;;41951:43:0;;;-1:-1:-1;41968:4:0;;-1:-1:-1;;;;;;;;;;;;41951:43:0;;;;;;;;41803:196;;:::o;41251:127::-;41320:2;;:54;;;-1:-1:-1;;;41320:54:0;;41347:10;41320:54;;;;;;;;;;;;-1:-1:-1;;;;;41320:2:0;;;;:26;;:54;;;;;:2;;:54;;;;;;;;:2;;:54;;;5:2:-1;;;;30:1;27;20:12;38558:111:0;38616:2;;;:49;;;-1:-1:-1;;;38616:49:0;;38654:10;38616:49;;;;;;;;-1:-1:-1;;;;;38616:2:0;;;;:37;;:49;;;;;:2;;:49;;;;;;;:2;;:49;;;5:2:-1;;;;30:1;27;20:12;39366:86:0;39411:2;;;:37;;;-1:-1:-1;;;39411:37:0;;39437:10;39411:37;;;;;;;;-1:-1:-1;;;;;39411:2:0;;;;:25;;:37;;;;;:2;;:37;;;;;;;:2;;:37;;;5:2:-1;;;;30:1;27;20:12;45895:403:0;45985:2;;:26;;;-1:-1:-1;;;45985:26:0;;-1:-1:-1;;;;;45985:26:0;;;;;;;;;-1:-1:-1;;45985:2:0;;;;;;;:16;;:26;;;;;;;;;;;;;;;:2;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;45985:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;45985:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;45985:26:0;46064:3;;:57;;;-1:-1:-1;;;46064:57:0;;46080:10;46064:57;;;;-1:-1:-1;;;;;46064:57:0;;;;;;;46111:9;46064:57;;;;;;45985:26;;-1:-1:-1;46016:17:0;;;;46064:3;;;;;:15;;:57;;;;;;;;;;;46016:17;46064:3;:57;;;5:2:-1;;;;30:1;27;20:12;5:2;46064:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;46064:57:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;46064:57:0;;;;;;;;;-1:-1:-1;46064:57:0;-1:-1:-1;46125:21:0;46064:57;46125:10;:21::i;:::-;-1:-1:-1;46154:32:0;;-1:-1:-1;;;;;46154:13:0;;;:32;;;;;46168:17;;46154:32;;;;46168:17;46154:13;:32;;;;;;;46150:83;;46188:45;;-1:-1:-1;;;46188:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46150:83;46243:50;;;;;;;;46267:10;;-1:-1:-1;;;;;46243:50:0;;;-1:-1:-1;;;;;;;;;;;46243:50:0;;;;;;;;45895:403;;;;:::o;49412:147::-;49490:2;;:67;;;-1:-1:-1;;;49490:67:0;;49520:10;49490:67;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;49490:2:0;;:29;;:67;;;;;-1:-1:-1;;49490:67:0;;;;;;;;-1:-1:-1;49490:2:0;:67;;;5:2:-1;;;;30:1;27;20:12;39251:111:0;39307:2;;;:51;;;-1:-1:-1;;;39307:51:0;;39336:10;39307:51;;;;;;;39348:9;39307:51;;;;;-1:-1:-1;;;;;39307:2:0;;;;:28;;:51;;;;;:2;;:51;;;;;;;:2;;:51;;;5:2:-1;;;;30:1;27;20:12;44880:336:0;44985:10;-1:-1:-1;;;;;44966:51:0;;-1:-1:-1;;;;;;;;;;;44997:19:0;44975:8;44997:9;:19::i;:::-;44966:51;;;;;;;;;;;;;;;45049:3;;:72;;;-1:-1:-1;;;45049:72:0;;45080:10;45049:72;;;;-1:-1:-1;;;;;45049:72:0;;;;;;;45111:9;45049:72;;;;;;45021:25;;45049:3;;;;;:30;;:72;;;;;;;;;;;;;;;45021:25;45049:3;:72;;;5:2:-1;;;;30:1;27;20:12;5:2;45049:72:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;45049:72:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;45049:72:0;45129:32;;45049:72;;-1:-1:-1;;;;;;45129:13:0;;;:32;;;;;45049:72;;45129:32;;;;45049:72;45129:13;:32;;;;;;;45125:83;;45163:45;;-1:-1:-1;;;45163:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;41382:97;41433:2;;:42;;;-1:-1:-1;;;41433:42:0;;41464:10;41433:42;;;;;;-1:-1:-1;;;;;41433:2:0;;;;:30;;:42;;;;;:2;;:42;;;;;;;;:2;;:42;;;5:2:-1;;;;30:1;27;20:12;40283:371:0;40385:17;;40424:2;;:28;;;-1:-1:-1;;;40424:28:0;;;;40385:17;;40424:2;;;-1:-1:-1;;;;;40424:2:0;;:26;;:28;;;;;;;;;;;;;;:2;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;40424:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;40424:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;40424:28:0;:34;40410:9;:49;40406:116;;40461:61;;-1:-1:-1;;;40461:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;40406:116;40526:6;40540:111;40551:5;40547:1;:9;40540:111;;;40565:2;;40594:13;;-1:-1:-1;;;;;40565:2:0;;;;:28;;40594:10;;40605:1;;40594:13;;;;;;;;;;;;40609:2;;;;;;;;;-1:-1:-1;;;;;40609:2:0;-1:-1:-1;;;;;40609:26:0;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;40609:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;40609:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;40609:28:0;40565:73;;;-1:-1:-1;;;;;;40565:73:0;;;;;;;-1:-1:-1;;;;;40565:73:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;40565:73:0;;;;;;;-1:-1:-1;40565:73:0;;;;5:2:-1;;;;30:1;27;20:12;5:2;40565:73:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;40643:3:0;;;;;-1:-1:-1;40540:111:0;;-1:-1:-1;40540:111:0;50213:107;50271:2;;:47;;;-1:-1:-1;;;50271:47:0;;50291:10;50271:47;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;50271:2:0;;:19;;:47;;;;;-1:-1:-1;;50271:47:0;;;;;;;;-1:-1:-1;50271:2:0;:47;;;5:2:-1;;;;30:1;27;20:12;45557:334:0;45661:10;-1:-1:-1;;;;;45642:51:0;;-1:-1:-1;;;;;;;;;;;45673:19:0;45651:8;45673:9;:19::i;:::-;45642:51;;;;;;;;;;;;;;;45725:3;;:72;;;-1:-1:-1;;;45725:72:0;;45756:10;45725:72;;;;-1:-1:-1;;;;;45725:72:0;;;;;;;45787:9;45725:72;;;;;;45697:25;;45725:3;;;;;:30;;:72;;;;;;;;;;;;;;;45697:25;45725:3;:72;;;5:2:-1;;;;30:1;27;20:12;31241:31:0;;;-1:-1:-1;;;;;31241:31:0;;:::o;33246:157::-;33320:14;;-1:-1:-1;;;;;33320:14:0;33306:10;:28;33302:99;;;33337:2;:28;;-1:-1:-1;;;;;;33337:28:0;-1:-1:-1;;;;;33337:28:0;;;;;;;;;;;33367:17;;;-1:-1:-1;;;33367:17:0;;;;:2;;;;;:15;;:17;;;;;-1:-1:-1;;33367:17:0;;;;;;;;-1:-1:-1;33367:2:0;:17;;;5:2:-1;;;;30:1;27;20:12;43639:239:0;-1:-1:-1;;;;;43709:20:0;;43724:4;43709:20;43705:61;;;43731:35;;;-1:-1:-1;;;43731:35:0;;;;;;;;;;;;-1:-1:-1;;;43731:35:0;;;;;;;;;;;;;;43705:61;43781:2;;:44;;;-1:-1:-1;;;43781:44:0;;43801:10;43781:44;;;;-1:-1:-1;;;;;43781:44:0;;;;;;;;;;;;;;;43770:56;;43781:2;;;;;:19;;:44;;;;;;;;;;;;;;;:2;;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;43781:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;43781:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;43781:44:0;43770:10;:56::i;:::-;-1:-1:-1;43835:38:0;;;;;;;;-1:-1:-1;;;;;43835:38:0;;;43849:10;;-1:-1:-1;;;;;;;;;;;43835:38:0;;;;;;;;43639:239;;:::o;37890:112::-;37976:2;;;:22;;;-1:-1:-1;;;37976:22:0;;-1:-1:-1;;;;;37976:22:0;;;;;;;;;;;;37948:15;;37976:2;;;;:12;;:22;;;;;;;;;;;;;;;:2;:22;;;5:2:-1;;;;30:1;27;20:12;39136:111:0;39192:2;;;:51;;;-1:-1:-1;;;39192:51:0;;39221:10;39192:51;;;;;;;39233:9;39192:51;;;;;-1:-1:-1;;;;;39192:2:0;;;;:28;;:51;;;;;:2;;:51;;;;;;;:2;;:51;;;5:2:-1;;;;30:1;27;20:12;45220:333:0;45324:10;-1:-1:-1;;;;;45305:51:0;;-1:-1:-1;;;;;;;;;;;45336:19:0;45314:8;45336:9;:19::i;:::-;45305:51;;;;;;;;;;;;;;;45388:3;;:72;;;-1:-1:-1;;;45388:72:0;;45419:10;45388:72;;;;-1:-1:-1;;;;;45388:72:0;;;;;;;45450:9;45388:72;;;;;;45360:25;;45388:3;;;;;:30;;:72;;;;;;;;;;;;;;;45360:25;45388:3;:72;;;5:2:-1;;;;30:1;27;20:12;34180:195:0;34251:4;34259;34251:12;34245:29;;34266:8;;;34245:29;34295:14;;-1:-1:-1;;;;;34295:14:0;34281:10;:28;34277:96;;;34329:8;34312:2;;:26;;;;;-1:-1:-1;;;;;34312:26:0;;;;;-1:-1:-1;;;;;34312:26:0;;;;;;34340:2;;;;;;;;;-1:-1:-1;;;;;34340:2:0;-1:-1:-1;;;;;34340:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;31008:16:0;;;-1:-1:-1;;;;;31008:16:0;;:::o;38348:103::-;38405:2;;;:42;;;-1:-1:-1;;;38405:42:0;;38426:10;38405:42;;;;;;;;;;;;;;-1:-1:-1;;;;;38405:2:0;;;;:20;;:42;;;;;:2;;:42;;;;;;;:2;;:42;;;5:2:-1;;;;30:1;27;20:12;48197:313:0;48302:2;;:17;;;-1:-1:-1;;;48302:17:0;;;;48284:6;;48302:2;;;-1:-1:-1;;;;;48302:2:0;;:15;;:17;;;;;;;;;;;;;;:2;:17;;;5:2:-1;;;;30:1;27;20:12;5:2;48302:17:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;48302:17:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;48302:17:0;48298:40;;48330:8;;;48298:40;48360:2;;;;;;;;;-1:-1:-1;;;;;48360:2:0;-1:-1:-1;;;;;48360:23:0;;:25;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;48360:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;48360:25:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;48360:25:0;-1:-1:-1;;;;;48346:39:0;:10;:39;48342:53;;48387:8;;;48342:53;48413:12;:19;48409:1;:23;48403:104;;;48470:12;48483:1;48470:15;;;;;;;;;;;;;;-1:-1:-1;;;;;48446:48:0;48463:4;-1:-1:-1;;;;;48446:48:0;-1:-1:-1;;;;;;;;;;;48487:6:0;48446:48;;;;;;;;;;;;;;;;;;48499:3;;48403:104;;42266:864;42315:10;42329:9;42315:23;42307:32;;;;;;42415:13;;-1:-1:-1;;;42415:13:0;;;;42411:44;;;42430:25;;;-1:-1:-1;;;42430:25:0;;;;;;;;;;;;-1:-1:-1;;;42430:25:0;;;;;;;;;;;;;;42411:44;42524:21;42555:19;42549:62;;42577:34;;;-1:-1:-1;;;42577:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;42549:62;42655:2;;:27;;;-1:-1:-1;;;42655:27:0;;;;42615:6;;;;-1:-1:-1;;;;;42655:2:0;;;;:25;;:27;;;;;;;;;;;;;;;:2;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;42655:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;42655:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;42655:27:0;;-1:-1:-1;42688:439:0;42699:3;42695:1;:7;42688:439;;;42741:2;;:22;;;-1:-1:-1;;;42741:22:0;;;;;;;;;;42711:19;;-1:-1:-1;;;;;42741:2:0;;:19;;:22;;;;;;;;;;;;;;:2;:22;;;5:2:-1;;;;30:1;27;20:12;5:2;42741:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;42741:22:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;42741:22:0;42784:2;;:21;;;-1:-1:-1;;;42784:21:0;;-1:-1:-1;;;;;42784:21:0;;;;;;;;;42741:22;;-1:-1:-1;;;42784:2:0;;;;;;;;:16;;:21;;;;;42741:22;;42784:21;;;;;;;;:2;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;42784:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;42784:21:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;42784:21:0;42858:2;;:18;;;-1:-1:-1;;;42858:18:0;;;;42784:21;;-1:-1:-1;42810:17:0;;42858:2;;;;-1:-1:-1;;;;;42858:2:0;;:16;;:18;;;;;42784:21;;42858:18;;;;;;;;:2;:18;;;5:2:-1;;;;30:1;27;20:12;5:2;42858:18:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;42858:18:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;42858:18:0;42830:25;;;42858:18;42830:46;;;;;;-1:-1:-1;42885:16:0;;42881:234;;42917:22;;-1:-1:-1;;;;;42917:8:0;;;:22;;;;;42926:12;;42917:22;;;;42926:12;42917:8;:22;;;;;;;42912:195;;42951:53;;;;;;;;;;;;;;-1:-1:-1;;;;;42951:53:0;;;;;;;;;;;42912:195;;;43026:2;;43054:26;;;-1:-1:-1;;;43054:26:0;;;;43026:2;;;;-1:-1:-1;;;;;43026:2:0;;:27;;43083:12;;43026:2;;43054:24;;:26;;;;;;;;;;;;;;43026:2;43054:26;;;5:2:-1;;;;30:1;27;20:12;5:2;43054:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;43054:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;43054:26:0;43026:70;;;-1:-1:-1;;;;;;43026:70:0;;;;;;;43054:41;;;;43026:70;;;;;;;;;;-1:-1:-1;;43026:70:0;;;;;;;-1:-1:-1;43026:70:0;;;;5:2:-1;;;;30:1;27;20:12;5:2;43026:70:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;43026:70:0;;;;42912:195;-1:-1:-1;;43119:3:0;;;;;-1:-1:-1;42688:439:0;;41483:316;41577:10;-1:-1:-1;;;;;41558:51:0;;-1:-1:-1;;;;;;;;;;;41589:19:0;41567:8;41589:9;:19::i;:::-;41558:51;;;;;;;;;;;;;;;41641:2;;:61;;;-1:-1:-1;;;41641:61:0;;41661:10;41641:61;;;;-1:-1:-1;;;;;41641:61:0;;;;;;;41692:9;41641:61;;;;;;41613:25;;41641:2;;;;;:19;;:61;;;;;;;;;;;;;;;41613:25;41641:2;:61;;;5:2:-1;;;;30:1;27;20:12;46950:189:0;47041:3;;:48;;;-1:-1:-1;;;47041:48:0;;47073:10;47041:48;;;;;;;;;;;;;;;;;;;;47020:18;;-1:-1:-1;;;;;47041:3:0;;:14;;47062:9;;47073:10;47085:3;;47041:48;;;;;;;;;;;;;;;47020:18;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;47041:48:0;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;47041:48:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;47041:48:0;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;47041:48:0;;-1:-1:-1;47097:14:0;;47093:42;;47113:22;47124:10;47113;:22::i;31050:::-;;;-1:-1:-1;;;;;31050:22:0;;:::o;31496:71::-;;;-1:-1:-1;;;;;31496:71:0;;:::o;31101:24::-;;;-1:-1:-1;;;;;31101:24:0;;:::o;46302:599::-;46438:2;;:26;;;-1:-1:-1;;;46438:26:0;;-1:-1:-1;;;;;46438:26:0;;;;;;;;;-1:-1:-1;;46438:2:0;;;;;;;:16;;:26;;;;;;;;;;;;;;;:2;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;46438:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;46438:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;46438:26:0;;-1:-1:-1;46468:6:0;46482:186;46492:23;:30;46488:1;:34;46482:186;;;46573:42;-1:-1:-1;;;;;46536:119:0;46545:23;46569:1;46545:26;;;;;;;;;;;;;;-1:-1:-1;;;;;46536:119:0;-1:-1:-1;;;;;;;;;;;46617:37:0;46627:23;46651:1;46627:26;;;;;;;46617:37;46536:119;;;;;;;;;;;;;;;46660:3;;46482:186;;;46699:3;;:86;;-1:-1:-1;;;46699:86:0;;46719:10;46699:86;;;;;;-1:-1:-1;;;;;46699:86:0;;;;;;;46775:9;46699:86;;;;;;;;;;;;;;;;;;;;;46671:25;;46699:3;;;;;:19;;46719:10;46739:8;;46750:23;;46775:9;46699:86;;;;;;;;;;;;;;46671:25;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;46699:86:0;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;46699:86:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;46699:86:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;46699:86:0;46793:32;;46699:86;;-1:-1:-1;;;;;;46793:13:0;;;:32;;;;;46699:86;;46793:32;;;;46699:86;46793:13;:32;;;;;;;46789:46;;46827:8;;;46789:46;46846:50;;;;;;;;46870:10;;-1:-1:-1;;;;;46846:50:0;;;-1:-1:-1;;;;;;;;;;;46846:50:0;;;;;;;;46302:599;;;;;:::o;47635:135::-;47731:2;;;:35;;;-1:-1:-1;;;47731:35:0;;-1:-1:-1;;;;;47731:35:0;;;;;;;;;;;;47706:12;;47731:2;;;;:25;;:35;;;;;;;;;;;;;;;:2;:35;;;5:2:-1;;;;30:1;27;20:12;36335:100:0;36408:3;;:23;;;-1:-1:-1;;;36408:23:0;;;;36385:7;;-1:-1:-1;;;;;36408:3:0;;:21;;:23;;;;;;;;;;;;;;:3;:23;;;5:2:-1;;;;30:1;27;20:12;33094:150:0;33162:14;;-1:-1:-1;;;;;33162:14:0;33148:10;:28;33144:98;;;33179:2;:27;;-1:-1:-1;;;;;;33179:27:0;-1:-1:-1;;;;;33179:27:0;;;;;;;;;;33208:17;;;-1:-1:-1;;;33208:17:0;;;;:2;;;;;:15;;:17;;;;-1:-1:-1;;33208:17:0;;;;;;;-1:-1:-1;33208:2:0;:17;;;5:2:-1;;;;30:1;27;20:12;35440:136:0;35511:14;;-1:-1:-1;;;;;35511:14:0;35497:10;:28;35494:78;;;35530:11;:22;;-1:-1:-1;;;;;;35530:22:0;-1:-1:-1;;;;;35530:22:0;;;;;35494:78;;30451:20;;;;;;;;;;;;;;;-1:-1:-1;;30451:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33860:157;33933:14;;-1:-1:-1;;;;;33933:14:0;33919:10;:28;33915:100;;;33950:3;:28;;-1:-1:-1;;;;;;33950:28:0;-1:-1:-1;;;;;33950:28:0;;;;;;;;;;;33980:18;;;-1:-1:-1;;;33980:18:0;;;;:3;;;;;:16;;:18;;;;;-1:-1:-1;;33980:18:0;;;;;;;;-1:-1:-1;33980:3:0;:18;;;5:2:-1;;;;30:1;27;20:12;50032:179:0;50126:2;;:83;;;-1:-1:-1;;;50126:83:0;;50164:10;50126:83;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;50126:2:0;;:37;;:83;;;;;-1:-1:-1;;50126:83:0;;;;;;;;-1:-1:-1;50126:2:0;:83;;;5:2:-1;;;;30:1;27;20:12;36439:206:0;-1:-1:-1;;;;;36502:20:0;;36517:4;36502:20;36498:61;;;36524:35;;;-1:-1:-1;;;36524:35:0;;;;;;;;;;;;-1:-1:-1;;;36524:35:0;;;;;;;;;;;;;;36498:61;36562:3;;:37;;;-1:-1:-1;;;36562:37:0;;36575:10;36562:37;;;;-1:-1:-1;;;;;36562:37:0;;;;;;;;;;;;;;;:3;;;;;:12;;:37;;;;;:3;;:37;;;;;;;:3;;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;36562:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;36607:33:0;;;;;;;;-1:-1:-1;;;;;36607:33:0;;;-1:-1:-1;36616:10:0;;-1:-1:-1;;;;;;;;;;;;36607:33:0;;;;;;;;36439:206;;:::o;34845:140::-;34916:14;;-1:-1:-1;;;;;34916:14:0;34902:10;:28;34898:85;;;34933:5;:33;;-1:-1:-1;;;;;;34933:33:0;-1:-1:-1;;;;;34933:33:0;;;;;34898:85;;38906:111;38964:2;;;:49;;;-1:-1:-1;;;38964:49:0;;39002:10;38964:49;;;;;;;;-1:-1:-1;;;;;38964:2:0;;;;:37;;:49;;;;;:2;;:49;;;;;;;:2;;:49;;;5:2:-1;;;;30:1;27;20:12;50326:252:0;50451:5;;:76;;-1:-1:-1;;;50451:76:0;;50491:10;50451:76;;;;;;;;;;;;;;;;;;;;;50430:18;;-1:-1:-1;;;;;50451:5:0;;:22;;50480:9;;50491:10;;50503:12;;50517:9;;50451:76;;;;;;;;;;;;;;;;;;50430:18;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;50451:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;50451:76:0;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;50451:76:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;50451:76:0;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;50451:76:0;;-1:-1:-1;50535:14:0;;50531:42;;50551:22;50562:10;50551;:22::i;31178:28::-;;;-1:-1:-1;;;;;31178:28:0;;:::o;38006:121::-;38097:2;;:26;;;-1:-1:-1;;;38097:26:0;;-1:-1:-1;;;;;38097:26:0;;;;;;;;;-1:-1:-1;;38097:2:0;;;;;;;:16;;:26;;;;;;;;;;;;;;;:2;:26;;;5:2:-1;;;;30:1;27;20:12;49722:143:0;49798:2;;:65;;;-1:-1:-1;;;49798:65:0;;49827:10;49798:65;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;49798:2:0;;:28;;:65;;;;;-1:-1:-1;;49798:65:0;;;;;;;;-1:-1:-1;49798:2:0;:65;;;5:2:-1;;;;30:1;27;20:12;43555:80:0;43597:2;;:34;;;-1:-1:-1;;;43597:34:0;;43620:10;43597:34;;;;;;-1:-1:-1;;;;;43597:2:0;;;;:22;;:34;;;;;:2;;:34;;;;;;;;:2;;:34;;;5:2:-1;;;;30:1;27;20:12;38455:99:0;38507:2;;;:43;;;-1:-1:-1;;;38507:43:0;;38539:10;38507:43;;;;;;;;-1:-1:-1;;;;;38507:2:0;;;;:31;;:43;;;;;:2;;:43;;;;;;;:2;;:43;;;5:2:-1;;;;30:1;27;20:12;33703:155:0;33775:14;;-1:-1:-1;;;;;33775:14:0;33761:10;:28;33757:99;;;33792:3;:27;;-1:-1:-1;;;;;;33792:27:0;-1:-1:-1;;;;;33792:27:0;;;;;;;;;;;33821:18;;;-1:-1:-1;;;33821:18:0;;;;:3;;;;;:16;;:18;;;;;-1:-1:-1;;33821:18:0;;;;;;;;-1:-1:-1;33821:3:0;:18;;;5:2:-1;;;;30:1;27;20:12;31027:20:0;;;-1:-1:-1;;;;;31027:20:0;;:::o;33405:143::-;33472:14;;-1:-1:-1;;;;;33472:14:0;33458:10;:28;33454:92;;;33489:2;:21;;-1:-1:-1;;;;;;33489:21:0;-1:-1:-1;;;;;33489:21:0;;;;;;;;;;;33512:17;;;-1:-1:-1;;;33512:17:0;;;;:2;;;;;:15;;:17;;;;;-1:-1:-1;;33512:17:0;;;;;;;;-1:-1:-1;33512:2:0;:17;;;5:2:-1;;;;30:1;27;20:12;31570:33:0;;;-1:-1:-1;;;31570:33:0;;;;;:::o;44239:507::-;-1:-1:-1;;;;;44355:20:0;;44370:4;44355:20;44351:61;;;44377:35;;;-1:-1:-1;;;44377:35:0;;;;;;;;;;;;-1:-1:-1;;;44377:35:0;;;;;;;;;;;;;;44351:61;44416:6;44431:186;44441:23;:30;44437:1;:34;44431:186;;;44522:42;-1:-1:-1;;;;;44485:119:0;44494:23;44518:1;44494:26;;;;;;;;;;;;;;-1:-1:-1;;;;;44485:119:0;-1:-1:-1;;;;;;;;;;;44566:37:0;44576:23;44600:1;44576:26;;;;;;;44566:37;44485:119;;;;;;;;;;;;;;;44609:3;;44431:186;;;44620:2;;:73;;-1:-1:-1;;;44620:73:0;;44644:10;44620:73;;;;;;-1:-1:-1;;;;;44620:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:2;;;;;:23;;44656:3;;44661:6;;44669:23;;44620:73;;;;;;;;;;;;;;:2;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;44620:73:0;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;44620:73:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;44703:38:0;;;;;;;;-1:-1:-1;;;;;44703:38:0;;;-1:-1:-1;44717:10:0;;-1:-1:-1;;;;;;;;;;;;44703:38:0;;;;;;;;44239:507;;;;:::o;39829:450::-;39931:17;;40002:2;;:28;;;-1:-1:-1;;;40002:28:0;;;;39931:17;;40002:2;;;-1:-1:-1;;;;;40002:2:0;;:26;;:28;;;;;;;;;;;;;;:2;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;40002:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;40002:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;40002:28:0;39971:2;;:28;;;-1:-1:-1;;;39971:28:0;;;;:2;;;;-1:-1:-1;;;;;39971:2:0;;:26;;:28;;;;;40002;;39971;;;;;;;;:2;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;39971:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;39971:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;39971:28:0;:59;39970:67;39956:9;:82;39952:162;;40040:74;;-1:-1:-1;;;40040:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39952:162;40118:6;40132:144;40143:5;40139:1;:9;40132:144;;;40157:2;;40186:13;;-1:-1:-1;;;;;40157:2:0;;;;:28;;40186:10;;40197:1;;40186:13;;;;;;;;;;;;40233:2;;;;;;;;;-1:-1:-1;;;;;40233:2:0;-1:-1:-1;;;;;40233:26:0;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;40233:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;40233:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;40233:28:0;40202:2;;:28;;;-1:-1:-1;;;40202:28:0;;;;:2;;;;-1:-1:-1;;;;;40202:2:0;;:26;;:28;;;;;40233;;40202;;;;;;;;:2;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;40202:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;40202:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;40202:28:0;40157:106;;;-1:-1:-1;;;;;;40157:106:0;;;;;;;-1:-1:-1;;;;;40157:106:0;;;;;;;40202:59;;40157:106;;;;;;;;;;-1:-1:-1;;40157:106:0;;;;;;;-1:-1:-1;40157:106:0;;;;5:2:-1;;;;30:1;27;20:12;5:2;40157:106:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;40268:3:0;;;;;-1:-1:-1;40132:144:0;;-1:-1:-1;40132:144:0;38673:99;38725:2;;;:43;;;-1:-1:-1;;;38725:43:0;;38757:10;38725:43;;;;;;;;-1:-1:-1;;;;;38725:2:0;;;;:31;;:43;;;;;:2;;:43;;;;;;;:2;;:43;;;5:2:-1;;;;30:1;27;20:12;38131:213:0;-1:-1:-1;;;;;38185:48:0;;38194:10;-1:-1:-1;;;;;;;;;;;38211:21:0;38194:10;38211:9;:21::i;:::-;38185:48;;;;;;;;;;;;;;;-1:-1:-1;;;;;38242:20:0;;38257:4;38242:20;38238:61;;;38264:35;;;-1:-1:-1;;;38264:35:0;;;;;;;;;;;;-1:-1:-1;;;38264:35:0;;;;;;;;;;;;;;38238:61;38304:2;;;:35;;;-1:-1:-1;;;38304:35:0;;38323:10;38304:35;;;;;;;-1:-1:-1;;;;;38304:35:0;;;;;;;;;:2;;;:18;;:35;;;;;:2;;:35;;;;;;;:2;;:35;;;5:2:-1;;;;30:1;27;20:12;49561:159:0;49645:2;;:73;;;-1:-1:-1;;;49645:73:0;;49678:10;49645:73;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;49645:2:0;;:32;;:73;;;;;-1:-1:-1;;49645:73:0;;;;;;;;-1:-1:-1;49645:2:0;:73;;;5:2:-1;;;;30:1;27;20:12;31075:23:0;;;-1:-1:-1;;;;;31075:23:0;;:::o;43447:104::-;43505:2;;:42;;;-1:-1:-1;;;43505:42:0;;43524:10;43505:42;;;;;;;;;;;;-1:-1:-1;;;;;43505:2:0;;;;:18;;:42;;;;;:2;;:42;;;;;;;;:2;;:42;;;5:2:-1;;;;30:1;27;20:12;48663:147:0;48741:2;;:67;;;-1:-1:-1;;;48741:67:0;;48771:10;48741:67;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;48741:2:0;;:29;;:67;;;;;-1:-1:-1;;48741:67:0;;;;;;;;-1:-1:-1;48741:2:0;:67;;;5:2:-1;;;;30:1;27;20:12;37748:138:0;37855:2;;:27;;;-1:-1:-1;;;37855:27:0;;-1:-1:-1;;;;;37855:27:0;;;;;;;;;;;;;;;;-1:-1:-1;;37855:2:0;;;;;;;:10;;:27;;;;;;;;;;;;;;;:2;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;37855:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;37855:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;37855:27:0;;37748:138;-1:-1:-1;;;37748:138:0:o;49247:163::-;49333:2;;:75;;;-1:-1:-1;;;49333:75:0;;49367:10;49333:75;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;49333:2:0;;:33;;:75;;;;;-1:-1:-1;;49333:75:0;;;;;;;;-1:-1:-1;49333:2:0;:75;;;5:2:-1;;;;30:1;27;20:12;35580:163:0;35670:11;;-1:-1:-1;;;;;35670:11:0;35656:10;:25;35653:86;;;35686:22;:33;;-1:-1:-1;;;;;;35686:33:0;-1:-1:-1;;;;;35686:33:0;;;;;35653:86;;31155:20;;;-1:-1:-1;;;;;31155:20:0;;:::o;35974:119::-;36019:19;36067:2;;;;;;;;;-1:-1:-1;;;;;36067:2:0;-1:-1:-1;;;;;36067:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36067:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;36067:22:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;36067:22:0;36052:12;:37;;-1:-1:-1;35974:119:0;:::o;31354:140::-;31388:14;;-1:-1:-1;;;;;31388:14:0;31384:108;;31450:14;:27;;-1:-1:-1;;;;;;31450:27:0;31467:10;31450:27;;;31384:108;;42003:259;42176:13;;-1:-1:-1;;;42176:13:0;;;;42172:86;;;42198:22;;:50;;-1:-1:-1;;;;;42198:22:0;;;;42226:21;42198:50;;;;;:22;:50;:22;:50;42226:21;42198:22;:50;;;;;;;42194:64;;42250:8;;;34712:129;34780:14;;-1:-1:-1;;;;;34780:14:0;34766:10;:28;34762:77;;;34797:3;:25;;-1:-1:-1;;;;;;34797:25:0;-1:-1:-1;;;;;34797:25:0;;;;;34762:77;;30908:21;;;;;;-1:-1:-1;;;;;30908:21:0;;:::o;40658:208::-;40749:17;;40736:10;40785:78;40796:5;40792:1;:9;40785:78;;;40810:2;;40836:13;;-1:-1:-1;;;;;40810:2:0;;;;:25;;40836:10;;40847:1;;40836:13;;;;;;;;;;;;40810:40;;;;;;;;;;;;;-1:-1:-1;;;;;40810:40:0;-1:-1:-1;;;;;40810:40:0;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;40810:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;40855:3:0;;;;;-1:-1:-1;40785:78:0;;-1:-1:-1;40785:78:0;47502:129;47595:2;;;:32;;;-1:-1:-1;;;47595:32:0;;-1:-1:-1;;;;;47595:32:0;;;;;;;;;;;;47570:12;;47595:2;;;;:22;;:32;;;;;;;;;;;;;;;:2;:32;;;5:2:-1;;;;30:1;27;20:12;38776:126:0;38845:2;;;:53;;;-1:-1:-1;;;38845:53:0;;38877:10;38845:53;;;;;;;-1:-1:-1;;;;;38845:53:0;;;;;;;;;:2;;;:31;;:53;;;;;:2;;:53;;;;;;;:2;;:53;;;5:2:-1;;;;30:1;27;20:12;34019:159:0;34093:14;;-1:-1:-1;;;;;34093:14:0;34079:10;:28;34075:101;;;34110:3;:29;;-1:-1:-1;;;;;;34110:29:0;-1:-1:-1;;;;;34110:29:0;;;;;;;;;;;34141:18;;;-1:-1:-1;;;34141:18:0;;;;:3;;;;;:16;;:18;;;;;-1:-1:-1;;34141:18:0;;;;;;;;-1:-1:-1;34141:3:0;:18;;;5:2:-1;;;;30:1;27;20:12;31277:74:0;;;-1:-1:-1;;;;;31277:74:0;;:::o;47913:135::-;48009:2;;;:35;;;-1:-1:-1;;;;;;48009:35:0;;-1:-1:-1;;;;;48009:35:0;;;;;;;;;;;;47984:12;;48009:2;;;;:25;;:35;;;;;;;;;;;;;;;:2;:35;;;5:2:-1;;;;30:1;27;20:12;30407:20542:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30407:20542:0;;;-1:-1:-1;30407:20542:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;

Swarm Source

ipfs://79765151e361fad17aba014cb886e4508095db6a9c63f145d70b230953f5f8a1
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.