ETH Price: $3,948.63 (+1.10%)

Token

GAT (GAT)
 

Overview

Max Total Supply

1,000,000,000 GAT

Holders

3,796 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.0000563298 GAT

Value
$0.00
0x3f198be39aa90e9984d27097a55f4f0bbaa67b10
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

GATCOIN aims to transform traditional discount coupons, loyalty points and shopping vouchers into liquid, tradable digital tokens.

ICO Information

ICO Start Date : Dec 17,2017  
ICO End Date : Jan 05, 2017
Hard Cap : $14,500,000
Raised : $ 14,500,000
ICO Price  : 0.00006435 ETH
Country : Hong Kong

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
GATTokenSale

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-01-20
*/

pragma solidity ^0.4.17;

// ----------------------------------------------------------------------------
// Copyright (c) 2017 GAT International Limited.
// http://www.gatcoin.io/
//
// The MIT Licence.
// ----------------------------------------------------------------------------
contract Owned {

    address public owner;
    address public newOwner;

    event OwnerChanged(address indexed _newOwner);


    function Owned() public {
        owner = msg.sender;
    }


    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }


    function transferOwnership(address _newOwner) public onlyOwner returns (bool) {
        require(_newOwner != address(0));
        require(_newOwner != owner);

        newOwner = _newOwner;

        return true;
    }


    function acceptOwnership() public returns (bool) {
        require(msg.sender == newOwner);

        owner = msg.sender;

        OwnerChanged(msg.sender);

        return true;
    }
}


contract GATTokenSaleConfig {

    string  public constant SYMBOL                  = "GAT";
    string  public constant NAME                    = "GAT Token";
    uint256 public constant DECIMALS                = 18;

    uint256 public constant DECIMALSFACTOR          = 10**uint256(DECIMALS);
    uint256 public constant START_TIME              = 1513512000; // 2017-12-17T12:00:00Z
    uint256 public constant END_TIME                = 1515326399; // 2018-01-07T11:59:59Z
    uint256 public constant CONTRIBUTION_MIN        = 2 ether;
    uint256 public constant TOKEN_TOTAL_CAP         = 1000000000  * DECIMALSFACTOR;
    uint256 public constant TOKEN_PRIVATE_SALE_CAP  =   54545172  * DECIMALSFACTOR; // past presale
    uint256 public constant TOKEN_PRESALE_CAP       =  145454828  * DECIMALSFACTOR; // 200000000 - what was raised in round 1
    uint256 public constant TOKEN_PUBLIC_SALE_CAP   =  445454828  * DECIMALSFACTOR; // This also includes presale
    uint256 public constant TOKEN_FOUNDATION_CAP    =          0  * DECIMALSFACTOR;
    uint256 public constant TOKEN_RESERVE1_CAP      =  100000000  * DECIMALSFACTOR;
    uint256 public constant TOKEN_RESERVE2_CAP      =          0  * DECIMALSFACTOR;
    uint256 public constant TOKEN_FUTURE_CAP        =  400000000  * DECIMALSFACTOR;

    // Default bonus amount for the presale.
    // 100 = no bonus
    // 120 = 20% bonus.
    // Note that the owner can change the amount of bonus given.
    uint256 public constant PRESALE_BONUS      = 120;

    // Default value for tokensPerKEther based on ETH at 300 USD.
    // The owner can update this value before the sale starts based on the
    // price of ether at that time.
    // E.g. 300 USD/ETH -> 300,000 USD/KETH / 0.2 USD/TOKEN = 1,500,000
    uint256 public constant TOKENS_PER_KETHER = 14800000;
}

library SafeMath {

  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a * b;
    assert(a == 0 || c / a == b);
    return c;
  }

  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // assert(b > 0); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    assert(b <= a);
    return a - b;
  }

  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    assert(c >= a);
    return c;
  }
}

contract ERC20Interface {

    uint256 public totalSupply;

    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);

    function balanceOf(address _owner) public view returns (uint256 balance);
    function transfer(address _to, uint256 _value) public returns (bool success);
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);
    function approve(address _spender, uint256 _value) public returns (bool success);
    function allowance(address _owner, address _spender) public view returns (uint256 remaining);
}

// Implementation of standard ERC20 token with ownership.
//
contract GATToken is ERC20Interface, Owned {

    using SafeMath for uint256;

    string public symbol;
    string public name;
    uint256 public decimals;

    mapping(address => uint256) balances;
    mapping(address => mapping (address => uint256)) allowed;


    function GATToken(string _symbol, string _name, uint256 _decimals, uint256 _totalSupply) public
        Owned()
    {
        symbol      = _symbol;
        name        = _name;
        decimals    = _decimals;
        totalSupply = _totalSupply;

        Transfer(0x0, owner, _totalSupply);
    }


    function balanceOf(address _owner) public view returns (uint256 balance) {
        return balances[_owner];
    }


    function transfer(address _to, uint256 _value) public returns (bool success) {
        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);

        Transfer(msg.sender, _to, _value);

        return true;
    }


    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
        balances[_from] = balances[_from].sub(_value);
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);

        Transfer(_from, _to, _value);

        return true;
     }


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


     function approve(address _spender, uint256 _value) public returns (bool success) {
         allowed[msg.sender][_spender] = _value;

         Approval(msg.sender, _spender, _value);

         return true;
     }
}


