ETH Price: $2,005.73 (-2.86%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Build Mining Cam...204517032024-08-04 0:48:47576 days ago1722732527IN
Crypto Kingdoms: Game 8
0 ETH0.000055722
Build Mining Cam...204517032024-08-04 0:48:47576 days ago1722732527IN
Crypto Kingdoms: Game 8
0 ETH0.000027861
Build Banks204517032024-08-04 0:48:47576 days ago1722732527IN
Crypto Kingdoms: Game 8
0 ETH0.00002791
Message99841652020-05-02 2:43:592131 days ago1588387439IN
Crypto Kingdoms: Game 8
0 ETH0.000074242
Turn99841572020-05-02 2:42:322131 days ago1588387352IN
Crypto Kingdoms: Game 8
0 ETH0.000049032
Turn99832212020-05-01 23:11:242131 days ago1588374684IN
Crypto Kingdoms: Game 8
0 ETH0.00232382.2
Attack99830142020-05-01 22:21:212131 days ago1588371681IN
Crypto Kingdoms: Game 8
0 ETH0.000377784.8
Attack99823652020-05-01 20:02:142131 days ago1588363334IN
Crypto Kingdoms: Game 8
0 ETH0.00025363
Recruit Soldiers99823652020-05-01 20:02:142131 days ago1588363334IN
Crypto Kingdoms: Game 8
0 ETH0.000130553
Turn99818592020-05-01 18:08:042131 days ago1588356484IN
Crypto Kingdoms: Game 8
0 ETH0.004054.5
Attack99817892020-05-01 17:51:372131 days ago1588355497IN
Crypto Kingdoms: Game 8
0 ETH0.000488045.5
Attack99817372020-05-01 17:40:372131 days ago1588354837IN
Crypto Kingdoms: Game 8
0 ETH0.000532416
Attack99817222020-05-01 17:36:342131 days ago1588354594IN
Crypto Kingdoms: Game 8
0 ETH0.000447036
Turn99816562020-05-01 17:21:502131 days ago1588353710IN
Crypto Kingdoms: Game 8
0 ETH0.003018854.7
Build Hovels99743202020-04-30 13:57:362133 days ago1588255056IN
Crypto Kingdoms: Game 8
0 ETH0.0005207212
Turn99640852020-04-29 0:05:262134 days ago1588118726IN
Crypto Kingdoms: Game 8
0 ETH0.001284612
Recruit Soldiers99634812020-04-28 21:52:062134 days ago1588110726IN
Crypto Kingdoms: Game 8
0 ETH0.000095682.2
Attack99634722020-04-28 21:50:362134 days ago1588110636IN
Crypto Kingdoms: Game 8
0 ETH0.000185972.2
Recruit Soldiers99634552020-04-28 21:46:162134 days ago1588110376IN
Crypto Kingdoms: Game 8
0 ETH0.000217465
Build Mining Cam...99634462020-04-28 21:44:552134 days ago1588110295IN
Crypto Kingdoms: Game 8
0 ETH0.000217355
Attack99634422020-04-28 21:43:332134 days ago1588110213IN
Crypto Kingdoms: Game 8
0 ETH0.000443665
Recruit Spies99634282020-04-28 21:39:072134 days ago1588109947IN
Crypto Kingdoms: Game 8
0 ETH0.00027625
Build Mining Cam...99634222020-04-28 21:37:592134 days ago1588109879IN
Crypto Kingdoms: Game 8
0 ETH0.000130413
Build Banks99634072020-04-28 21:34:192134 days ago1588109659IN
Crypto Kingdoms: Game 8
0 ETH0.00022235
Turn99623372020-04-28 17:28:582134 days ago1588094938IN
Crypto Kingdoms: Game 8
0 ETH0.001284612
View all transactions

Latest 2 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
-99832212020-05-01 23:11:242131 days ago1588374684
Crypto Kingdoms: Game 8
0.1215 ETH
-99832212020-05-01 23:11:242131 days ago1588374684
Crypto Kingdoms: Game 8
0.2835 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
CryptoKingdoms

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2020-03-04
*/

pragma solidity ^0.5.9;

contract CryptoKingdoms
{
    uint public constant gameNumber = 8;
    
    address public constant previousGameAddress = 0x2c8dc01FB73c7079cC8A9e7a339C172Bbf2d3EbC;
    
    address public nextGameAddress;
    
    enum Race
    {
        None,
        Humane
    }

    struct Kingdom
    {
        Race race;

        string name;

        uint actions;
        
        uint gold;
        
        uint soldiers;
        uint spies;
        uint wizards;
        uint dragons;
        
        uint hovels;
        uint miningCamps;
        uint banks;
        uint barracks;
        uint castles;
    }
    
    Kingdom public winner;
    uint winnerPrize;
    
    uint constant defaultJoinDuration = 26 days;
    uint constant defaultGameDuration = 33 days;
    uint constant defaultTurnTime = 11 hours;
    
    uint constant joinGameCost = 0.0225 ether;
    
    uint constant soldierCost = 3;
    uint constant spyCost = 100;
    uint constant wizardCost = 250;
    uint constant dragonCost = 3000;
    uint constant hovelCost = 100;
    uint constant miningCampCost = 1000;
    uint constant bankCost = 1500;
    uint constant barracksCost = 300;
    uint constant castleCost = 15000;
    
    uint constant soldierAttack = 1;
    uint constant spyAttack = 5;
    uint constant wizardAttack = 100;
    uint constant dragonAttack = 500;
    
    uint constant barracksDefence = 5;
    uint constant castleDefence = 1000;
    
    uint constant wizardGoldPerTurn = 20;
    uint constant hovelGoldPerTurn = 5;
    uint constant miningCampGoldPerTurn = 150;

    uint constant bankedGoldPerUnitGoldPerTurn = 50;
    uint constant bankLimit = 15;
    
    uint constant barracksSoldiersPerTurn = 25;
    uint constant castleSoldiersPerTurn = 50;
    
    uint constant hovelCapacity = 3;
    
    uint constant espionageCost = 25;
    
    address payable[] private players;
    address payable private host;
    
    mapping (address => Kingdom) private kingdoms;
    
    uint gameTurnTime = defaultTurnTime;
    uint gameDuration = defaultGameDuration;
    uint gameJoinDuration = defaultJoinDuration;
    uint gameTotalTurns;
    uint gameStartTime;
    uint gameEndTime;
    
    uint hostFees;
    
    uint currentTurnNumber;
    uint leaderPlayerIndex;
    uint espionageInformationType;
    
    event turnCompleted();
    event newPlayerJoined(string playerName);
    event attackCompleted(uint goldExchanged, uint soldierDeaths, uint wizardDeaths, uint dragonDeaths);
    event spyReported(string name, uint detail, uint info, uint moreInfo);
    event sabotaged(uint sabotagedGold, uint sabotagedDragons, uint sabotagedHovels, uint sabotagedMiningCamps, uint sabotagedBanks, uint dragonsKilled);
    event hostMessage(string message);
    event gameEnded();
    
    constructor (uint joinTimeSeconds, uint gameTimeSeconds, uint turnTimeSeconds) public
    {
        if (joinTimeSeconds > 0)
        {
            gameJoinDuration = joinTimeSeconds;
        }
        
        if (gameTimeSeconds > 0)
        {
            gameDuration = gameTimeSeconds;
        }
        
        if (turnTimeSeconds > 0)
        {
            gameTurnTime = turnTimeSeconds;
        }
        
        gameStartTime = block.timestamp + gameJoinDuration;
        gameEndTime = gameStartTime + gameDuration;
        gameTotalTurns = (gameDuration / gameTurnTime) + 1; // +1 for the last turn
        host = msg.sender;
    }
    
    function gameStats() public view returns (uint version,
                                              uint numberPlayers,
                                              uint totalGold,
                                              uint totalPrizePool,
                                              uint gameStartTimeSeconds,
                                              uint gameDurationSeconds,
                                              uint gameTurns,
                                              uint gameTurnTimeSeconds,
                                              uint gameCurrentTurn,
                                              uint gameLeaderIndex)
    {
        for (uint playerIndex = 0; playerIndex < players.length; playerIndex++)
        {
            address playerAddress = players[playerIndex];
            Kingdom storage kingdom = kingdoms[playerAddress];
            totalGold += kingdom.gold;
        }
        return (gameNumber, players.length, totalGold, winnerPrize,
                gameStartTime, gameDuration,
                gameTotalTurns, gameTurnTime,
                currentTurnNumber,
                leaderPlayerIndex);
    }
    
    
    //  === Host Functions ===
    
    modifier onlyHost()
    {
        require(msg.sender == host);
        _;
    }
    
    modifier onlyIfGameStarted()
    {
        require(block.timestamp > gameStartTime);
        _;
    }
    
    modifier onlyIfTurnTime()
    {
        if (block.timestamp < gameEndTime)
        {
            uint time = block.timestamp;
            uint turnsRemaining = ((gameEndTime - time) / gameTurnTime) + 1; // For game start turn.
            uint blocktimeTurnNumber = gameTotalTurns - turnsRemaining;
            require(currentTurnNumber < blocktimeTurnNumber);
        }
        else
        {
            require(currentTurnNumber < gameTotalTurns);
        }
        _;
    }
    
    // Called by the game host (at most) every gameTurnTime to update the game state and to allow players to progress.
    function turn() public onlyIfGameStarted() onlyIfTurnTime()
    {
        uint turnsToUpdate = 0;
        if (block.timestamp < gameEndTime)
        {
            uint turnsRemaining = ((gameEndTime - block.timestamp) / gameTurnTime) + 1;
            uint blocktimeTurnNumber = gameTotalTurns - turnsRemaining;
            turnsToUpdate = blocktimeTurnNumber - currentTurnNumber;
        }
        else
        {
            turnsToUpdate = gameTotalTurns - currentTurnNumber;
        }
        
        leaderPlayerIndex = 0;
        uint maxPlayerRank = 0;
        
        for (uint playerIndex = 0; playerIndex < players.length; playerIndex++)
        {
            address player = players[playerIndex];
            Kingdom storage kingdom = kingdoms[player];
            kingdom.actions += turnsToUpdate;
            kingdom.gold += (kingdom.hovels * hovelGoldPerTurn
                           + kingdom.miningCamps * miningCampGoldPerTurn
                           + kingdom.wizards * wizardGoldPerTurn
                           + (kingdom.banks * (kingdom.gold / bankedGoldPerUnitGoldPerTurn))) * turnsToUpdate;
            kingdom.soldiers += (kingdom.barracks * barracksSoldiersPerTurn + kingdom.castles * castleSoldiersPerTurn) * turnsToUpdate;
            
            uint estimatedPlayerRank = kingdom.gold * ((currentTurnNumber * 100) / (gameTotalTurns * 100))
                                   + ((kingdom.soldiers * soldierCost) + (kingdom.wizards * wizardCost) + (kingdom.dragons * dragonCost)
                                    + (kingdom.hovels * hovelCost) + (kingdom.miningCamps * miningCampCost) + (kingdom.banks * bankCost)
                                    + (kingdom.barracks * barracksCost)) * (gameTotalTurns / 4);
            if (estimatedPlayerRank > maxPlayerRank)
            {
                maxPlayerRank = estimatedPlayerRank;
                leaderPlayerIndex = playerIndex;
            }
        }
        
        currentTurnNumber += turnsToUpdate;
        
        if (currentTurnNumber == gameTotalTurns)
        {
            endGame();
        }
        
        emit turnCompleted();
    }
    
    function endGame() private
    {
        uint largestGoldAmount = 0;
        address payable winnerAddress;
        for (uint playerIndex = 0; playerIndex < players.length; playerIndex++)
        {
            address payable playerAddress = players[playerIndex];
            Kingdom storage kingdom = kingdoms[playerAddress];
            if (kingdom.gold > largestGoldAmount)
            {
                largestGoldAmount = kingdom.gold;
                winnerAddress = playerAddress;
            }
        }
        
        winner = kingdoms[winnerAddress];
        winnerAddress.transfer(winnerPrize);
        host.transfer(hostFees);
    }
    
    function setNextGame(address gameAddress) public onlyHost()
    {
        nextGameAddress = gameAddress;
    }
    
    // The game host reserves the right to modify abusive kingdom names.
    function changeKingdomName(uint kingdomIndex, string memory newName) public onlyHost()
    {
        address payable playerAddress = players[kingdomIndex];
        Kingdom storage kingdom = kingdoms[playerAddress];
        kingdom.name = newName;
    }
    
    function message(string memory s) public onlyHost()
    {
        emit hostMessage(s);
    }
    
    
    //  === Player Functions ===

    modifier onlyIfNewPlayer()
    {
        // No existing kingdom for sender address.
        require(kingdoms[msg.sender].race == Race.None);
        require(currentTurnNumber < gameTotalTurns);
        require(msg.value == joinGameCost);
        _;
    }
    
    modifier onlyIfTurnsRemaining()
    {
        require(currentTurnNumber < gameTotalTurns);
        _;
    }
    
    modifier onlyIfValidPlayerIndex(uint playerIndex)
    {
        require(playerIndex < players.length);
        _;
    }
    
    modifier onlyIfOtherPlayerIndex(uint otherPlayerIndex)
    {
        address otherPlayer = players[otherPlayerIndex];
        require(msg.sender != otherPlayer);
        _;
    }
    
    modifier onlyIfActions()
    {
        Kingdom storage kingdom = kingdoms[msg.sender];
        require(kingdom.actions > 0);
        _;
    }
    
    modifier onlyIfGold(uint goldCost)
    {
        Kingdom storage kingdom = kingdoms[msg.sender];
        require(kingdom.gold >= goldCost);
        _;
    }
    
    modifier onlyIfHovels(uint amount)
    {
        Kingdom storage kingdom = kingdoms[msg.sender];
        require(kingdom.hovels >= ((kingdom.spies + kingdom.wizards + amount) / hovelCapacity));
        _;
    }

    modifier onlyIfUnderBankLimit(uint amount)
    {
        Kingdom storage kingdom = kingdoms[msg.sender];
        require((kingdom.banks + amount) <= bankLimit);
        _;
    }

    modifier onlyIfSpies()
    {
        Kingdom storage kingdom = kingdoms[msg.sender];
        require(kingdom.spies > 0);
        _;
    }
    
    modifier onlyIfWizards(uint number)
    {
        Kingdom storage kingdom = kingdoms[msg.sender];
        require(kingdom.wizards > 0);
        _;
    }
    
    modifier onlyIfDragons()
    {
        Kingdom storage kingdom = kingdoms[msg.sender];
        require(kingdom.dragons > 0);
        _;
    }
    
    function joinGame(string memory playerName) public payable onlyIfNewPlayer() onlyIfTurnsRemaining()
    {
        winnerPrize += (msg.value * 7) / 10;
        hostFees += (msg.value * 3) / 10;
        
        kingdoms[msg.sender] = Kingdom({
            race: Race.Humane,
            name: playerName,
            actions: currentTurnNumber,
            gold: 1320 + (currentTurnNumber * hovelGoldPerTurn * 5),
            soldiers: 25,
            spies: 0,
            wizards: 0,
            dragons: 0,
            hovels: 3,
            miningCamps: 1,
            banks: 0,
            barracks: 0,
            castles: 0
        });
        
        players.push(msg.sender);
        
        emit newPlayerJoined(playerName);
    }

    function playerStats() public view
             returns (Race race, string memory kingdomName, uint actions, uint gold,
                      uint soldiers, uint spies, uint wizards, uint dragons,
                      uint hovels, uint miningCamps, uint banks, uint barracks, uint castles)
    {
        Kingdom storage kingdom = kingdoms[msg.sender];
        return (kingdom.race, kingdom.name, kingdom.actions, kingdom.gold,
                kingdom.soldiers, kingdom.spies, kingdom.wizards, kingdom.dragons,
                kingdom.hovels, kingdom.miningCamps, kingdom.banks, kingdom.barracks, kingdom.castles);
    }
    
    function playerAtIndex(uint playerIndex) public view
             onlyIfValidPlayerIndex(playerIndex)
             returns (string memory playerName)
    {
        address playerAddress = players[playerIndex];
        Kingdom storage kingdom = kingdoms[playerAddress];
        return kingdom.name;
    }
    
    // === Player Actions ===

    function recruitSoldiers(uint amount) public
             onlyIfGameStarted() onlyIfTurnsRemaining() onlyIfActions() onlyIfGold(amount * soldierCost)
    {
        Kingdom storage kingdom = kingdoms[msg.sender];
        kingdom.gold -= amount * soldierCost;
        kingdom.soldiers += amount;
        kingdom.actions -= 1;
    }

    function recruitSpies(uint amount) public
             onlyIfGameStarted() onlyIfTurnsRemaining() onlyIfActions() onlyIfGold(amount * spyCost) onlyIfHovels(amount)
    {
        Kingdom storage kingdom = kingdoms[msg.sender];
        kingdom.gold -= amount * spyCost;
        kingdom.spies += amount;
    }
    
    function summonWizards(uint amount) public
             onlyIfGameStarted() onlyIfTurnsRemaining() onlyIfActions() onlyIfGold(amount * wizardCost) onlyIfHovels(amount)
    {
        Kingdom storage kingdom = kingdoms[msg.sender];
        kingdom.gold -= amount * wizardCost;
        kingdom.wizards += amount;
        kingdom.actions -= 1;
    }
    
    function trainDragons(uint amount) public
             onlyIfGameStarted() onlyIfTurnsRemaining() onlyIfActions() onlyIfGold(amount * dragonCost)
    {
        Kingdom storage kingdom = kingdoms[msg.sender];
        kingdom.gold -= amount * dragonCost;
        kingdom.dragons += amount;
        kingdom.actions -= 1;
    }

    function buildHovels(uint amount) public
             onlyIfGameStarted() onlyIfTurnsRemaining() onlyIfActions() onlyIfGold(amount * hovelCost)
    {
        Kingdom storage kingdom = kingdoms[msg.sender];
        kingdom.gold -= amount * hovelCost;
        kingdom.hovels += amount;
        kingdom.actions -= 1;
    }

    function buildBarracks(uint amount) public
             onlyIfGameStarted() onlyIfTurnsRemaining() onlyIfActions() onlyIfGold(amount * barracksCost)
    {
        Kingdom storage kingdom = kingdoms[msg.sender];
        kingdom.gold -= amount * barracksCost;
        kingdom.barracks += amount;
        kingdom.actions -= 1;
    }

    function buildMiningCamps(uint amount) public
             onlyIfGameStarted() onlyIfTurnsRemaining() onlyIfActions() onlyIfGold(amount * miningCampCost)
    {
        Kingdom storage kingdom = kingdoms[msg.sender];
        kingdom.gold -= amount * miningCampCost;
        kingdom.miningCamps += amount;
        kingdom.actions -= 1;
    }
    
    function buildBanks(uint amount) public
             onlyIfGameStarted() onlyIfTurnsRemaining() onlyIfActions() onlyIfGold(amount * bankCost) onlyIfUnderBankLimit(amount)
    {
        Kingdom storage kingdom = kingdoms[msg.sender];
        kingdom.gold -= amount * bankCost;
        kingdom.banks += amount;
        kingdom.actions -= 1;
    }

    function buildCastles(uint amount) public
             onlyIfGameStarted() onlyIfTurnsRemaining() onlyIfActions() onlyIfGold(amount * castleCost)
    {
        Kingdom storage kingdom = kingdoms[msg.sender];
        kingdom.gold -= amount * castleCost;
        kingdom.castles += amount;
        kingdom.actions -= 1;
    }

    function attack(uint targetPlayerIndex, uint numberOfSoldiers) public
             onlyIfGameStarted() onlyIfTurnsRemaining() onlyIfActions() onlyIfOtherPlayerIndex(targetPlayerIndex)
    {
        Kingdom storage attackingKingdom = kingdoms[msg.sender];
        require(attackingKingdom.soldiers >= numberOfSoldiers);
        
        address targetPlayer = players[targetPlayerIndex];        
        Kingdom storage defendingKingdom = kingdoms[targetPlayer];
        
        uint goldExchanged = 0;
        
        uint randomValue = (uint(keccak256(abi.encodePacked(block.timestamp))) << 2) >> ((block.timestamp / 9753) % 7);

        uint attackForce = numberOfSoldiers         * soldierAttack
                         + attackingKingdom.spies   * spyAttack
                         + attackingKingdom.wizards * wizardAttack
                         + attackingKingdom.dragons * dragonAttack
                         + 1;
        attackForce *= 100 + (randomValue % 10);
        attackForce /= 100;

        uint defenceForce = defendingKingdom.soldiers * soldierAttack
                          + defendingKingdom.spies    * spyAttack
                          + defendingKingdom.wizards  * wizardAttack
                          + defendingKingdom.dragons  * dragonAttack
                          + defendingKingdom.barracks * barracksDefence
                          + defendingKingdom.castles  * castleDefence
                          + 1;
        
        uint attackingArmySoldierDeaths = 0;
        uint attackingArmyWizardDeaths = 0;
        uint attackingArmyDragonsDeaths = 0;
        
        if (attackForce > defenceForce)
        {
            // Victory
            
            goldExchanged = (defenceForce * defendingKingdom.gold * 1000000) / (attackForce * 2000000);
            
            attackingArmySoldierDeaths = (defenceForce * numberOfSoldiers * 1000000) / (attackForce * 3000000);
            
            if (defendingKingdom.gold < goldExchanged)
            {
                goldExchanged = defendingKingdom.gold;
            }
            defendingKingdom.gold -= goldExchanged;
            defendingKingdom.soldiers -= (defenceForce * defendingKingdom.soldiers * 1000000) / (attackForce * 4000000);
            
            goldExchanged += randomValue % (currentTurnNumber * 3); // We found this along the way!
            attackingKingdom.gold += goldExchanged;
            attackingKingdom.soldiers -= attackingArmySoldierDeaths;
        }
        else
        {
            // Defeat
            
            defendingKingdom.soldiers -= (attackForce * defendingKingdom.soldiers * 250000) / (defenceForce * 1000000);
            
            if (numberOfSoldiers > 0)
            {
                attackingArmySoldierDeaths = randomValue % numberOfSoldiers;
                attackingKingdom.soldiers -= attackingArmySoldierDeaths;
            }
        }
        
        if (goldExchanged > 0 || attackingArmySoldierDeaths > 0)
        {
            if ((numberOfSoldiers * soldierAttack) < // Whirlwind Attack
                ((attackingKingdom.spies * spyAttack) + (attackingKingdom.wizards * wizardAttack) + (attackingKingdom.dragons * dragonAttack)))
            {
                attackingArmyWizardDeaths = attackingKingdom.wizards / ((randomValue % 5) + 4);
                attackingArmyDragonsDeaths = attackingKingdom.dragons / ((randomValue % 3) + 3);
            }
            else
            {
                attackingArmyWizardDeaths = attackingKingdom.wizards / ((randomValue % 6) + 6);
                attackingArmyDragonsDeaths = attackingKingdom.dragons / ((randomValue % 9) + 7);
            }
            attackingKingdom.wizards -= attackingArmyWizardDeaths;
            attackingKingdom.dragons -= attackingArmyDragonsDeaths;
        
            defendingKingdom.wizards -= defendingKingdom.wizards  / ((randomValue % 7) + 6);
            defendingKingdom.dragons -= defendingKingdom.dragons / ((randomValue % 9) + 9);
        }
        
        attackingKingdom.actions -= 1;
        
        emit attackCompleted(goldExchanged, attackingArmySoldierDeaths, attackingArmyWizardDeaths, attackingArmyDragonsDeaths);
    }

    function espionage(uint targetPlayerIndex) public
             onlyIfGameStarted() onlyIfTurnsRemaining() onlyIfSpies() onlyIfActions() onlyIfGold(espionageCost) onlyIfOtherPlayerIndex(targetPlayerIndex)
    {
        Kingdom storage kingdom = kingdoms[msg.sender];
        kingdom.gold -= espionageCost;
        
        address targetPlayer = players[targetPlayerIndex];        
        Kingdom storage defendingKingdom = kingdoms[targetPlayer];
        
        if (kingdom.spies * 2 > defendingKingdom.spies)
        {
            // Success
            
            uint infoType = (currentTurnNumber + espionageInformationType) % 3;
            if (infoType == 0)
            {
                emit spyReported(defendingKingdom.name, 1, defendingKingdom.gold, defendingKingdom.dragons);
            }
            else if (infoType == 1)
            {
                emit spyReported(defendingKingdom.name, 2, defendingKingdom.soldiers, defendingKingdom.banks);
            }
            else if (infoType == 2)
            {
                emit spyReported(defendingKingdom.name, 3, defendingKingdom.miningCamps, defendingKingdom.castles);
            }
            
            espionageInformationType++;
        }
        else
        {
            // Failure
            
            emit spyReported(defendingKingdom.name, 0, kingdom.spies, 0);
        }
    }

    function sabotage(uint targetPlayerIndex) public
             onlyIfGameStarted() onlyIfTurnsRemaining() onlyIfActions() onlyIfDragons() onlyIfOtherPlayerIndex(targetPlayerIndex)
    {
        Kingdom storage attackingKingdom = kingdoms[msg.sender];

        address targetPlayer = players[targetPlayerIndex];
        Kingdom storage defendingKingdom = kingdoms[targetPlayer];
        
        uint attackForce = attackingKingdom.dragons;
        uint defenceForce = defendingKingdom.dragons + defendingKingdom.castles;
        if (attackForce > defenceForce)
        {
            // Victory
            
            uint sabotagedFraction = ((attackForce * 3) / (defenceForce + 1)) + 2;
            uint sabotagedGold = defendingKingdom.gold / (sabotagedFraction * 3);
            uint sabotagedDragons = defendingKingdom.dragons / (sabotagedFraction * 4);
            uint sabotagedHovels = defendingKingdom.hovels / (sabotagedFraction * 5);
            uint sabotagedMiningCamps = defendingKingdom.miningCamps / sabotagedFraction;
            uint sabotagedBanks = defendingKingdom.banks / (sabotagedFraction * 5);
            defendingKingdom.gold -= sabotagedGold;
            defendingKingdom.dragons -= sabotagedDragons;
            defendingKingdom.hovels -= sabotagedHovels;
            defendingKingdom.miningCamps -= sabotagedMiningCamps;
            defendingKingdom.banks -= sabotagedBanks;
            
            uint dragonsKilled = sabotagedDragons * 3 + 2;
            if (dragonsKilled > attackingKingdom.dragons)
            {
                dragonsKilled = attackingKingdom.dragons;
            }
            attackingKingdom.dragons -= dragonsKilled;
            
            emit sabotaged(sabotagedGold, sabotagedDragons, sabotagedHovels, sabotagedMiningCamps, sabotagedBanks, dragonsKilled);
        }
        else
        {
            // Defeat
            
            uint dragonsKilled = attackingKingdom.dragons / 20 + 1;
            attackingKingdom.dragons -= dragonsKilled;
            
            if (defendingKingdom.dragons < dragonsKilled)
            {
                defendingKingdom.dragons = 0;
            }
            else
            {
                defendingKingdom.dragons -= dragonsKilled;
            }
            
            emit sabotaged(0, dragonsKilled, 0, 0, 0, dragonsKilled);
        }
        
        attackingKingdom.actions -= 1;
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"uint256","name":"joinTimeSeconds","type":"uint256"},{"internalType":"uint256","name":"gameTimeSeconds","type":"uint256"},{"internalType":"uint256","name":"turnTimeSeconds","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"goldExchanged","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"soldierDeaths","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"wizardDeaths","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"dragonDeaths","type":"uint256"}],"name":"attackCompleted","type":"event"},{"anonymous":false,"inputs":[],"name":"gameEnded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"message","type":"string"}],"name":"hostMessage","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"playerName","type":"string"}],"name":"newPlayerJoined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"sabotagedGold","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sabotagedDragons","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sabotagedHovels","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sabotagedMiningCamps","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sabotagedBanks","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"dragonsKilled","type":"uint256"}],"name":"sabotaged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"name","type":"string"},{"indexed":false,"internalType":"uint256","name":"detail","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"info","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"moreInfo","type":"uint256"}],"name":"spyReported","type":"event"},{"anonymous":false,"inputs":[],"name":"turnCompleted","type":"event"},{"constant":false,"inputs":[{"internalType":"uint256","name":"targetPlayerIndex","type":"uint256"},{"internalType":"uint256","name":"numberOfSoldiers","type":"uint256"}],"name":"attack","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"buildBanks","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"buildBarracks","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"buildCastles","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"buildHovels","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"buildMiningCamps","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"kingdomIndex","type":"uint256"},{"internalType":"string","name":"newName","type":"string"}],"name":"changeKingdomName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"targetPlayerIndex","type":"uint256"}],"name":"espionage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"gameNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"gameStats","outputs":[{"internalType":"uint256","name":"version","type":"uint256"},{"internalType":"uint256","name":"numberPlayers","type":"uint256"},{"internalType":"uint256","name":"totalGold","type":"uint256"},{"internalType":"uint256","name":"totalPrizePool","type":"uint256"},{"internalType":"uint256","name":"gameStartTimeSeconds","type":"uint256"},{"internalType":"uint256","name":"gameDurationSeconds","type":"uint256"},{"internalType":"uint256","name":"gameTurns","type":"uint256"},{"internalType":"uint256","name":"gameTurnTimeSeconds","type":"uint256"},{"internalType":"uint256","name":"gameCurrentTurn","type":"uint256"},{"internalType":"uint256","name":"gameLeaderIndex","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"string","name":"playerName","type":"string"}],"name":"joinGame","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"string","name":"s","type":"string"}],"name":"message","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"nextGameAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"playerIndex","type":"uint256"}],"name":"playerAtIndex","outputs":[{"internalType":"string","name":"playerName","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"playerStats","outputs":[{"internalType":"enum CryptoKingdoms.Race","name":"race","type":"uint8"},{"internalType":"string","name":"kingdomName","type":"string"},{"internalType":"uint256","name":"actions","type":"uint256"},{"internalType":"uint256","name":"gold","type":"uint256"},{"internalType":"uint256","name":"soldiers","type":"uint256"},{"internalType":"uint256","name":"spies","type":"uint256"},{"internalType":"uint256","name":"wizards","type":"uint256"},{"internalType":"uint256","name":"dragons","type":"uint256"},{"internalType":"uint256","name":"hovels","type":"uint256"},{"internalType":"uint256","name":"miningCamps","type":"uint256"},{"internalType":"uint256","name":"banks","type":"uint256"},{"internalType":"uint256","name":"barracks","type":"uint256"},{"internalType":"uint256","name":"castles","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"previousGameAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"recruitSoldiers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"recruitSpies","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"targetPlayerIndex","type":"uint256"}],"name":"sabotage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"gameAddress","type":"address"}],"name":"setNextGame","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"summonWizards","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"trainDragons","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"turn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"winner","outputs":[{"internalType":"enum CryptoKingdoms.Race","name":"race","type":"uint8"},{"internalType":"string","name":"name","type":"string"},{"internalType":"uint256","name":"actions","type":"uint256"},{"internalType":"uint256","name":"gold","type":"uint256"},{"internalType":"uint256","name":"soldiers","type":"uint256"},{"internalType":"uint256","name":"spies","type":"uint256"},{"internalType":"uint256","name":"wizards","type":"uint256"},{"internalType":"uint256","name":"dragons","type":"uint256"},{"internalType":"uint256","name":"hovels","type":"uint256"},{"internalType":"uint256","name":"miningCamps","type":"uint256"},{"internalType":"uint256","name":"banks","type":"uint256"},{"internalType":"uint256","name":"barracks","type":"uint256"},{"internalType":"uint256","name":"castles","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}]

6080604052619ab0601255622b8180601355622247006014553480156200002557600080fd5b5060405162003aaa38038062003aaa833981810160405260608110156200004b57600080fd5b8101908080519060200190929190805190602001909291908051906020019092919050505060008311156200008257826014819055505b60008211156200009457816013819055505b6000811115620000a657806012819055505b601454420160168190555060135460165401601781905550600160125460135481620000ce57fe5b040160158190555033601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050613980806200012a6000396000f3fe60806040526004361061014a5760003560e01c80637ec7775f116100b6578063d8d40cee1161006f578063d8d40cee14610792578063df37b1c9146107bd578063dfbf53ae14610871578063e1fa763814610963578063f4acef6f146109a8578063ff3004a4146109e35761014a565b80637ec7775f146105f35780638b2999031461062e57806391ada7551461064557806394d685ae1461069c578063b09be35f146106ed578063d68199dc146107285761014a565b80634877253d116101085780634877253d146104755780635365814a146104b05780636624dddc146104eb5780636823299b14610542578063798d70671461057d5780637bcb0798146105b85761014a565b8062c6265b1461014f57806305c766d11461018a5780630ee42686146102525780632c824f49146103445780632ca42a841461037f5780633d536a2e146103ba575b600080fd5b34801561015b57600080fd5b506101886004803603602081101561017257600080fd5b8101908080359060200190929190505050610ab5565b005b34801561019657600080fd5b50610250600480360360208110156101ad57600080fd5b81019080803590602001906401000000008111156101ca57600080fd5b8201836020820111156101dc57600080fd5b803590602001918460018302840111640100000000831117156101fe57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610c03565b005b34801561025e57600080fd5b50610267610cfc565b604051808e600181111561027757fe5b60ff168152602001806020018d81526020018c81526020018b81526020018a815260200189815260200188815260200187815260200186815260200185815260200184815260200183815260200182810382528e818151815260200191508051906020019080838360005b838110156102fd5780820151818401526020810190506102e2565b50505050905090810190601f16801561032a5780820380516001836020036101000a031916815260200191505b509e50505050505050505050505050505060405180910390f35b34801561035057600080fd5b5061037d6004803603602081101561036757600080fd5b8101908080359060200190929190505050610e66565b005b34801561038b57600080fd5b506103b8600480360360208110156103a257600080fd5b81019080803590602001909291905050506112d0565b005b610473600480360360208110156103d057600080fd5b81019080803590602001906401000000008111156103ed57600080fd5b8201836020820111156103ff57600080fd5b8035906020019184600183028401116401000000008311171561042157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061191d565b005b34801561048157600080fd5b506104ae6004803603602081101561049857600080fd5b8101908080359060200190929190505050611c75565b005b3480156104bc57600080fd5b506104e9600480360360208110156104d357600080fd5b8101908080359060200190929190505050611dc5565b005b3480156104f757600080fd5b50610500611f80565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561054e57600080fd5b5061057b6004803603602081101561056557600080fd5b8101908080359060200190929190505050611fa5565b005b34801561058957600080fd5b506105b6600480360360208110156105a057600080fd5b81019080803590602001909291905050506120f5565b005b3480156105c457600080fd5b506105f1600480360360208110156105db57600080fd5b8101908080359060200190929190505050612245565b005b3480156105ff57600080fd5b5061062c6004803603602081101561061657600080fd5b81019080803590602001909291905050506123ef565b005b34801561063a57600080fd5b5061064361253f565b005b34801561065157600080fd5b5061065a6127ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106a857600080fd5b506106eb600480360360208110156106bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612802565b005b3480156106f957600080fd5b506107266004803603602081101561071057600080fd5b810190808035906020019092919050505061289f565b005b34801561073457600080fd5b5061073d6129ed565b604051808b81526020018a81526020018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019a505050505050505050505060405180910390f35b34801561079e57600080fd5b506107a7612ae5565b6040518082815260200191505060405180910390f35b3480156107c957600080fd5b506107f6600480360360208110156107e057600080fd5b8101908080359060200190929190505050612aea565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561083657808201518184015260208101905061081b565b50505050905090810190601f1680156108635780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561087d57600080fd5b50610886612c24565b604051808e600181111561089657fe5b60ff168152602001806020018d81526020018c81526020018b81526020018a815260200189815260200188815260200187815260200186815260200185815260200184815260200183815260200182810382528e818151815260200191508051906020019080838360005b8381101561091c578082015181840152602081019050610901565b50505050905090810190601f1680156109495780820380516001836020036101000a031916815260200191505b509e50505050505050505050505050505060405180910390f35b34801561096f57600080fd5b506109a66004803603604081101561098657600080fd5b810190808035906020019092919080359060200190929190505050612d1d565b005b3480156109b457600080fd5b506109e1600480360360208110156109cb57600080fd5b8101908080359060200190929190505050613277565b005b3480156109ef57600080fd5b50610ab360048036036040811015610a0657600080fd5b810190808035906020019092919080359060200190640100000000811115610a2d57600080fd5b820183602082011115610a3f57600080fd5b80359060200191846001830284011164010000000083111715610a6157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061341f565b005b6016544211610ac357600080fd5b60155460195410610ad357600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816002015411610b2757600080fd5b606482026000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508181600301541015610b7f57600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050606485028160030160008282540392505081905550848160080160008282540192505081905550600181600201600082825403925050819055505050505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c5d57600080fd5b7f3f8b9dd5f995f6d234b4681d71a51adff70826abf89164d651e02f8981da0c16816040518080602001828103825283818151815260200191508051906020019080838360005b83811015610cbf578082015181840152602081019050610ca4565b50505050905090810190601f168015610cec5780820380516001836020036101000a031916815260200191505b509250505060405180910390a150565b60006060600080600080600080600080600080600080601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060000160009054906101000a900460ff1681600101826002015483600301548460040154856005015486600601548760070154886008015489600901548a600a01548b600b01548c600c01548b8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e355780601f10610e0a57610100808354040283529160200191610e35565b820191906000526020600020905b815481529060010190602001808311610e1857829003601f168201915b50505050509b509d509d509d509d509d509d509d509d509d509d509d509d509d5050909192939495969798999a9b9c565b6016544211610e7457600080fd5b60155460195410610e8457600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816002015411610ed857600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816007015411610f2c57600080fd5b826000600f8281548110610f3c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610fa257600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600f8781548110610ff457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600083600701549050600082600c01548360070154019050808211156111f7576000600260018301600385028161109757fe5b040190506000600382028560030154816110ad57fe5b0490506000600483028660070154816110c257fe5b0490506000600584028760080154816110d757fe5b0490506000848860090154816110e957fe5b04905060006005860289600a0154816110fe57fe5b0490508489600301600082825403925050819055508389600701600082825403925050819055508289600801600082825403925050819055508189600901600082825403925050819055508089600a016000828254039250508190555060006002600386020190508b6007015481111561117a578b6007015490505b808c600701600082825403925050819055507f183dc88ecbb18cefd621190b1e3c7eb452f7d686d5fef2bf93d8107cf481960386868686868660405180878152602001868152602001858152602001848152602001838152602001828152602001965050505050505060405180910390a1505050505050506112b1565b60006001601487600701548161120957fe5b04019050808660070160008282540392505081905550808460070154101561123a576000846007018190555061124d565b8084600701600082825403925050819055505b7f183dc88ecbb18cefd621190b1e3c7eb452f7d686d5fef2bf93d8107cf481960360008260008060008660405180878152602001868152602001858152602001848152602001838152602001828152602001965050505050505060405180910390a1505b6001856002016000828254039250508190555050505050505050505050565b60165442116112de57600080fd5b601554601954106112ee57600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600501541161134257600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600201541161139657600080fd5b60196000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905081816003015410156113ec57600080fd5b846000600f82815481106113fc57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561146257600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050601981600301600082825403925050819055506000600f89815481106114c757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060050154600284600501540211156118365760006003601b54601954018161155c57fe5b069050600081141561164a577f01714df97f181b5bd534e7d758150845d3e6a133c131afab5802078a13032fd18260010160018460030154856007015460405180806020018581526020018481526020018381526020018281038252868181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156116345780601f1061160957610100808354040283529160200191611634565b820191906000526020600020905b81548152906001019060200180831161161757829003601f168201915b50509550505050505060405180910390a161181e565b6001811415611735577f01714df97f181b5bd534e7d758150845d3e6a133c131afab5802078a13032fd1826001016002846004015485600a0154604051808060200185815260200184815260200183815260200182810382528681815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561171f5780601f106116f45761010080835404028352916020019161171f565b820191906000526020600020905b81548152906001019060200180831161170257829003601f168201915b50509550505050505060405180910390a161181d565b600281141561181c577f01714df97f181b5bd534e7d758150845d3e6a133c131afab5802078a13032fd1826001016003846009015485600c0154604051808060200185815260200184815260200183815260200182810382528681815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561180a5780601f106117df5761010080835404028352916020019161180a565b820191906000526020600020905b8154815290600101906020018083116117ed57829003601f168201915b50509550505050505060405180910390a15b5b5b601b6000815480929190600101919050555050611911565b7f01714df97f181b5bd534e7d758150845d3e6a133c131afab5802078a13032fd18160010160008560050154600060405180806020018581526020018481526020018381526020018281038252868181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156118ff5780601f106118d4576101008083540402835291602001916118ff565b820191906000526020600020905b8154815290600101906020018083116118e257829003601f168201915b50509550505050505060405180910390a15b50505050505050505050565b6000600181111561192a57fe5b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16600181111561198557fe5b1461198f57600080fd5b6015546019541061199f57600080fd5b664fefa17b72400034146119b257600080fd5b601554601954106119c257600080fd5b600a60073402816119cf57fe5b04600e60008282540192505081905550600a60033402816119ec57fe5b04601860008282540192505081905550604051806101a00160405280600180811115611a1457fe5b81526020018281526020016019548152602001600580601954020261052801815260200160198152602001600081526020016000815260200160008152602001600381526020016001815260200160008152602001600081526020016000815250601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690836001811115611ad857fe5b02179055506020820151816001019080519060200190611af992919061379f565b5060408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701556101008201518160080155610120820151816009015561014082015181600a015561016082015181600b015561018082015181600c0155905050600f3390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550507ffbf79d31c5b955c3dd109a83e15d2d05f35439a1bdedc7523ccc1a6b96004513816040518080602001828103825283818151815260200191508051906020019080838360005b83811015611c38578082015181840152602081019050611c1d565b50505050905090810190601f168015611c655780820380516001836020036101000a031916815260200191505b509250505060405180910390a150565b6016544211611c8357600080fd5b60155460195410611c9357600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816002015411611ce757600080fd5b610bb882026000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508181600301541015611d4057600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050610bb885028160030160008282540392505081905550848160070160008282540192505081905550600181600201600082825403925050819055505050505050565b6016544211611dd357600080fd5b60155460195410611de357600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816002015411611e3757600080fd5b60fa82026000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508181600301541015611e8f57600080fd5b836000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060038282600601548360050154010181611ee957fe5b0481600801541015611efa57600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060fa870281600301600082825403925050819055508681600601600082825401925050819055506001816002016000828254039250508190555050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6016544211611fb357600080fd5b60155460195410611fc357600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600201541161201757600080fd5b6103e882026000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050818160030154101561207057600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506103e885028160030160008282540392505081905550848160090160008282540192505081905550600181600201600082825403925050819055505050505050565b601654421161210357600080fd5b6015546019541061211357600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600201541161216757600080fd5b61012c82026000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905081816003015410156121c057600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905061012c850281600301600082825403925050819055508481600b0160008282540192505081905550600181600201600082825403925050819055505050505050565b601654421161225357600080fd5b6015546019541061226357600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160020154116122b757600080fd5b6105dc82026000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050818160030154101561231057600080fd5b836000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600f8282600a015401111561236857600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506105dc870281600301600082825403925050819055508681600a01600082825401925050819055506001816002016000828254039250508190555050505050505050565b60165442116123fd57600080fd5b6015546019541061240d57600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600201541161246157600080fd5b613a9882026000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905081816003015410156124ba57600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050613a98850281600301600082825403925050819055508481600c0160008282540192505081905550600181600201600082825403925050819055505050505050565b601654421161254d57600080fd5b6017544210156125925760004290506000600160125483601754038161256f57fe5b04019050600081601554039050806019541061258a57600080fd5b5050506125a3565b601554601954106125a257600080fd5b5b60008090506017544210156125e057600060016012544260175403816125c557fe5b040190506000816015540390506019548103925050506125ea565b6019546015540390505b6000601a81905550600080905060008090505b600f80549050811015612794576000600f828154811061261957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508481600201600082825401925050819055508460328260030154816126aa57fe5b0482600a01540260148360060154026096846009015402600585600801540201010102816003016000828254019250508190555084603282600c015402601983600b01540201028160040160008282540192505081905550600060046015548161271057fe5b0461012c83600b0154026105dc84600a0154026103e88560090154026064866008015402610bb887600701540260fa8860060154026003896004015402010101010101026064601554026064601954028161276757fe5b04836003015402019050848111156127845780945083601a819055505b50505080806001019150506125fd565b508160196000828254019250508190555060155460195414156127ba576127b9613517565b5b7fadff5715e654f8f55e1d195ef0679d6ef9466ce9d0e83ef65c8c18d4e4c9fd1160405160405180910390a15050565b732c8dc01fb73c7079cc8a9e7a339c172bbf2d3ebc81565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461285c57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60165442116128ad57600080fd5b601554601954106128bd57600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600201541161291157600080fd5b600382026000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050818160030154101561296957600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600385028160030160008282540392505081905550848160040160008282540192505081905550600181600201600082825403925050819055505050505050565b60008060008060008060008060008060008090505b600f80549050811015612aa6576000600f8281548110612a1e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600301548b019a5050508080600101915050612a02565b506008600f8054905089600e54601654601354601554601254601954601a54995099509950995099509950995099509950995090919293949596979899565b600881565b606081600f805490508110612afe57600080fd5b6000600f8481548110612b0d57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612c155780601f10612bea57610100808354040283529160200191612c15565b820191906000526020600020905b815481529060010190602001808311612bf857829003601f168201915b50505050509350505050919050565b60018060000160009054906101000a900460ff1690806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612cd15780601f10612ca657610100808354040283529160200191612cd1565b820191906000526020600020905b815481529060010190602001808311612cb457829003601f168201915b50505050509080600201549080600301549080600401549080600501549080600601549080600701549080600801549080600901549080600a01549080600b01549080600c015490508d565b6016544211612d2b57600080fd5b60155460195410612d3b57600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816002015411612d8f57600080fd5b826000600f8281548110612d9f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415612e0557600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508481600401541015612e5957600080fd5b6000600f8781548110612e6857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000809050600060076126194281612eec57fe5b0481612ef457fe5b06600242604051602001808281526020019150506040516020818303038152906040528051906020012060001c901b901c9050600060016101f48760070154026064886006015402600589600501540260018e02010101019050600a8281612f5857fe5b066064018102905060648181612f6a57fe5b049050600060016103e886600c015402600587600b0154026101f4886007015402606489600601540260058a600501540260018b600401540201010101010190506000809050600080905060008090508385111561308357621e84808502620f4240896003015486020281612fdb57fe5b049650622dc6c08502620f42408f86020281612ff357fe5b049250868860030154101561300a57876003015496505b868860030160008282540392505081905550623d09008502620f424089600401548602028161303557fe5b048860040160008282540392505081905550600360195402868161305557fe5b0687019650868a60030160008282540192505081905550828a600401600082825403925050819055506130d7565b620f424084026203d09089600401548702028161309c57fe5b04886004016000828254039250508190555060008e11156130d6578d86816130c057fe5b069250828a600401600082825403925050819055505b5b60008711806130e65750600083115b15613204576101f48a600701540260648b600601540260058c6005015402010160018f02101561314e5760046005878161311c57fe5b06018a600601548161312a57fe5b049150600380878161313857fe5b06018a600701548161314657fe5b049050613188565b600680878161315957fe5b06018a600601548161316757fe5b04915060076009878161317657fe5b06018a600701548161318457fe5b0490505b818a60060160008282540392505081905550808a600701600082825403925050819055506006600787816131b857fe5b06018860060154816131c657fe5b04886006016000828254039250508190555060098087816131e357fe5b06018860070154816131f157fe5b0488600701600082825403925050819055505b60018a600201600082825403925050819055507f264c93b00a343f1c45bc5443ba8ebf37823f05c965dd9a15df92fdeec6b0f2e5878484846040518085815260200184815260200183815260200182815260200194505050505060405180910390a1505050505050505050505050505050565b601654421161328557600080fd5b6015546019541061329557600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160020154116132e957600080fd5b606482026000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050818160030154101561334157600080fd5b836000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506003828260060154836005015401018161339b57fe5b04816008015410156133ac57600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060648702816003016000828254039250508190555086816005016000828254019250508190555050505050505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461347957600080fd5b6000600f838154811061348857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508281600101908051906020019061351092919061381f565b5050505050565b6000809050600080600090505b600f805490508110156135d6576000600f828154811061354057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905084816003015411156135c757806003015494508193505b50508080600101915050613524565b50601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060016000820160009054906101000a900460ff168160000160006101000a81548160ff0219169083600181111561364957fe5b02179055506001820181600101908054600181600116156101000203166002900461367592919061389f565b506002820154816002015560038201548160030155600482015481600401556005820154816005015560068201548160060155600782015481600701556008820154816008015560098201548160090155600a82015481600a0155600b82015481600b0155600c82015481600c01559050508073ffffffffffffffffffffffffffffffffffffffff166108fc600e549081150290604051600060405180830381858888f1935050505015801561372f573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6018549081150290604051600060405180830381858888f1935050505015801561379a573d6000803e3d6000fd5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106137e057805160ff191683800117855561380e565b8280016001018555821561380e579182015b8281111561380d5782518255916020019190600101906137f2565b5b50905061381b9190613926565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061386057805160ff191683800117855561388e565b8280016001018555821561388e579182015b8281111561388d578251825591602001919060010190613872565b5b50905061389b9190613926565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106138d85780548555613915565b8280016001018555821561391557600052602060002091601f016020900482015b828111156139145782548255916001019190600101906138f9565b5b5090506139229190613926565b5090565b61394891905b8082111561394457600081600090555060010161392c565b5090565b9056fea265627a7a72315820983f5d101a7e6e279d4cf4e6ff0db71c2e5b33dfe3259fcfbe82cb1f98a719be64736f6c63430005100032000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061014a5760003560e01c80637ec7775f116100b6578063d8d40cee1161006f578063d8d40cee14610792578063df37b1c9146107bd578063dfbf53ae14610871578063e1fa763814610963578063f4acef6f146109a8578063ff3004a4146109e35761014a565b80637ec7775f146105f35780638b2999031461062e57806391ada7551461064557806394d685ae1461069c578063b09be35f146106ed578063d68199dc146107285761014a565b80634877253d116101085780634877253d146104755780635365814a146104b05780636624dddc146104eb5780636823299b14610542578063798d70671461057d5780637bcb0798146105b85761014a565b8062c6265b1461014f57806305c766d11461018a5780630ee42686146102525780632c824f49146103445780632ca42a841461037f5780633d536a2e146103ba575b600080fd5b34801561015b57600080fd5b506101886004803603602081101561017257600080fd5b8101908080359060200190929190505050610ab5565b005b34801561019657600080fd5b50610250600480360360208110156101ad57600080fd5b81019080803590602001906401000000008111156101ca57600080fd5b8201836020820111156101dc57600080fd5b803590602001918460018302840111640100000000831117156101fe57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610c03565b005b34801561025e57600080fd5b50610267610cfc565b604051808e600181111561027757fe5b60ff168152602001806020018d81526020018c81526020018b81526020018a815260200189815260200188815260200187815260200186815260200185815260200184815260200183815260200182810382528e818151815260200191508051906020019080838360005b838110156102fd5780820151818401526020810190506102e2565b50505050905090810190601f16801561032a5780820380516001836020036101000a031916815260200191505b509e50505050505050505050505050505060405180910390f35b34801561035057600080fd5b5061037d6004803603602081101561036757600080fd5b8101908080359060200190929190505050610e66565b005b34801561038b57600080fd5b506103b8600480360360208110156103a257600080fd5b81019080803590602001909291905050506112d0565b005b610473600480360360208110156103d057600080fd5b81019080803590602001906401000000008111156103ed57600080fd5b8201836020820111156103ff57600080fd5b8035906020019184600183028401116401000000008311171561042157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061191d565b005b34801561048157600080fd5b506104ae6004803603602081101561049857600080fd5b8101908080359060200190929190505050611c75565b005b3480156104bc57600080fd5b506104e9600480360360208110156104d357600080fd5b8101908080359060200190929190505050611dc5565b005b3480156104f757600080fd5b50610500611f80565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561054e57600080fd5b5061057b6004803603602081101561056557600080fd5b8101908080359060200190929190505050611fa5565b005b34801561058957600080fd5b506105b6600480360360208110156105a057600080fd5b81019080803590602001909291905050506120f5565b005b3480156105c457600080fd5b506105f1600480360360208110156105db57600080fd5b8101908080359060200190929190505050612245565b005b3480156105ff57600080fd5b5061062c6004803603602081101561061657600080fd5b81019080803590602001909291905050506123ef565b005b34801561063a57600080fd5b5061064361253f565b005b34801561065157600080fd5b5061065a6127ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106a857600080fd5b506106eb600480360360208110156106bf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612802565b005b3480156106f957600080fd5b506107266004803603602081101561071057600080fd5b810190808035906020019092919050505061289f565b005b34801561073457600080fd5b5061073d6129ed565b604051808b81526020018a81526020018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019a505050505050505050505060405180910390f35b34801561079e57600080fd5b506107a7612ae5565b6040518082815260200191505060405180910390f35b3480156107c957600080fd5b506107f6600480360360208110156107e057600080fd5b8101908080359060200190929190505050612aea565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561083657808201518184015260208101905061081b565b50505050905090810190601f1680156108635780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561087d57600080fd5b50610886612c24565b604051808e600181111561089657fe5b60ff168152602001806020018d81526020018c81526020018b81526020018a815260200189815260200188815260200187815260200186815260200185815260200184815260200183815260200182810382528e818151815260200191508051906020019080838360005b8381101561091c578082015181840152602081019050610901565b50505050905090810190601f1680156109495780820380516001836020036101000a031916815260200191505b509e50505050505050505050505050505060405180910390f35b34801561096f57600080fd5b506109a66004803603604081101561098657600080fd5b810190808035906020019092919080359060200190929190505050612d1d565b005b3480156109b457600080fd5b506109e1600480360360208110156109cb57600080fd5b8101908080359060200190929190505050613277565b005b3480156109ef57600080fd5b50610ab360048036036040811015610a0657600080fd5b810190808035906020019092919080359060200190640100000000811115610a2d57600080fd5b820183602082011115610a3f57600080fd5b80359060200191846001830284011164010000000083111715610a6157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061341f565b005b6016544211610ac357600080fd5b60155460195410610ad357600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816002015411610b2757600080fd5b606482026000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508181600301541015610b7f57600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050606485028160030160008282540392505081905550848160080160008282540192505081905550600181600201600082825403925050819055505050505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c5d57600080fd5b7f3f8b9dd5f995f6d234b4681d71a51adff70826abf89164d651e02f8981da0c16816040518080602001828103825283818151815260200191508051906020019080838360005b83811015610cbf578082015181840152602081019050610ca4565b50505050905090810190601f168015610cec5780820380516001836020036101000a031916815260200191505b509250505060405180910390a150565b60006060600080600080600080600080600080600080601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060000160009054906101000a900460ff1681600101826002015483600301548460040154856005015486600601548760070154886008015489600901548a600a01548b600b01548c600c01548b8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e355780601f10610e0a57610100808354040283529160200191610e35565b820191906000526020600020905b815481529060010190602001808311610e1857829003601f168201915b50505050509b509d509d509d509d509d509d509d509d509d509d509d509d509d5050909192939495969798999a9b9c565b6016544211610e7457600080fd5b60155460195410610e8457600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816002015411610ed857600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816007015411610f2c57600080fd5b826000600f8281548110610f3c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610fa257600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000600f8781548110610ff457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600083600701549050600082600c01548360070154019050808211156111f7576000600260018301600385028161109757fe5b040190506000600382028560030154816110ad57fe5b0490506000600483028660070154816110c257fe5b0490506000600584028760080154816110d757fe5b0490506000848860090154816110e957fe5b04905060006005860289600a0154816110fe57fe5b0490508489600301600082825403925050819055508389600701600082825403925050819055508289600801600082825403925050819055508189600901600082825403925050819055508089600a016000828254039250508190555060006002600386020190508b6007015481111561117a578b6007015490505b808c600701600082825403925050819055507f183dc88ecbb18cefd621190b1e3c7eb452f7d686d5fef2bf93d8107cf481960386868686868660405180878152602001868152602001858152602001848152602001838152602001828152602001965050505050505060405180910390a1505050505050506112b1565b60006001601487600701548161120957fe5b04019050808660070160008282540392505081905550808460070154101561123a576000846007018190555061124d565b8084600701600082825403925050819055505b7f183dc88ecbb18cefd621190b1e3c7eb452f7d686d5fef2bf93d8107cf481960360008260008060008660405180878152602001868152602001858152602001848152602001838152602001828152602001965050505050505060405180910390a1505b6001856002016000828254039250508190555050505050505050505050565b60165442116112de57600080fd5b601554601954106112ee57600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600501541161134257600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600201541161139657600080fd5b60196000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905081816003015410156113ec57600080fd5b846000600f82815481106113fc57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561146257600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050601981600301600082825403925050819055506000600f89815481106114c757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060050154600284600501540211156118365760006003601b54601954018161155c57fe5b069050600081141561164a577f01714df97f181b5bd534e7d758150845d3e6a133c131afab5802078a13032fd18260010160018460030154856007015460405180806020018581526020018481526020018381526020018281038252868181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156116345780601f1061160957610100808354040283529160200191611634565b820191906000526020600020905b81548152906001019060200180831161161757829003601f168201915b50509550505050505060405180910390a161181e565b6001811415611735577f01714df97f181b5bd534e7d758150845d3e6a133c131afab5802078a13032fd1826001016002846004015485600a0154604051808060200185815260200184815260200183815260200182810382528681815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561171f5780601f106116f45761010080835404028352916020019161171f565b820191906000526020600020905b81548152906001019060200180831161170257829003601f168201915b50509550505050505060405180910390a161181d565b600281141561181c577f01714df97f181b5bd534e7d758150845d3e6a133c131afab5802078a13032fd1826001016003846009015485600c0154604051808060200185815260200184815260200183815260200182810382528681815460018160011615610100020316600290048152602001915080546001816001161561010002031660029004801561180a5780601f106117df5761010080835404028352916020019161180a565b820191906000526020600020905b8154815290600101906020018083116117ed57829003601f168201915b50509550505050505060405180910390a15b5b5b601b6000815480929190600101919050555050611911565b7f01714df97f181b5bd534e7d758150845d3e6a133c131afab5802078a13032fd18160010160008560050154600060405180806020018581526020018481526020018381526020018281038252868181546001816001161561010002031660029004815260200191508054600181600116156101000203166002900480156118ff5780601f106118d4576101008083540402835291602001916118ff565b820191906000526020600020905b8154815290600101906020018083116118e257829003601f168201915b50509550505050505060405180910390a15b50505050505050505050565b6000600181111561192a57fe5b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900460ff16600181111561198557fe5b1461198f57600080fd5b6015546019541061199f57600080fd5b664fefa17b72400034146119b257600080fd5b601554601954106119c257600080fd5b600a60073402816119cf57fe5b04600e60008282540192505081905550600a60033402816119ec57fe5b04601860008282540192505081905550604051806101a00160405280600180811115611a1457fe5b81526020018281526020016019548152602001600580601954020261052801815260200160198152602001600081526020016000815260200160008152602001600381526020016001815260200160008152602001600081526020016000815250601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548160ff02191690836001811115611ad857fe5b02179055506020820151816001019080519060200190611af992919061379f565b5060408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e082015181600701556101008201518160080155610120820151816009015561014082015181600a015561016082015181600b015561018082015181600c0155905050600f3390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550507ffbf79d31c5b955c3dd109a83e15d2d05f35439a1bdedc7523ccc1a6b96004513816040518080602001828103825283818151815260200191508051906020019080838360005b83811015611c38578082015181840152602081019050611c1d565b50505050905090810190601f168015611c655780820380516001836020036101000a031916815260200191505b509250505060405180910390a150565b6016544211611c8357600080fd5b60155460195410611c9357600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816002015411611ce757600080fd5b610bb882026000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508181600301541015611d4057600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050610bb885028160030160008282540392505081905550848160070160008282540192505081905550600181600201600082825403925050819055505050505050565b6016544211611dd357600080fd5b60155460195410611de357600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816002015411611e3757600080fd5b60fa82026000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508181600301541015611e8f57600080fd5b836000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060038282600601548360050154010181611ee957fe5b0481600801541015611efa57600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060fa870281600301600082825403925050819055508681600601600082825401925050819055506001816002016000828254039250508190555050505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6016544211611fb357600080fd5b60155460195410611fc357600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600201541161201757600080fd5b6103e882026000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050818160030154101561207057600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506103e885028160030160008282540392505081905550848160090160008282540192505081905550600181600201600082825403925050819055505050505050565b601654421161210357600080fd5b6015546019541061211357600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600201541161216757600080fd5b61012c82026000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905081816003015410156121c057600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905061012c850281600301600082825403925050819055508481600b0160008282540192505081905550600181600201600082825403925050819055505050505050565b601654421161225357600080fd5b6015546019541061226357600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160020154116122b757600080fd5b6105dc82026000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050818160030154101561231057600080fd5b836000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600f8282600a015401111561236857600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506105dc870281600301600082825403925050819055508681600a01600082825401925050819055506001816002016000828254039250508190555050505050505050565b60165442116123fd57600080fd5b6015546019541061240d57600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600201541161246157600080fd5b613a9882026000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905081816003015410156124ba57600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050613a98850281600301600082825403925050819055508481600c0160008282540192505081905550600181600201600082825403925050819055505050505050565b601654421161254d57600080fd5b6017544210156125925760004290506000600160125483601754038161256f57fe5b04019050600081601554039050806019541061258a57600080fd5b5050506125a3565b601554601954106125a257600080fd5b5b60008090506017544210156125e057600060016012544260175403816125c557fe5b040190506000816015540390506019548103925050506125ea565b6019546015540390505b6000601a81905550600080905060008090505b600f80549050811015612794576000600f828154811061261957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508481600201600082825401925050819055508460328260030154816126aa57fe5b0482600a01540260148360060154026096846009015402600585600801540201010102816003016000828254019250508190555084603282600c015402601983600b01540201028160040160008282540192505081905550600060046015548161271057fe5b0461012c83600b0154026105dc84600a0154026103e88560090154026064866008015402610bb887600701540260fa8860060154026003896004015402010101010101026064601554026064601954028161276757fe5b04836003015402019050848111156127845780945083601a819055505b50505080806001019150506125fd565b508160196000828254019250508190555060155460195414156127ba576127b9613517565b5b7fadff5715e654f8f55e1d195ef0679d6ef9466ce9d0e83ef65c8c18d4e4c9fd1160405160405180910390a15050565b732c8dc01fb73c7079cc8a9e7a339c172bbf2d3ebc81565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461285c57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60165442116128ad57600080fd5b601554601954106128bd57600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600081600201541161291157600080fd5b600382026000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050818160030154101561296957600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050600385028160030160008282540392505081905550848160040160008282540192505081905550600181600201600082825403925050819055505050505050565b60008060008060008060008060008060008090505b600f80549050811015612aa6576000600f8281548110612a1e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905080600301548b019a5050508080600101915050612a02565b506008600f8054905089600e54601654601354601554601254601954601a54995099509950995099509950995099509950995090919293949596979899565b600881565b606081600f805490508110612afe57600080fd5b6000600f8481548110612b0d57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612c155780601f10612bea57610100808354040283529160200191612c15565b820191906000526020600020905b815481529060010190602001808311612bf857829003601f168201915b50505050509350505050919050565b60018060000160009054906101000a900460ff1690806001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612cd15780601f10612ca657610100808354040283529160200191612cd1565b820191906000526020600020905b815481529060010190602001808311612cb457829003601f168201915b50505050509080600201549080600301549080600401549080600501549080600601549080600701549080600801549080600901549080600a01549080600b01549080600c015490508d565b6016544211612d2b57600080fd5b60155460195410612d3b57600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000816002015411612d8f57600080fd5b826000600f8281548110612d9f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415612e0557600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508481600401541015612e5957600080fd5b6000600f8781548110612e6857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506000809050600060076126194281612eec57fe5b0481612ef457fe5b06600242604051602001808281526020019150506040516020818303038152906040528051906020012060001c901b901c9050600060016101f48760070154026064886006015402600589600501540260018e02010101019050600a8281612f5857fe5b066064018102905060648181612f6a57fe5b049050600060016103e886600c015402600587600b0154026101f4886007015402606489600601540260058a600501540260018b600401540201010101010190506000809050600080905060008090508385111561308357621e84808502620f4240896003015486020281612fdb57fe5b049650622dc6c08502620f42408f86020281612ff357fe5b049250868860030154101561300a57876003015496505b868860030160008282540392505081905550623d09008502620f424089600401548602028161303557fe5b048860040160008282540392505081905550600360195402868161305557fe5b0687019650868a60030160008282540192505081905550828a600401600082825403925050819055506130d7565b620f424084026203d09089600401548702028161309c57fe5b04886004016000828254039250508190555060008e11156130d6578d86816130c057fe5b069250828a600401600082825403925050819055505b5b60008711806130e65750600083115b15613204576101f48a600701540260648b600601540260058c6005015402010160018f02101561314e5760046005878161311c57fe5b06018a600601548161312a57fe5b049150600380878161313857fe5b06018a600701548161314657fe5b049050613188565b600680878161315957fe5b06018a600601548161316757fe5b04915060076009878161317657fe5b06018a600701548161318457fe5b0490505b818a60060160008282540392505081905550808a600701600082825403925050819055506006600787816131b857fe5b06018860060154816131c657fe5b04886006016000828254039250508190555060098087816131e357fe5b06018860070154816131f157fe5b0488600701600082825403925050819055505b60018a600201600082825403925050819055507f264c93b00a343f1c45bc5443ba8ebf37823f05c965dd9a15df92fdeec6b0f2e5878484846040518085815260200184815260200183815260200182815260200194505050505060405180910390a1505050505050505050505050505050565b601654421161328557600080fd5b6015546019541061329557600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060008160020154116132e957600080fd5b606482026000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050818160030154101561334157600080fd5b836000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090506003828260060154836005015401018161339b57fe5b04816008015410156133ac57600080fd5b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060648702816003016000828254039250508190555086816005016000828254019250508190555050505050505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461347957600080fd5b6000600f838154811061348857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508281600101908051906020019061351092919061381f565b5050505050565b6000809050600080600090505b600f805490508110156135d6576000600f828154811061354057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905084816003015411156135c757806003015494508193505b50508080600101915050613524565b50601160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060016000820160009054906101000a900460ff168160000160006101000a81548160ff0219169083600181111561364957fe5b02179055506001820181600101908054600181600116156101000203166002900461367592919061389f565b506002820154816002015560038201548160030155600482015481600401556005820154816005015560068201548160060155600782015481600701556008820154816008015560098201548160090155600a82015481600a0155600b82015481600b0155600c82015481600c01559050508073ffffffffffffffffffffffffffffffffffffffff166108fc600e549081150290604051600060405180830381858888f1935050505015801561372f573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6018549081150290604051600060405180830381858888f1935050505015801561379a573d6000803e3d6000fd5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106137e057805160ff191683800117855561380e565b8280016001018555821561380e579182015b8281111561380d5782518255916020019190600101906137f2565b5b50905061381b9190613926565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061386057805160ff191683800117855561388e565b8280016001018555821561388e579182015b8281111561388d578251825591602001919060010190613872565b5b50905061389b9190613926565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106138d85780548555613915565b8280016001018555821561391557600052602060002091601f016020900482015b828111156139145782548255916001019190600101906138f9565b5b5090506139229190613926565b5090565b61394891905b8082111561394457600081600090555060010161392c565b5090565b9056fea265627a7a72315820983f5d101a7e6e279d4cf4e6ff0db71c2e5b33dfe3259fcfbe82cb1f98a719be64736f6c63430005100032

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

000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : joinTimeSeconds (uint256): 0
Arg [1] : gameTimeSeconds (uint256): 0
Arg [2] : turnTimeSeconds (uint256): 0

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

27:24130:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14253:326;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14253:326:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14253:326:0;;;;;;;;;;;;;;;;;:::i;:::-;;9014:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9014:95:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9014:95:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;9014:95:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9014:95:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;9014:95:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;9014:95:0;;;;;;;;;;;;;;;:::i;:::-;;11887:629;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11887:629:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;11887:629:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21693:2461;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21693:2461:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21693:2461:0;;;;;;;;;;;;;;;;;:::i;:::-;;20277:1408;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20277:1408:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20277:1408:0;;;;;;;;;;;;;;;;;:::i;:::-;;11114:765;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11114:765:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;11114:765:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;11114:765:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;11114:765:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;11114:765:0;;;;;;;;;;;;;;;:::i;:::-;;13915:330;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13915:330:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13915:330:0;;;;;;;;;;;;;;;;;:::i;:::-;;13551:352;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13551:352:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13551:352:0;;;;;;;;;;;;;;;;;:::i;:::-;;208:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;208:30:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14931:346;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14931:346:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14931:346:0;;;;;;;;;;;;;;;;;:::i;:::-;;14587:336;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14587:336:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14587:336:0;;;;;;;;;;;;;;;;;:::i;:::-;;15289:351;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15289:351:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15289:351:0;;;;;;;;;;;;;;;;;:::i;:::-;;15648:330;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15648:330:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15648:330:0;;;;;;;;;;;;;;;;;:::i;:::-;;5670:2188;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5670:2188:0;;;:::i;:::-;;107:88;;8:9:-1;5:2;;;30:1;27;20:12;5:2;107:88:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8546:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8546:113:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8546:113:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;12883:336;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12883:336:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12883:336:0;;;;;;;;;;;;;;;;;:::i;:::-;;3590:1189;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3590:1189:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;59:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;59:35:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12528:310;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12528:310:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12528:310:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;12528:310:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;680:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;680:21:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;680:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15986:4283;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15986:4283:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15986:4283:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13227:312;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13227:312:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13227:312:0;;;;;;;;;;;;;;;;;:::i;:::-;;8745:257;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8745:257:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8745:257:0;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;8745:257:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8745:257:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;8745:257:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;8745:257:0;;;;;;;;;;;;;;;:::i;:::-;;14253:326;5001:13;;4983:15;:31;4975:40;;;;;;9512:14;;9492:17;;:34;9484:43;;;;;;9930:23;9956:8;:20;9965:10;9956:20;;;;;;;;;;;;;;;9930:46;;10013:1;9995:7;:15;;;:19;9987:28;;;;;;1115:3;14378:6;:18;10098:23;10124:8;:20;10133:10;10124:20;;;;;;;;;;;;;;;10098:46;;10179:8;10163:7;:12;;;:24;;10155:33;;;;;;14414:23;14440:8;:20;14449:10;14440:20;;;;;;;;;;;;;;;14414:46;;1115:3;14487:6;:18;14471:7;:12;;;:34;;;;;;;;;;;14534:6;14516:7;:14;;;:24;;;;;;;;;;;14570:1;14551:7;:15;;;:20;;;;;;;;;;;10199:1;10026;;9538;14253:326;:::o;9014:95::-;4893:4;;;;;;;;;;;4879:18;;:10;:18;;;4871:27;;;;;;9087:14;9099:1;9087:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;9087::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9014:95;:::o;11887:629::-;11945:9;11956:25;11983:12;11997:9;12031:13;12046:10;12058:12;12072;12109:11;12122:16;12140:10;12152:13;12167:12;12197:23;12223:8;:20;12232:10;12223:20;;;;;;;;;;;;;;;12197:46;;12262:7;:12;;;;;;;;;;;;12276:7;:12;;12290:7;:15;;;12307:7;:12;;;12338:7;:16;;;12356:7;:13;;;12371:7;:15;;;12388:7;:15;;;12422:7;:14;;;12438:7;:19;;;12459:7;:13;;;12474:7;:16;;;12492:7;:15;;;12254:254;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11887:629;;;;;;;;;;;;;:::o;21693:2461::-;5001:13;;4983:15;:31;4975:40;;;;;;9512:14;;9492:17;;:34;9484:43;;;;;;9930:23;9956:8;:20;9965:10;9956:20;;;;;;;;;;;;;;;9930:46;;10013:1;9995:7;:15;;;:19;9987:28;;;;;;10997:23;11023:8;:20;11032:10;11023:20;;;;;;;;;;;;;;;10997:46;;11080:1;11062:7;:15;;;:19;11054:28;;;;;;21854:17;9765:19;9787:7;9795:16;9787:25;;;;;;;;;;;;;;;;;;;;;;;;;9765:47;;9845:11;9831:25;;:10;:25;;;;9823:34;;;;;;21889:32;21924:8;:20;21933:10;21924:20;;;;;;;;;;;;;;;21889:55;;21957:20;21980:7;21988:17;21980:26;;;;;;;;;;;;;;;;;;;;;;;;;21957:49;;22017:32;22052:8;:22;22061:12;22052:22;;;;;;;;;;;;;;;22017:57;;22095:16;22114;:24;;;22095:43;;22149:17;22196:16;:24;;;22169:16;:24;;;:51;22149:71;;22249:12;22235:11;:26;22231:1866;;;22325:22;22393:1;22387;22372:12;:16;22366:1;22352:11;:15;22351:38;;;;;;22350:44;22325:69;;22409:18;22475:1;22455:17;:21;22430:16;:21;;;:47;;;;;;22409:68;;22492:21;22564:1;22544:17;:21;22516:16;:24;;;:50;;;;;;22492:74;;22581:20;22651:1;22631:17;:21;22604:16;:23;;;:49;;;;;;22581:72;;22668:25;22727:17;22696:16;:28;;;:48;;;;;;22668:76;;22759:19;22827:1;22807:17;:21;22781:16;:22;;;:48;;;;;;22759:70;;22869:13;22844:16;:21;;;:38;;;;;;;;;;;22925:16;22897;:24;;;:44;;;;;;;;;;;22983:15;22956:16;:23;;;:42;;;;;;;;;;;23045:20;23013:16;:28;;;:52;;;;;;;;;;;23106:14;23080:16;:22;;;:40;;;;;;;;;;;23149:18;23193:1;23189;23170:16;:20;:24;23149:45;;23229:16;:24;;;23213:13;:40;23209:134;;;23303:16;:24;;;23287:40;;23209:134;23385:13;23357:16;:24;;;:41;;;;;;;;;;;23432:112;23442:13;23457:16;23475:15;23492:20;23514:14;23530:13;23432:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22231:1866;;;;;;;;;;23632:18;23685:1;23680:2;23653:16;:24;;;:29;;;;;;:33;23632:54;;23729:13;23701:16;:24;;;:41;;;;;;;;;;;23802:13;23775:16;:24;;;:40;23771:230;;;23876:1;23849:16;:24;;:28;;;;23771:230;;;23972:13;23944:16;:24;;;:41;;;;;;;;;;;23771:230;24034:51;24044:1;24047:13;24062:1;24065;24068;24071:13;24034:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22231:1866;;24145:1;24117:16;:24;;;:29;;;;;;;;;;;9868:1;;;;;11093;;10026;9538;21693:2461;:::o;20277:1408::-;5001:13;;4983:15;:31;4975:40;;;;;;9512:14;;9492:17;;:34;9484:43;;;;;;10672:23;10698:8;:20;10707:10;10698:20;;;;;;;;;;;;;;;10672:46;;10753:1;10737:7;:13;;;:17;10729:26;;;;;;9930:23;9956:8;:20;9965:10;9956:20;;;;;;;;;;;;;;;9930:46;;10013:1;9995:7;:15;;;:19;9987:28;;;;;;1935:2;10098:23;10124:8;:20;10133:10;10124:20;;;;;;;;;;;;;;;10098:46;;10179:8;10163:7;:12;;;:24;;10155:33;;;;;;20463:17;9765:19;9787:7;9795:16;9787:25;;;;;;;;;;;;;;;;;;;;;;;;;9765:47;;9845:11;9831:25;;:10;:25;;;;9823:34;;;;;;20498:23;20524:8;:20;20533:10;20524:20;;;;;;;;;;;;;;;20498:46;;1935:2;20555:7;:12;;;:29;;;;;;;;;;;20605:20;20628:7;20636:17;20628:26;;;;;;;;;;;;;;;;;;;;;;;;;20605:49;;20673:32;20708:8;:22;20717:12;20708:22;;;;;;;;;;;;;;;20673:57;;20775:16;:22;;;20771:1;20755:7;:13;;;:17;:42;20751:927;;;20861:13;20926:1;20898:24;;20878:17;;:44;20877:50;;;;;;20861:66;;20958:1;20946:8;:13;20942:521;;;20998:86;21010:16;:21;;21033:1;21036:16;:21;;;21059:16;:24;;;20998:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20942:521;;;21135:1;21123:8;:13;21119:344;;;21175:88;21187:16;:21;;21210:1;21213:16;:25;;;21240:16;:22;;;21175:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21119:344;;;21314:1;21302:8;:13;21298:165;;;21354:93;21366:16;:21;;21389:1;21392:16;:28;;;21422:16;:24;;;21354:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21298:165;21119:344;20942:521;21491:24;;:26;;;;;;;;;;;;;20751:927;;;;21611:55;21623:16;:21;;21646:1;21649:7;:13;;;21664:1;21611:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20751:927;9868:1;;;10199;;10026;;10766;9538;20277:1408;:::o;11114:765::-;9295:9;9266:38;;;;;;;;:8;:20;9275:10;9266:20;;;;;;;;;;;;;;;:25;;;;;;;;;;;;:38;;;;;;;;;9258:47;;;;;;9344:14;;9324:17;;:34;9316:43;;;;;;919:12;9378:9;:25;9370:34;;;;;;9512:14;;9492:17;;:34;9484:43;;;;;;11263:2;11258:1;11246:9;:13;11245:20;;;;;;11230:11;;:35;;;;;;;;;;;11306:2;11301:1;11289:9;:13;11288:20;;;;;;11276:8;;:32;;;;;;;;;;;11352:421;;;;;;;;11381:11;11352:421;;;;;;;;;;;;11413:10;11352:421;;;;11447:17;;11352:421;;;;11532:1;1606;11493:17;;:36;:40;11485:4;:49;11352:421;;;;11559:2;11352:421;;;;11583:1;11352:421;;;;11608:1;11352:421;;;;11633:1;11352:421;;;;11657:1;11352:421;;;;11686:1;11352:421;;;;11709:1;11352:421;;;;11735:1;11352:421;;;;11760:1;11352:421;;;11329:8;:20;11338:10;11329:20;;;;;;;;;;;;;;;:444;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11794:7;11807:10;11794:24;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;11794:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11844:27;11860:10;11844:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;11844:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11114:765;:::o;13915:330::-;5001:13;;4983:15;:31;4975:40;;;;;;9512:14;;9492:17;;:34;9484:43;;;;;;9930:23;9956:8;:20;9965:10;9956:20;;;;;;;;;;;;;;;9930:46;;10013:1;9995:7;:15;;;:19;9987:28;;;;;;1078:4;14041:6;:19;10098:23;10124:8;:20;10133:10;10124:20;;;;;;;;;;;;;;;10098:46;;10179:8;10163:7;:12;;;:24;;10155:33;;;;;;14078:23;14104:8;:20;14113:10;14104:20;;;;;;;;;;;;;;;14078:46;;1078:4;14151:6;:19;14135:7;:12;;;:35;;;;;;;;;;;14200:6;14181:7;:15;;;:25;;;;;;;;;;;14236:1;14217:7;:15;;;:20;;;;;;;;;;;10199:1;10026;;9538;13915:330;:::o;13551:352::-;5001:13;;4983:15;:31;4975:40;;;;;;9512:14;;9492:17;;:34;9484:43;;;;;;9930:23;9956:8;:20;9965:10;9956:20;;;;;;;;;;;;;;;9930:46;;10013:1;9995:7;:15;;;:19;9987:28;;;;;;1041:3;13678:6;:19;10098:23;10124:8;:20;10133:10;10124:20;;;;;;;;;;;;;;;10098:46;;10179:8;10163:7;:12;;;:24;;10155:33;;;;;;13712:6;10271:23;10297:8;:20;10306:10;10297:20;;;;;;;;;;;;;;;10271:46;;1891:1;10390:6;10372:7;:15;;;10356:7;:13;;;:31;:40;10355:58;;;;;;10336:7;:14;;;:78;;10328:87;;;;;;13736:23;13762:8;:20;13771:10;13762:20;;;;;;;;;;;;;;;13736:46;;1041:3;13809:6;:19;13793:7;:12;;;:35;;;;;;;;;;;13858:6;13839:7;:15;;;:25;;;;;;;;;;;13894:1;13875:7;:15;;;:20;;;;;;;;;;;10426:1;10199;;10026;;9538;13551:352;:::o;208:30::-;;;;;;;;;;;;;:::o;14931:346::-;5001:13;;4983:15;:31;4975:40;;;;;;9512:14;;9492:17;;:34;9484:43;;;;;;9930:23;9956:8;:20;9965:10;9956:20;;;;;;;;;;;;;;;9930:46;;10013:1;9995:7;:15;;;:19;9987:28;;;;;;1156:4;15061:6;:23;10098;10124:8;:20;10133:10;10124:20;;;;;;;;;;;;;;;10098:46;;10179:8;10163:7;:12;;;:24;;10155:33;;;;;;15102:23;15128:8;:20;15137:10;15128:20;;;;;;;;;;;;;;;15102:46;;1156:4;15175:6;:23;15159:7;:12;;;:39;;;;;;;;;;;15232:6;15209:7;:19;;;:29;;;;;;;;;;;15268:1;15249:7;:15;;;:20;;;;;;;;;;;10199:1;10026;;9538;14931:346;:::o;14587:336::-;5001:13;;4983:15;:31;4975:40;;;;;;9512:14;;9492:17;;:34;9484:43;;;;;;9930:23;9956:8;:20;9965:10;9956:20;;;;;;;;;;;;;;;9930:46;;10013:1;9995:7;:15;;;:19;9987:28;;;;;;1232:3;14714:6;:21;10098:23;10124:8;:20;10133:10;10124:20;;;;;;;;;;;;;;;10098:46;;10179:8;10163:7;:12;;;:24;;10155:33;;;;;;14753:23;14779:8;:20;14788:10;14779:20;;;;;;;;;;;;;;;14753:46;;1232:3;14826:6;:21;14810:7;:12;;;:37;;;;;;;;;;;14878:6;14858:7;:16;;;:26;;;;;;;;;;;14914:1;14895:7;:15;;;:20;;;;;;;;;;;10199:1;10026;;9538;14587:336;:::o;15289:351::-;5001:13;;4983:15;:31;4975:40;;;;;;9512:14;;9492:17;;:34;9484:43;;;;;;9930:23;9956:8;:20;9965:10;9956:20;;;;;;;;;;;;;;;9930:46;;10013:1;9995:7;:15;;;:19;9987:28;;;;;;1192:4;15413:6;:17;10098:23;10124:8;:20;10133:10;10124:20;;;;;;;;;;;;;;;10098:46;;10179:8;10163:7;:12;;;:24;;10155:33;;;;;;15453:6;10502:23;10528:8;:20;10537:10;10528:20;;;;;;;;;;;;;;;10502:46;;1744:2;10584:6;10568:7;:13;;;:22;10567:37;;10559:46;;;;;;15477:23;15503:8;:20;15512:10;15503:20;;;;;;;;;;;;;;;15477:46;;1192:4;15550:6;:17;15534:7;:12;;;:33;;;;;;;;;;;15595:6;15578:7;:13;;;:23;;;;;;;;;;;15631:1;15612:7;:15;;;:20;;;;;;;;;;;10616:1;10199;;10026;;9538;15289:351;:::o;15648:330::-;5001:13;;4983:15;:31;4975:40;;;;;;9512:14;;9492:17;;:34;9484:43;;;;;;9930:23;9956:8;:20;9965:10;9956:20;;;;;;;;;;;;;;;9930:46;;10013:1;9995:7;:15;;;:19;9987:28;;;;;;1269:5;15774:6;:19;10098:23;10124:8;:20;10133:10;10124:20;;;;;;;;;;;;;;;10098:46;;10179:8;10163:7;:12;;;:24;;10155:33;;;;;;15811:23;15837:8;:20;15846:10;15837:20;;;;;;;;;;;;;;;15811:46;;1269:5;15884:6;:19;15868:7;:12;;;:35;;;;;;;;;;;15933:6;15914:7;:15;;;:25;;;;;;;;;;;15969:1;15950:7;:15;;;:20;;;;;;;;;;;10199:1;10026;;9538;15648:330;:::o;5670:2188::-;5001:13;;4983:15;:31;4975:40;;;;;;5111:11;;5093:15;:29;5089:430;;;5148:9;5160:15;5148:27;;5190:19;5252:1;5236:12;;5228:4;5214:11;;:18;5213:35;;;;;;5212:41;5190:63;;5292:24;5336:14;5319;;:31;5292:58;;5393:19;5373:17;;:39;5365:48;;;;;;5089:430;;;;;;5492:14;;5472:17;;:34;5464:43;;;;;;5089:430;5746:18;5767:1;5746:22;;5801:11;;5783:15;:29;5779:389;;;5838:19;5911:1;5895:12;;5876:15;5862:11;;:29;5861:46;;;;;;5860:52;5838:74;;5927:24;5971:14;5954;;:31;5927:58;;6038:17;;6016:19;:39;6000:55;;5779:389;;;;;6139:17;;6122:14;;:34;6106:50;;5779:389;6208:1;6188:17;:21;;;;6220:18;6241:1;6220:22;;6268:16;6287:1;6268:20;;6263:1386;6304:7;:14;;;;6290:11;:28;6263:1386;;;6359:14;6376:7;6384:11;6376:20;;;;;;;;;;;;;;;;;;;;;;;;;6359:37;;6411:23;6437:8;:16;6446:6;6437:16;;;;;;;;;;;;;;;6411:42;;6487:13;6468:7;:15;;;:32;;;;;;;;;;;6803:13;1709:2;6754:7;:12;;;:43;;;;;;6737:7;:13;;;:61;1564:2;6670:7;:15;;;:35;1652:3;6596:7;:19;;;:43;1606:1;6532:7;:14;;;:33;:107;:173;:267;6531:285;6515:7;:12;;;:301;;;;;;;;;;;6940:13;1846:2;6897:7;:15;;;:39;1799:2;6852:7;:16;;;:42;:84;6851:102;6831:7;:16;;;:122;;;;;;;;;;;6982:24;7447:1;7430:14;;:18;;;;;;1232:3;7393:7;:16;;;:31;1192:4;7327:7;:13;;;:24;1156:4;7286:7;:19;;;:36;1115:3;7255:7;:14;;;:26;1078:4;7185:7;:15;;;:28;1041:3;7152:7;:15;;;:28;972:1;7117:7;:16;;;:30;7116:65;:98;:166;:207;:236;:309;7115:334;7071:3;7054:14;;:20;7046:3;7026:17;;:23;7025:50;;;;;;7009:7;:12;;;:67;:440;6982:467;;7490:13;7468:19;:35;7464:174;;;7553:19;7537:35;;7611:11;7591:17;:31;;;;7464:174;6263:1386;;;6320:13;;;;;;;6263:1386;;;;7690:13;7669:17;;:34;;;;;;;;;;;7749:14;;7728:17;;:35;7724:86;;;7789:9;:7;:9::i;:::-;7724:86;7835:15;;;;;;;;;;5529:1;;5670:2188::o;107:88::-;153:42;107:88;:::o;8546:113::-;4893:4;;;;;;;;;;;4879:18;;:10;:18;;;4871:27;;;;;;8640:11;8622:15;;:29;;;;;;;;;;;;;;;;;;8546:113;:::o;12883:336::-;5001:13;;4983:15;:31;4975:40;;;;;;9512:14;;9492:17;;:34;9484:43;;;;;;9930:23;9956:8;:20;9965:10;9956:20;;;;;;;;;;;;;;;9930:46;;10013:1;9995:7;:15;;;:19;9987:28;;;;;;972:1;13012:6;:20;10098:23;10124:8;:20;10133:10;10124:20;;;;;;;;;;;;;;;10098:46;;10179:8;10163:7;:12;;;:24;;10155:33;;;;;;13050:23;13076:8;:20;13085:10;13076:20;;;;;;;;;;;;;;;13050:46;;972:1;13123:6;:20;13107:7;:12;;;:36;;;;;;;;;;;13174:6;13154:7;:16;;;:26;;;;;;;;;;;13210:1;13191:7;:15;;;:20;;;;;;;;;;;10199:1;10026;;9538;12883:336;:::o;3590:1189::-;3632:12;3693:18;3760:14;3823:19;3891:25;3965:24;4038:14;4101:24;4174:20;4243;4286:16;4305:1;4286:20;;4281:256;4322:7;:14;;;;4308:11;:28;4281:256;;;4377:21;4401:7;4409:11;4401:20;;;;;;;;;;;;;;;;;;;;;;;;;4377:44;;4436:23;4462:8;:23;4471:13;4462:23;;;;;;;;;;;;;;;4436:49;;4513:7;:12;;;4500:25;;;;4281:256;;4338:13;;;;;;;4281:256;;;;93:1;4567:7;:14;;;;4583:9;4594:11;;4624:13;;4639:12;;4670:14;;4686:12;;4717:17;;4753;;4547:224;;;;;;;;;;;;;;;;;;;;3590:1189;;;;;;;;;;:::o;59:35::-;93:1;59:35;:::o;12528:310::-;12654:24;12618:11;9647:7;:14;;;;9633:11;:28;9625:37;;;;;;12696:21;12720:7;12728:11;12720:20;;;;;;;;;;;;;;;;;;;;;;;;;12696:44;;12751:23;12777:8;:23;12786:13;12777:23;;;;;;;;;;;;;;;12751:49;;12818:7;:12;;12811:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12528:310;;;;:::o;680:21::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15986:4283::-;5001:13;;4983:15;:31;4975:40;;;;;;9512:14;;9492:17;;:34;9484:43;;;;;;9930:23;9956:8;:20;9965:10;9956:20;;;;;;;;;;;;;;;9930:46;;10013:1;9995:7;:15;;;:19;9987:28;;;;;;16152:17;9765:19;9787:7;9795:16;9787:25;;;;;;;;;;;;;;;;;;;;;;;;;9765:47;;9845:11;9831:25;;:10;:25;;;;9823:34;;;;;;16187:32;16222:8;:20;16231:10;16222:20;;;;;;;;;;;;;;;16187:55;;16290:16;16261;:25;;;:45;;16253:54;;;;;;16328:20;16351:7;16359:17;16351:26;;;;;;;;;;;;;;;;;;;;;;;;;16328:49;;16396:32;16431:8;:22;16440:12;16431:22;;;;;;;;;;;;;;;16396:57;;16474:18;16495:1;16474:22;;16517:16;16625:1;16617:4;16599:15;:22;;;;;;16598:28;;;;;;16591:1;16569:15;16552:33;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;16552:33:0;;;16542:44;;;;;;16537:50;;:55;;16536:91;;16517:110;;16640:16;16929:1;1427:3;16861:16;:24;;;:39;1388:3;16793:16;:24;;;:39;1351:1;16728:16;:22;;;:36;1317:1;16659:16;:40;:105;:173;:241;:271;16640:290;;16977:2;16963:11;:16;;;;;;16956:3;:24;16941:39;;;;17006:3;16991:18;;;;;;;;;17022:17;17464:1;1513:4;17393:16;:24;;;:41;1475:1;17320:16;:25;;;:43;1427:3;17250:16;:24;;;:40;1388:3;17180:16;:24;;;:40;1351:1;17113:16;:22;;;:37;1317:1;17042:16;:25;;;:41;:108;:178;:248;:321;:392;:423;17022:443;;17486:31;17520:1;17486:35;;17532:30;17565:1;17532:34;;17577:31;17611:1;17577:35;;17651:12;17637:11;:26;17633:1321;;;17809:7;17795:11;:21;17783:7;17759:16;:21;;;17744:12;:36;:46;17743:74;;;;;;17727:90;;17936:7;17922:11;:21;17910:7;17891:16;17876:12;:31;:41;17875:69;;;;;;17846:98;;18001:13;17977:16;:21;;;:37;17973:128;;;18064:16;:21;;;18048:37;;17973:128;18140:13;18115:16;:21;;;:38;;;;;;;;;;;18267:7;18253:11;:21;18241:7;18213:16;:25;;;18198:12;:40;:50;18197:78;;;;;;18168:16;:25;;;:107;;;;;;;;;;;18356:1;18336:17;;:21;18321:11;:37;;;;;;18304:54;;;;18430:13;18405:16;:21;;;:38;;;;;;;;;;;18487:26;18458:16;:25;;;:55;;;;;;;;;;;17633:1321;;;18699:7;18684:12;:22;18673:6;18645:16;:25;;;18631:11;:39;:48;18630:77;;;;;;18601:16;:25;;;:106;;;;;;;;;;;18759:1;18740:16;:20;18736:207;;;18837:16;18823:11;:30;;;;;;18794:59;;18901:26;18872:16;:25;;;:55;;;;;;;;;;;18736:207;17633:1321;18994:1;18978:13;:17;:51;;;;19028:1;18999:26;:30;18978:51;18974:1099;;;1427:3;19218:16;:24;;;:39;1388:3;19174:16;:24;;;:39;1351:1;19135:16;:22;;;:34;19134:80;:124;1317:1;19060:16;:32;19059:200;19055:673;;;19369:1;19364;19350:11;:15;;;;;;19349:21;19321:16;:24;;;:50;;;;;;19293:78;;19467:1;19462;19448:11;:15;;;;;;19447:21;19419:16;:24;;;:50;;;;;;19390:79;;19055:673;;;19612:1;19607;19593:11;:15;;;;;;19592:21;19564:16;:24;;;:50;;;;;;19536:78;;19710:1;19705;19691:11;:15;;;;;;19690:21;19662:16;:24;;;:50;;;;;;19633:79;;19055:673;19770:25;19742:16;:24;;;:53;;;;;;;;;;;19838:26;19810:16;:24;;;:54;;;;;;;;;;;19966:1;19961;19947:11;:15;;;;;;19946:21;19917:16;:24;;;:51;;;;;;19889:16;:24;;;:79;;;;;;;;;;;20059:1;20054;20040:11;:15;;;;;;20039:21;20011:16;:24;;;:50;;;;;;19983:16;:24;;;:78;;;;;;;;;;;18974:1099;20121:1;20093:16;:24;;;:29;;;;;;;;;;;20148:113;20164:13;20179:26;20207:25;20234:26;20148:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9868:1;;;;;;;;;;10026;;9538;15986:4283;;:::o;13227:312::-;5001:13;;4983:15;:31;4975:40;;;;;;9512:14;;9492:17;;:34;9484:43;;;;;;9930:23;9956:8;:20;9965:10;9956:20;;;;;;;;;;;;;;;9930:46;;10013:1;9995:7;:15;;;:19;9987:28;;;;;;1004:3;13353:6;:16;10098:23;10124:8;:20;10133:10;10124:20;;;;;;;;;;;;;;;10098:46;;10179:8;10163:7;:12;;;:24;;10155:33;;;;;;13384:6;10271:23;10297:8;:20;10306:10;10297:20;;;;;;;;;;;;;;;10271:46;;1891:1;10390:6;10372:7;:15;;;10356:7;:13;;;:31;:40;10355:58;;;;;;10336:7;:14;;;:78;;10328:87;;;;;;13408:23;13434:8;:20;13443:10;13434:20;;;;;;;;;;;;;;;13408:46;;1004:3;13481:6;:16;13465:7;:12;;;:32;;;;;;;;;;;13525:6;13508:7;:13;;;:23;;;;;;;;;;;10426:1;10199;;10026;;9538;13227:312;:::o;8745:257::-;4893:4;;;;;;;;;;;4879:18;;:10;:18;;;4871:27;;;;;;8848:29;8880:7;8888:12;8880:21;;;;;;;;;;;;;;;;;;;;;;;;;8848:53;;8912:23;8938:8;:23;8947:13;8938:23;;;;;;;;;;;;;;;8912:49;;8987:7;8972;:12;;:22;;;;;;;;;;;;:::i;:::-;;4909:1;;8745:257;;:::o;7870:664::-;7913:22;7938:1;7913:26;;7950:29;7995:16;8014:1;7995:20;;7990:404;8031:7;:14;;;;8017:11;:28;7990:404;;;8086:29;8118:7;8126:11;8118:20;;;;;;;;;;;;;;;;;;;;;;;;;8086:52;;8153:23;8179:8;:23;8188:13;8179:23;;;;;;;;;;;;;;;8153:49;;8236:17;8221:7;:12;;;:32;8217:166;;;8307:7;:12;;;8287:32;;8354:13;8338:29;;8217:166;7990:404;;8047:13;;;;;;;7990:404;;;;8423:8;:23;8432:13;8423:23;;;;;;;;;;;;;;;8414:6;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8457:13;:22;;:35;8480:11;;8457:35;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8457:35:0;8503:4;;;;;;;;;;;:13;;:23;8517:8;;8503:23;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8503:23:0;7870:664;;:::o;27:24130::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://983f5d101a7e6e279d4cf4e6ff0db71c2e5b33dfe3259fcfbe82cb1f98a719be

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

OVERVIEW

A strategy game with a prize pool.

Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.