// This is the main contract that drives the GAT token sale.
// It exposes the ERC20 interface along with various sale-related functions.
//
contract GATTokenSale is GATToken, GATTokenSaleConfig {

    using SafeMath for uint256;

    // Once finalized, tokens will be freely tradable
    bool public finalized;

    // Sale can be suspended or resumed by the owner
    bool public suspended;

    // Addresses for the bank, funding and reserves.
    address public bankAddress;
    address public fundingAddress;
    address public reserve1Address;
    address public reserve2Address;

    // Price of tokens per 1000 ETH
    uint256 public tokensPerKEther;

    // The bonus amount on token purchases
    // E.g. 120 means a 20% bonus will be applied.
    uint256 public bonus;

    // Total number of tokens that have been sold through the sale contract so far.
    uint256 public totalTokensSold;

    // Minimum contribution value
    uint256 public contributionMinimum;

    // Keep track of start time and end time for the sale. These have default
    // values when the contract is deployed but can be changed by owner as needed.
    uint256 public startTime;
    uint256 public endTime;


    // Events
    event TokensPurchased(address indexed beneficiary, uint256 cost, uint256 tokens);
    event TokensPerKEtherUpdated(uint256 newAmount);
    event ContributionMinimumUpdated(uint256 newAmount);
    event BonusAmountUpdated(uint256 newAmount);
    event TimeWindowUpdated(uint256 newStartTime, uint256 newEndTime);
    event SaleSuspended();
    event SaleResumed();
    event TokenFinalized();
    event ContractTokensReclaimed(uint256 amount);

// "0x1a4FBba7231Ec0707925c52b047b951a0BeAA325", "0xa85b419eee304563d3587fe934e932f056ca3c14", "0xa85b419eee304563d3587fe934e932f056ca3c14", "0x587d06eb855811ee987cc842880b9255a3aab45b", 
    function GATTokenSale(address _bankAddress, address _fundingAddress, address _reserve1Address, address _reserve2Address) public
        GATToken(SYMBOL, NAME, DECIMALS, 0)
    {
        // Can only create the contract is the sale has not yet started or ended.
        require(START_TIME >= currentTime());
        require(END_TIME > START_TIME);

        // Need valid wallet addresses
        require(_bankAddress    != address(0x0));
        require(_bankAddress    != address(this));
        require(_fundingAddress != address(0x0));
        require(_fundingAddress != address(this));
        require(_reserve1Address != address(0x0));
        require(_reserve1Address != address(this));
        require(_reserve2Address != address(0x0));
        require(_reserve2Address != address(this));

        uint256 salesTotal = TOKEN_PUBLIC_SALE_CAP.add(TOKEN_PRIVATE_SALE_CAP);
        require(salesTotal.add(TOKEN_FUTURE_CAP).add(TOKEN_FOUNDATION_CAP).add(TOKEN_RESERVE1_CAP).add(TOKEN_RESERVE2_CAP) == TOKEN_TOTAL_CAP);

        // Start in non-finalized state
        finalized = false;
        suspended = false;

        // Start and end times (used for presale).
        startTime = START_TIME;
        endTime   = END_TIME;

        // Initial pricing
        tokensPerKEther = TOKENS_PER_KETHER;

        // Initial contribution minimum
        contributionMinimum = CONTRIBUTION_MIN;

        // Bonus for contributions
        bonus = PRESALE_BONUS;

        // Initialize wallet addresses
        bankAddress    = _bankAddress;
        fundingAddress = _fundingAddress;
        reserve1Address = _reserve1Address;
        reserve2Address = _reserve2Address;

        // Assign initial balances
        balances[address(this)] = balances[address(this)].add(TOKEN_PRESALE_CAP);
        totalSupply = totalSupply.add(TOKEN_PRESALE_CAP);
        Transfer(0x0, address(this), TOKEN_PRESALE_CAP);

        balances[reserve1Address] = balances[reserve1Address].add(TOKEN_RESERVE1_CAP);
        totalSupply = totalSupply.add(TOKEN_RESERVE1_CAP);
        Transfer(0x0, reserve1Address, TOKEN_RESERVE1_CAP);

        balances[reserve2Address] = balances[reserve2Address].add(TOKEN_RESERVE2_CAP);
        totalSupply = totalSupply.add(TOKEN_RESERVE2_CAP);
        Transfer(0x0, reserve2Address, TOKEN_RESERVE2_CAP);

        uint256 bankBalance = TOKEN_TOTAL_CAP.sub(totalSupply);
        balances[bankAddress] = balances[bankAddress].add(bankBalance);
        totalSupply = totalSupply.add(bankBalance);
        Transfer(0x0, bankAddress, bankBalance);

        // The total supply that we calculated here should be the same as in the config.
        require(balanceOf(address(this))  == TOKEN_PRESALE_CAP);
        require(balanceOf(reserve1Address) == TOKEN_RESERVE1_CAP);
        require(balanceOf(reserve2Address) == TOKEN_RESERVE2_CAP);
        require(balanceOf(bankAddress)    == bankBalance);
        require(totalSupply == TOKEN_TOTAL_CAP);
    }


    function currentTime() public constant returns (uint256) {
        return now;
    }


    // Allows the owner to change the price for tokens.
    //
    function setTokensPerKEther(uint256 _tokensPerKEther) external onlyOwner returns(bool) {
        require(_tokensPerKEther > 0);

        // Set the tokensPerKEther amount for any new sale.
        tokensPerKEther = _tokensPerKEther;

        TokensPerKEtherUpdated(_tokensPerKEther);

        return true;
    }

    // Allows the owner to change the minimum contribution amount
    //
    function setContributionMinimum(uint256 _contributionMinimum) external onlyOwner returns(bool) {
        require(_contributionMinimum > 0);

        // Set the tokensPerKEther amount for any new sale.
        contributionMinimum = _contributionMinimum;

        ContributionMinimumUpdated(_contributionMinimum);

        return true;
    }

    // Allows the owner to change the bonus amount applied to purchases.
    //
    function setBonus(uint256 _bonus) external onlyOwner returns(bool) {
        // 100 means no bonus
        require(_bonus >= 100);

        // 200 means 100% bonus
        require(_bonus <= 200);

        bonus = _bonus;

        BonusAmountUpdated(_bonus);

        return true;
    }


    // Allows the owner to change the time window for the sale.
    //
    function setTimeWindow(uint256 _startTime, uint256 _endTime) external onlyOwner returns(bool) {
        require(_startTime >= START_TIME);
        require(_endTime > _startTime);

        startTime = _startTime;
        endTime   = _endTime;

        TimeWindowUpdated(_startTime, _endTime);

        return true;
    }


    // Allows the owner to suspend / stop the sale.
    //
    function suspend() external onlyOwner returns(bool) {
        if (suspended == true) {
            return false;
        }

        suspended = true;

        SaleSuspended();

        return true;
    }


    // Allows the owner to resume the sale.
    //
    function resume() external onlyOwner returns(bool) {
        if (suspended == false) {
            return false;
        }

        suspended = false;

        SaleResumed();

        return true;
    }


    // Accept ether contributions during the token sale.
    //
    function () payable public {
        buyTokens(msg.sender);
    }


    // Allows the caller to buy tokens for another recipient (proxy purchase).
    // This can be used by exchanges for example.
    //
    function buyTokens(address beneficiary) public payable returns (uint256) {
        require(!suspended);
        require(beneficiary != address(0x0));
        require(beneficiary != address(this));
        require(currentTime() >= startTime);
        require(currentTime() <= endTime);
        require(msg.value >= contributionMinimum);
        require(msg.sender != fundingAddress);

        // Check if the sale contract still has tokens for sale.
        uint256 saleBalance = balanceOf(address(this));
        require(saleBalance > 0);

        // Calculate the number of tokens that the ether should convert to.
        uint256 tokens = msg.value.mul(tokensPerKEther).mul(bonus).div(10**(18 - DECIMALS + 3 + 2));
        require(tokens > 0);

        uint256 cost = msg.value;
        uint256 refund = 0;

        if (tokens > saleBalance) {
            // Not enough tokens left for sale to fulfill the full order.
            tokens = saleBalance;

            // Calculate the actual cost for the tokens that can be purchased.
            cost = tokens.mul(10**(18 - DECIMALS + 3 + 2)).div(tokensPerKEther.mul(bonus));

            // Calculate the amount of ETH refund to the contributor.
            refund = msg.value.sub(cost);
        }

        totalTokensSold = totalTokensSold.add(tokens);

        // Move tokens from the sale contract to the beneficiary
        balances[address(this)] = balances[address(this)].sub(tokens);
        balances[beneficiary]   = balances[beneficiary].add(tokens);
        Transfer(address(this), beneficiary, tokens);

        if (refund > 0) {
           msg.sender.transfer(refund);
        }

        // Transfer the contributed ether to the crowdsale wallets.
        uint256 contribution      = msg.value.sub(refund);

        fundingAddress.transfer(contribution);

        TokensPurchased(beneficiary, cost, tokens);

        return tokens;
    }


    // ERC20 transfer function, modified to only allow transfers once the sale has been finalized.
    //
    function transfer(address _to, uint256 _amount) public returns (bool success) {
        if (!isTransferAllowed(msg.sender, _to)) {
            return false;
        }

        return super.transfer(_to, _amount);
    }


    // ERC20 transferFrom function, modified to only allow transfers once the sale has been finalized.
    //
    function transferFrom(address _from, address _to, uint256 _amount) public returns (bool success) {
        if (!isTransferAllowed(_from, _to)) {
            return false;
        }

        return super.transferFrom(_from, _to, _amount);
    }


    // Internal helper to check if the transfer should be allowed
    //
    function isTransferAllowed(address _from, address _to) private view returns (bool) {
        if (finalized) {
            // We allow everybody to transfer tokens once the sale is finalized.
            return true;
        }

        if (_from == bankAddress || _to == bankAddress) {
            // We allow the bank to initiate transfers. We also allow it to be the recipient
            // of transfers before the token is finalized in case a recipient wants to send
            // back tokens. E.g. KYC requirements cannot be met.
            return true;
        }

        return false;
    }


    // Allows owner to transfer tokens assigned to the sale contract, back to the bank wallet.
    function reclaimContractTokens() external onlyOwner returns (bool) {
        uint256 tokens = balanceOf(address(this));

        if (tokens == 0) {
            return false;
        }

        balances[address(this)] = balances[address(this)].sub(tokens);
        balances[bankAddress]   = balances[bankAddress].add(tokens);
        Transfer(address(this), bankAddress, tokens);

        ContractTokensReclaimed(tokens);

        return true;
    }


    // Allows the owner to finalize the sale and allow tokens to be traded.
    //
    function finalize() external onlyOwner returns (bool) {
        require(!finalized);

        finalized = true;

        TokenFinalized();

        return true;
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[],"name":"resume","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_bonus","type":"uint256"}],"name":"setBonus","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokensPerKEther","type":"uint256"}],"name":"setTokensPerKEther","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_startTime","type":"uint256"},{"name":"_endTime","type":"uint256"}],"name":"setTimeWindow","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"PRESALE_BONUS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_PRIVATE_SALE_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DECIMALS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"END_TIME","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"contributionMinimum","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalTokensSold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reserve1Address","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"suspended","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bonus","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bankAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_FOUNDATION_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_RESERVE1_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"DECIMALSFACTOR","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_RESERVE2_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"reclaimContractTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reserve2Address","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"NAME","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensPerKEther","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"finalized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_FUTURE_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CONTRIBUTION_MIN","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_PUBLIC_SALE_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_TOTAL_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_contributionMinimum","type":"uint256"}],"name":"setContributionMinimum","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fundingAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"START_TIME","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"suspend","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_PRESALE_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"}],"name":"buyTokens","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"TOKENS_PER_KETHER","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"SYMBOL","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_bankAddress","type":"address"},{"name":"_fundingAddress","type":"address"},{"name":"_reserve1Address","type":"address"},{"name":"_reserve2Address","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"cost","type":"uint256"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"TokensPurchased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newAmount","type":"uint256"}],"name":"TokensPerKEtherUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newAmount","type":"uint256"}],"name":"ContributionMinimumUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newAmount","type":"uint256"}],"name":"BonusAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newStartTime","type":"uint256"},{"indexed":false,"name":"newEndTime","type":"uint256"}],"name":"TimeWindowUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"SaleSuspended","type":"event"},{"anonymous":false,"inputs":[],"name":"SaleResumed","type":"event"},{"anonymous":false,"inputs":[],"name":"TokenFinalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"ContractTokensReclaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]

606060405234156200001057600080fd5b60405160808062003916833981016040528080519060200190919080519060200190919080519060200190919080519060200190919050506000806040805190810160405280600381526020017f47415400000000000000000000000000000000000000000000000000000000008152506040805190810160405280600981526020017f47415420546f6b656e00000000000000000000000000000000000000000000008152506012600033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600390805190602001906200011492919062000e65565b5082600490805190602001906200012d92919062000e65565b508160058190555080600081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505050620001d062000ddb64010000000002620020d5176401000000009004565b635a365c4010151515620001e357600080fd5b635a365c40635a520bbf111515620001fa57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141515156200023757600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141515156200027357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614151515620002b057600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614151515620002ec57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141515156200032957600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141515156200036557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515620003a257600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515620003de57600080fd5b620004156012600a0a6303404b14026012600a0a631a8d19ec0262000de36401000000000262002480179091906401000000009004565b91506012600a0a633b9aca0002620004cd6012600a0a600002620004b06012600a0a6305f5e10002620004936012600a0a600002620004766012600a0a6317d78400028a62000de36401000000000262002480179091906401000000009004565b62000de36401000000000262002480179091906401000000009004565b62000de36401000000000262002480179091906401000000009004565b62000de36401000000000262002480179091906401000000009004565b141515620004da57600080fd5b6000600860006101000a81548160ff0219169083151502179055506000600860016101000a81548160ff021916908315150217905550635a365c40601081905550635a520bbf60118190555062e1d480600c81905550671bc16d674ec80000600f819055506078600d8190555085600860026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555083600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620006b76012600a0a6308ab76ec02600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000de36401000000000262002480179091906401000000009004565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620007296012600a0a6308ab76ec0260005462000de36401000000000262002480179091906401000000009004565b6000819055503073ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a0a6308ab76ec026040518082815260200191505060405180910390a3620008176012600a0a6305f5e1000260066000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000de36401000000000262002480179091906401000000009004565b60066000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620008ab6012600a0a6305f5e1000260005462000de36401000000000262002480179091906401000000009004565b600081905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a0a6305f5e100026040518082815260200191505060405180910390a3620009b86012600a0a60000260066000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000de36401000000000262002480179091906401000000009004565b60066000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000a496012600a0a60000260005462000de36401000000000262002480179091906401000000009004565b600081905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a0a6000026040518082815260200191505060405180910390a362000af76000546012600a0a633b9aca000262000e026401000000000262002467179091906401000000009004565b905062000b7d8160066000600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000de36401000000000262002480179091906401000000009004565b60066000600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000c078160005462000de36401000000000262002480179091906401000000009004565b600081905550600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36012600a0a6308ab76ec0262000ca93062000e1c6401000000000262001a40176401000000009004565b14151562000cb657600080fd5b6012600a0a6305f5e1000262000d02600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000e1c6401000000000262001a40176401000000009004565b14151562000d0f57600080fd5b6012600a0a60000262000d58600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000e1c6401000000000262001a40176401000000009004565b14151562000d6557600080fd5b8062000da7600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000e1c6401000000000262001a40176401000000009004565b14151562000db457600080fd5b6012600a0a633b9aca000260005414151562000dcf57600080fd5b50505050505062000f14565b600042905090565b600080828401905083811015151562000df857fe5b8091505092915050565b600082821115151562000e1157fe5b818303905092915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000ea857805160ff191683800117855562000ed9565b8280016001018555821562000ed9579182015b8281111562000ed857825182559160200191906001019062000ebb565b5b50905062000ee8919062000eec565b5090565b62000f1191905b8082111562000f0d57600081600090555060010162000ef3565b5090565b90565b6129f28062000f246000396000f300606060405260043610610272576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063046f7da21461027e57806306fdde03146102ab578063095ea7b3146103395780630b98f975146103935780630e9d02cc146103ce57806318160ddd146104095780631a79c5de146104325780631b3fddb81461047657806323b872dd1461049f5780632a9d04f0146105185780632e0f262514610541578063313ce5671461056a5780633197cbb61461059357806337ba682d146105bc5780634bb278f3146105e55780634f2d7ab51461061257806363b201171461063b57806363cb2afb14610664578063702efdf3146106b957806370a08231146106e657806375b4d78c146107335780637822ed491461075c57806378e97925146107b157806379ba5097146107da57806384fd7ef0146108075780638945a8af146108305780638bc04eb7146108595780638d71f131146108825780638da5cb5b146108ab5780638f14d8a31461090057806395d89b411461092d578063979260bd146109bb578063a3f4df7e14610a10578063a5bc770c14610a9e578063a9059cbb14610ac7578063b3f05b9714610b21578063b46eeebb14610b4e578063ba9bb82714610b77578063c57a4a4d14610ba0578063c806a91d14610bc9578063cb0b7b0314610bf2578063d18e81b314610c2d578063d3b7bfb414610c56578063d4ee1d9014610cab578063dd62ed3e14610d00578063ddaa26ad14610d6c578063e6400bbe14610d95578063eb75dc0314610dc2578063ec8ac4d814610deb578063f2fde38b14610e2d578063f527c85614610e7e578063f76f8d7814610ea7575b61027b33610f35565b50005b341561028957600080fd5b610291611420565b604051808215151515815260200191505060405180910390f35b34156102b657600080fd5b6102be6114f2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102fe5780820151818401526020810190506102e3565b50505050905090810190601f16801561032b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561034457600080fd5b610379600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611590565b604051808215151515815260200191505060405180910390f35b341561039e57600080fd5b6103b46004808035906020019091905050611682565b604051808215151515815260200191505060405180910390f35b34156103d957600080fd5b6103ef6004808035906020019091905050611747565b604051808215151515815260200191505060405180910390f35b341561041457600080fd5b61041c6117fb565b6040518082815260200191505060405180910390f35b341561043d57600080fd5b61045c6004808035906020019091908035906020019091905050611801565b604051808215151515815260200191505060405180910390f35b341561048157600080fd5b6104896118d7565b6040518082815260200191505060405180910390f35b34156104aa57600080fd5b6104fe600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506118dc565b604051808215151515815260200191505060405180910390f35b341561052357600080fd5b61052b61190c565b6040518082815260200191505060405180910390f35b341561054c57600080fd5b61055461191a565b6040518082815260200191505060405180910390f35b341561057557600080fd5b61057d61191f565b6040518082815260200191505060405180910390f35b341561059e57600080fd5b6105a6611925565b6040518082815260200191505060405180910390f35b34156105c757600080fd5b6105cf61192b565b6040518082815260200191505060405180910390f35b34156105f057600080fd5b6105f8611933565b604051808215151515815260200191505060405180910390f35b341561061d57600080fd5b6106256119fb565b6040518082815260200191505060405180910390f35b341561064657600080fd5b61064e611a01565b6040518082815260200191505060405180910390f35b341561066f57600080fd5b610677611a07565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106c457600080fd5b6106cc611a2d565b604051808215151515815260200191505060405180910390f35b34156106f157600080fd5b61071d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611a40565b6040518082815260200191505060405180910390f35b341561073e57600080fd5b610746611a89565b6040518082815260200191505060405180910390f35b341561076757600080fd5b61076f611a8f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156107bc57600080fd5b6107c4611ab5565b6040518082815260200191505060405180910390f35b34156107e557600080fd5b6107ed611abb565b604051808215151515815260200191505060405180910390f35b341561081257600080fd5b61081a611ba4565b6040518082815260200191505060405180910390f35b341561083b57600080fd5b610843611baf565b6040518082815260200191505060405180910390f35b341561086457600080fd5b61086c611bbd565b6040518082815260200191505060405180910390f35b341561088d57600080fd5b610895611bc5565b6040518082815260200191505060405180910390f35b34156108b657600080fd5b6108be611bd0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561090b57600080fd5b610913611bf6565b604051808215151515815260200191505060405180910390f35b341561093857600080fd5b610940611ea7565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610980578082015181840152602081019050610965565b50505050905090810190601f1680156109ad5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156109c657600080fd5b6109ce611f45565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a1b57600080fd5b610a23611f6b565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a63578082015181840152602081019050610a48565b50505050905090810190601f168015610a905780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610aa957600080fd5b610ab1611fa4565b6040518082815260200191505060405180910390f35b3415610ad257600080fd5b610b07600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611faa565b604051808215151515815260200191505060405180910390f35b3415610b2c57600080fd5b610b34611fd8565b604051808215151515815260200191505060405180910390f35b3415610b5957600080fd5b610b61611feb565b6040518082815260200191505060405180910390f35b3415610b8257600080fd5b610b8a611ff9565b6040518082815260200191505060405180910390f35b3415610bab57600080fd5b610bb3612005565b6040518082815260200191505060405180910390f35b3415610bd457600080fd5b610bdc612013565b6040518082815260200191505060405180910390f35b3415610bfd57600080fd5b610c136004808035906020019091905050612021565b604051808215151515815260200191505060405180910390f35b3415610c3857600080fd5b610c406120d5565b6040518082815260200191505060405180910390f35b3415610c6157600080fd5b610c696120dd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610cb657600080fd5b610cbe612103565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610d0b57600080fd5b610d56600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612129565b6040518082815260200191505060405180910390f35b3415610d7757600080fd5b610d7f6121b0565b6040518082815260200191505060405180910390f35b3415610da057600080fd5b610da86121b8565b604051808215151515815260200191505060405180910390f35b3415610dcd57600080fd5b610dd561228a565b6040518082815260200191505060405180910390f35b610e17600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610f35565b6040518082815260200191505060405180910390f35b3415610e3857600080fd5b610e64600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612298565b604051808215151515815260200191505060405180910390f35b3415610e8957600080fd5b610e916123d9565b6040518082815260200191505060405180910390f35b3415610eb257600080fd5b610eba6123e0565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610efa578082015181840152602081019050610edf565b50505050905090810190601f168015610f275780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600080600080600080600860019054906101000a900460ff16151515610f5a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614151515610f9657600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614151515610fd157600080fd5b601054610fdc6120d5565b10151515610fe957600080fd5b601154610ff46120d5565b1115151561100157600080fd5b600f54341015151561101257600080fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561106f57600080fd5b61107830611a40565b945060008511151561108957600080fd5b6110d060026003601280030101600a0a6110c2600d546110b4600c543461241990919063ffffffff16565b61241990919063ffffffff16565b61244c90919063ffffffff16565b93506000841115156110e157600080fd5b34925060009150848411156111525784935061113a61110d600d54600c5461241990919063ffffffff16565b61112c60026003601280030101600a0a8761241990919063ffffffff16565b61244c90919063ffffffff16565b925061114f833461246790919063ffffffff16565b91505b61116784600e5461248090919063ffffffff16565b600e819055506111bf84600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246790919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061125484600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248090919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a36000821115611346573373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050151561134557600080fd5b5b611359823461246790919063ffffffff16565b9050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156113bd57600080fd5b8673ffffffffffffffffffffffffffffffffffffffff167f8fafebcaf9d154343dad25669bfa277f4fbacd7ac6b0c4fed522580e040a0f338486604051808381526020018281526020019250505060405180910390a28395505050505050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561147e57600080fd5b60001515600860019054906101000a900460ff16151514156114a357600090506114ef565b6000600860016101000a81548160ff0219169083151502179055507fbcbdbf400d5c713d9679ffa947f717848591ab5a7d1608c49119db603c4942cb60405160405180910390a1600190505b90565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115885780601f1061155d57610100808354040283529160200191611588565b820191906000526020600020905b81548152906001019060200180831161156b57829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116e057600080fd5b606482101515156116f057600080fd5b60c8821115151561170057600080fd5b81600d819055507f7d9e5243a26ab840171b7338448bae49afbea12ab5209c779f4e2ae6e2d141cd826040518082815260200191505060405180910390a160019050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117a557600080fd5b6000821115156117b457600080fd5b81600c819055507fee386bebbe46d39825c2b93313aa1ab1dc57d4774cac81c6debb8c611c9227ab826040518082815260200191505060405180910390a160019050919050565b60005481565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561185f57600080fd5b635a365c40831015151561187257600080fd5b828211151561188057600080fd5b82601081905550816011819055507f6c118f466f3e47773b4c9da27f548aafdf212f592e28574f28ecc67ef19cd4518383604051808381526020018281526020019250505060405180910390a16001905092915050565b607881565b60006118e8848461249e565b15156118f75760009050611905565b611902848484612580565b90505b9392505050565b6012600a0a6303404b140281565b601281565b60055481565b60115481565b635a520bbf81565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561199157600080fd5b600860009054906101000a900460ff161515156119ad57600080fd5b6001600860006101000a81548160ff0219169083151502179055507f0f9b481a37d4503bc76152eef0e2ba08850a8db76068c93d4d6bec0395aee72360405160405180910390a16001905090565b600f5481565b600e5481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860019054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600d5481565b600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b1957600080fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf3660405160405180910390a26001905090565b6012600a0a60000281565b6012600a0a6305f5e1000281565b6012600a0a81565b6012600a0a60000281565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c5557600080fd5b611c5e30611a40565b90506000811415611c725760009150611ea3565b611cc481600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246790919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d7b8160066000600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248090919063ffffffff16565b60066000600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a37f2bdbc0ce7fbf2aef4c647c03c4bfd8944d985741800d90ca4f1e8c6f5b77419e816040518082815260200191505060405180910390a1600191505b5090565b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611f3d5780601f10611f1257610100808354040283529160200191611f3d565b820191906000526020600020905b815481529060010190602001808311611f2057829003601f168201915b505050505081565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600981526020017f47415420546f6b656e000000000000000000000000000000000000000000000081525081565b600c5481565b6000611fb6338461249e565b1515611fc55760009050611fd2565b611fcf838361282b565b90505b92915050565b600860009054906101000a900460ff1681565b6012600a0a6317d784000281565b671bc16d674ec8000081565b6012600a0a631a8d19ec0281565b6012600a0a633b9aca000281565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561207f57600080fd5b60008211151561208e57600080fd5b81600f819055507fe6fafef0739724aaa3f73724864d5821481aa094d2c77c7378b77a69e34d9ac7826040518082815260200191505060405180910390a160019050919050565b600042905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b635a365c4081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561221657600080fd5b60011515600860019054906101000a900460ff161515141561223b5760009050612287565b6001600860016101000a81548160ff0219169083151502179055507fe14916b4c867f32e91547d295f9b845b805d5b8c813daa3adbc1597f80a0c5eb60405160405180910390a1600190505b90565b6012600a0a6308ab76ec0281565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122f657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561233257600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561238f57600080fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b62e1d48081565b6040805190810160405280600381526020017f474154000000000000000000000000000000000000000000000000000000000081525081565b6000808284029050600084148061243a575082848281151561243757fe5b04145b151561244257fe5b8091505092915050565b600080828481151561245a57fe5b0490508091505092915050565b600082821115151561247557fe5b818303905092915050565b600080828401905083811015151561249457fe5b8091505092915050565b6000600860009054906101000a900460ff16156124be576001905061257a565b600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806125675750600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15612575576001905061257a565b600090505b92915050565b60006125d482600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246790919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126a682600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246790919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061277882600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248090919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600061287f82600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246790919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061291482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248090919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050929150505600a165627a7a723058208a458d6e4359895b73124b0aac4006e4d65b795c51161d50c5f37643c8592abd00290000000000000000000000001a4fbba7231ec0707925c52b047b951a0beaa325000000000000000000000000a85b419eee304563d3587fe934e932f056ca3c14000000000000000000000000a85b419eee304563d3587fe934e932f056ca3c140000000000000000000000000000000000000000000000000000000000000011

Deployed Bytecode

0x606060405260043610610272576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063046f7da21461027e57806306fdde03146102ab578063095ea7b3146103395780630b98f975146103935780630e9d02cc146103ce57806318160ddd146104095780631a79c5de146104325780631b3fddb81461047657806323b872dd1461049f5780632a9d04f0146105185780632e0f262514610541578063313ce5671461056a5780633197cbb61461059357806337ba682d146105bc5780634bb278f3146105e55780634f2d7ab51461061257806363b201171461063b57806363cb2afb14610664578063702efdf3146106b957806370a08231146106e657806375b4d78c146107335780637822ed491461075c57806378e97925146107b157806379ba5097146107da57806384fd7ef0146108075780638945a8af146108305780638bc04eb7146108595780638d71f131146108825780638da5cb5b146108ab5780638f14d8a31461090057806395d89b411461092d578063979260bd146109bb578063a3f4df7e14610a10578063a5bc770c14610a9e578063a9059cbb14610ac7578063b3f05b9714610b21578063b46eeebb14610b4e578063ba9bb82714610b77578063c57a4a4d14610ba0578063c806a91d14610bc9578063cb0b7b0314610bf2578063d18e81b314610c2d578063d3b7bfb414610c56578063d4ee1d9014610cab578063dd62ed3e14610d00578063ddaa26ad14610d6c578063e6400bbe14610d95578063eb75dc0314610dc2578063ec8ac4d814610deb578063f2fde38b14610e2d578063f527c85614610e7e578063f76f8d7814610ea7575b61027b33610f35565b50005b341561028957600080fd5b610291611420565b604051808215151515815260200191505060405180910390f35b34156102b657600080fd5b6102be6114f2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102fe5780820151818401526020810190506102e3565b50505050905090810190601f16801561032b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561034457600080fd5b610379600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611590565b604051808215151515815260200191505060405180910390f35b341561039e57600080fd5b6103b46004808035906020019091905050611682565b604051808215151515815260200191505060405180910390f35b34156103d957600080fd5b6103ef6004808035906020019091905050611747565b604051808215151515815260200191505060405180910390f35b341561041457600080fd5b61041c6117fb565b6040518082815260200191505060405180910390f35b341561043d57600080fd5b61045c6004808035906020019091908035906020019091905050611801565b604051808215151515815260200191505060405180910390f35b341561048157600080fd5b6104896118d7565b6040518082815260200191505060405180910390f35b34156104aa57600080fd5b6104fe600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506118dc565b604051808215151515815260200191505060405180910390f35b341561052357600080fd5b61052b61190c565b6040518082815260200191505060405180910390f35b341561054c57600080fd5b61055461191a565b6040518082815260200191505060405180910390f35b341561057557600080fd5b61057d61191f565b6040518082815260200191505060405180910390f35b341561059e57600080fd5b6105a6611925565b6040518082815260200191505060405180910390f35b34156105c757600080fd5b6105cf61192b565b6040518082815260200191505060405180910390f35b34156105f057600080fd5b6105f8611933565b604051808215151515815260200191505060405180910390f35b341561061d57600080fd5b6106256119fb565b6040518082815260200191505060405180910390f35b341561064657600080fd5b61064e611a01565b6040518082815260200191505060405180910390f35b341561066f57600080fd5b610677611a07565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156106c457600080fd5b6106cc611a2d565b604051808215151515815260200191505060405180910390f35b34156106f157600080fd5b61071d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611a40565b6040518082815260200191505060405180910390f35b341561073e57600080fd5b610746611a89565b6040518082815260200191505060405180910390f35b341561076757600080fd5b61076f611a8f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156107bc57600080fd5b6107c4611ab5565b6040518082815260200191505060405180910390f35b34156107e557600080fd5b6107ed611abb565b604051808215151515815260200191505060405180910390f35b341561081257600080fd5b61081a611ba4565b6040518082815260200191505060405180910390f35b341561083b57600080fd5b610843611baf565b6040518082815260200191505060405180910390f35b341561086457600080fd5b61086c611bbd565b6040518082815260200191505060405180910390f35b341561088d57600080fd5b610895611bc5565b6040518082815260200191505060405180910390f35b34156108b657600080fd5b6108be611bd0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561090b57600080fd5b610913611bf6565b604051808215151515815260200191505060405180910390f35b341561093857600080fd5b610940611ea7565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610980578082015181840152602081019050610965565b50505050905090810190601f1680156109ad5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156109c657600080fd5b6109ce611f45565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a1b57600080fd5b610a23611f6b565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a63578082015181840152602081019050610a48565b50505050905090810190601f168015610a905780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3415610aa957600080fd5b610ab1611fa4565b6040518082815260200191505060405180910390f35b3415610ad257600080fd5b610b07600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611faa565b604051808215151515815260200191505060405180910390f35b3415610b2c57600080fd5b610b34611fd8565b604051808215151515815260200191505060405180910390f35b3415610b5957600080fd5b610b61611feb565b6040518082815260200191505060405180910390f35b3415610b8257600080fd5b610b8a611ff9565b6040518082815260200191505060405180910390f35b3415610bab57600080fd5b610bb3612005565b6040518082815260200191505060405180910390f35b3415610bd457600080fd5b610bdc612013565b6040518082815260200191505060405180910390f35b3415610bfd57600080fd5b610c136004808035906020019091905050612021565b604051808215151515815260200191505060405180910390f35b3415610c3857600080fd5b610c406120d5565b6040518082815260200191505060405180910390f35b3415610c6157600080fd5b610c696120dd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610cb657600080fd5b610cbe612103565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610d0b57600080fd5b610d56600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612129565b6040518082815260200191505060405180910390f35b3415610d7757600080fd5b610d7f6121b0565b6040518082815260200191505060405180910390f35b3415610da057600080fd5b610da86121b8565b604051808215151515815260200191505060405180910390f35b3415610dcd57600080fd5b610dd561228a565b6040518082815260200191505060405180910390f35b610e17600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610f35565b6040518082815260200191505060405180910390f35b3415610e3857600080fd5b610e64600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612298565b604051808215151515815260200191505060405180910390f35b3415610e8957600080fd5b610e916123d9565b6040518082815260200191505060405180910390f35b3415610eb257600080fd5b610eba6123e0565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610efa578082015181840152602081019050610edf565b50505050905090810190601f168015610f275780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600080600080600080600860019054906101000a900460ff16151515610f5a57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614151515610f9657600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614151515610fd157600080fd5b601054610fdc6120d5565b10151515610fe957600080fd5b601154610ff46120d5565b1115151561100157600080fd5b600f54341015151561101257600080fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561106f57600080fd5b61107830611a40565b945060008511151561108957600080fd5b6110d060026003601280030101600a0a6110c2600d546110b4600c543461241990919063ffffffff16565b61241990919063ffffffff16565b61244c90919063ffffffff16565b93506000841115156110e157600080fd5b34925060009150848411156111525784935061113a61110d600d54600c5461241990919063ffffffff16565b61112c60026003601280030101600a0a8761241990919063ffffffff16565b61244c90919063ffffffff16565b925061114f833461246790919063ffffffff16565b91505b61116784600e5461248090919063ffffffff16565b600e819055506111bf84600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246790919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061125484600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248090919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a36000821115611346573373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050151561134557600080fd5b5b611359823461246790919063ffffffff16565b9050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156113bd57600080fd5b8673ffffffffffffffffffffffffffffffffffffffff167f8fafebcaf9d154343dad25669bfa277f4fbacd7ac6b0c4fed522580e040a0f338486604051808381526020018281526020019250505060405180910390a28395505050505050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561147e57600080fd5b60001515600860019054906101000a900460ff16151514156114a357600090506114ef565b6000600860016101000a81548160ff0219169083151502179055507fbcbdbf400d5c713d9679ffa947f717848591ab5a7d1608c49119db603c4942cb60405160405180910390a1600190505b90565b60048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115885780601f1061155d57610100808354040283529160200191611588565b820191906000526020600020905b81548152906001019060200180831161156b57829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116e057600080fd5b606482101515156116f057600080fd5b60c8821115151561170057600080fd5b81600d819055507f7d9e5243a26ab840171b7338448bae49afbea12ab5209c779f4e2ae6e2d141cd826040518082815260200191505060405180910390a160019050919050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117a557600080fd5b6000821115156117b457600080fd5b81600c819055507fee386bebbe46d39825c2b93313aa1ab1dc57d4774cac81c6debb8c611c9227ab826040518082815260200191505060405180910390a160019050919050565b60005481565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561185f57600080fd5b635a365c40831015151561187257600080fd5b828211151561188057600080fd5b82601081905550816011819055507f6c118f466f3e47773b4c9da27f548aafdf212f592e28574f28ecc67ef19cd4518383604051808381526020018281526020019250505060405180910390a16001905092915050565b607881565b60006118e8848461249e565b15156118f75760009050611905565b611902848484612580565b90505b9392505050565b6012600a0a6303404b140281565b601281565b60055481565b60115481565b635a520bbf81565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561199157600080fd5b600860009054906101000a900460ff161515156119ad57600080fd5b6001600860006101000a81548160ff0219169083151502179055507f0f9b481a37d4503bc76152eef0e2ba08850a8db76068c93d4d6bec0395aee72360405160405180910390a16001905090565b600f5481565b600e5481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860019054906101000a900460ff1681565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600d5481565b600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60105481565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b1957600080fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167fa2ea9883a321a3e97b8266c2b078bfeec6d50c711ed71f874a90d500ae2eaf3660405160405180910390a26001905090565b6012600a0a60000281565b6012600a0a6305f5e1000281565b6012600a0a81565b6012600a0a60000281565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c5557600080fd5b611c5e30611a40565b90506000811415611c725760009150611ea3565b611cc481600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246790919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d7b8160066000600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248090919063ffffffff16565b60066000600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a37f2bdbc0ce7fbf2aef4c647c03c4bfd8944d985741800d90ca4f1e8c6f5b77419e816040518082815260200191505060405180910390a1600191505b5090565b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611f3d5780601f10611f1257610100808354040283529160200191611f3d565b820191906000526020600020905b815481529060010190602001808311611f2057829003601f168201915b505050505081565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040805190810160405280600981526020017f47415420546f6b656e000000000000000000000000000000000000000000000081525081565b600c5481565b6000611fb6338461249e565b1515611fc55760009050611fd2565b611fcf838361282b565b90505b92915050565b600860009054906101000a900460ff1681565b6012600a0a6317d784000281565b671bc16d674ec8000081565b6012600a0a631a8d19ec0281565b6012600a0a633b9aca000281565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561207f57600080fd5b60008211151561208e57600080fd5b81600f819055507fe6fafef0739724aaa3f73724864d5821481aa094d2c77c7378b77a69e34d9ac7826040518082815260200191505060405180910390a160019050919050565b600042905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b635a365c4081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561221657600080fd5b60011515600860019054906101000a900460ff161515141561223b5760009050612287565b6001600860016101000a81548160ff0219169083151502179055507fe14916b4c867f32e91547d295f9b845b805d5b8c813daa3adbc1597f80a0c5eb60405160405180910390a1600190505b90565b6012600a0a6308ab76ec0281565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122f657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561233257600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151561238f57600080fd5b81600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050919050565b62e1d48081565b6040805190810160405280600381526020017f474154000000000000000000000000000000000000000000000000000000000081525081565b6000808284029050600084148061243a575082848281151561243757fe5b04145b151561244257fe5b8091505092915050565b600080828481151561245a57fe5b0490508091505092915050565b600082821115151561247557fe5b818303905092915050565b600080828401905083811015151561249457fe5b8091505092915050565b6000600860009054906101000a900460ff16156124be576001905061257a565b600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806125675750600860029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15612575576001905061257a565b600090505b92915050565b60006125d482600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246790919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126a682600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246790919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061277882600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248090919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600061287f82600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246790919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061291482600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461248090919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050929150505600a165627a7a723058208a458d6e4359895b73124b0aac4006e4d65b795c51161d50c5f37643c8592abd0029

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

0000000000000000000000001a4fbba7231ec0707925c52b047b951a0beaa325000000000000000000000000a85b419eee304563d3587fe934e932f056ca3c14000000000000000000000000a85b419eee304563d3587fe934e932f056ca3c140000000000000000000000000000000000000000000000000000000000000011

-----Decoded View---------------
Arg [0] : _bankAddress (address): 0x1a4FBba7231Ec0707925c52b047b951a0BeAA325
Arg [1] : _fundingAddress (address): 0xA85B419eeE304563d3587Fe934e932F056cA3C14
Arg [2] : _reserve1Address (address): 0xA85B419eeE304563d3587Fe934e932F056cA3C14
Arg [3] : _reserve2Address (address): 0x0000000000000000000000000000000000000011

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000001a4fbba7231ec0707925c52b047b951a0beaa325
Arg [1] : 000000000000000000000000a85b419eee304563d3587fe934e932f056ca3c14
Arg [2] : 000000000000000000000000a85b419eee304563d3587fe934e932f056ca3c14
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000011


Swarm Source

bzzr://8a458d6e4359895b73124b0aac4006e4d65b795c51161d50c5f37643c8592abd
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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