ETH Price: $3,139.98 (-0.73%)

Token

Ambit token (AMBT)
 

Overview

Max Total Supply

25,262,425.826971695525275111 AMBT

Holders

1,548

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
59 AMBT

Value
$0.00
0xd58d40fe101cf288d585b6134009740b1877fe8a
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
AMBTICO

Compiler Version
v0.4.21+commit.dfe3193c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-04-09
*/

pragma solidity 0.4.21;


/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    assert(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 AMBToken {
    using SafeMath for uint256;

    string  public constant name     = "Ambit token";
    string  public constant symbol   = "AMBT";
    uint8   public constant decimals = 18;
    uint256 public totalSupply;

    bool internal contractIsWorking = true;

    struct Investor {
        uint256 tokenBalance;
        uint256 icoInvest;
        bool    activated;
    }
    mapping(address => Investor) internal investors;
    mapping(address => mapping (address => uint256)) internal allowed;

    /*
            Dividend's Structures
    */
    uint256   internal dividendCandidate = 0;
    uint256[] internal dividends;

    enum ProfitStatus {Initial, StartFixed, EndFixed, Claimed}
    struct InvestorProfitData {
        uint256      start_balance;
        uint256      end_balance;
        ProfitStatus status;
    }

    mapping(address => mapping(uint32 => InvestorProfitData)) internal profits;

    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) {
        return investors[_owner].tokenBalance;
    }

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

    function _approve(address _spender, uint256 _value) internal returns (bool) {
        allowed[msg.sender][_spender] = _value;
        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    function approve(address _spender, uint256 _value) public returns (bool) {
        require(investors[msg.sender].activated && contractIsWorking);
        return _approve(_spender, _value);
    }

    function _transfer(address _from, address _to, uint256 _value) internal returns (bool) {
        require(_to != address(0));
        require(_value <= investors[_from].tokenBalance);

        fixDividendBalances(_to, false);

        investors[_from].tokenBalance = investors[_from].tokenBalance.sub(_value);
        investors[_to].tokenBalance = investors[_to].tokenBalance.add(_value);
        emit Transfer(_from, _to, _value);
        return true;
    }

    function transfer(address _to, uint256 _value) public returns (bool) {
        require(investors[msg.sender].activated && contractIsWorking);
        fixDividendBalances(msg.sender, false);
        return _transfer( msg.sender, _to,  _value);
    }

    function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
        require(investors[msg.sender].activated && investors[_from].activated && contractIsWorking);
        require(_to != address(0));
        require(_value <= investors[_from].tokenBalance);
        require(_value <= allowed[_from][msg.sender]);

        fixDividendBalances(_from, false);
        fixDividendBalances(_to, false);

        investors[_from].tokenBalance = investors[_from].tokenBalance.sub(_value);
        investors[_to].tokenBalance   = investors[_to].tokenBalance.add(_value);
        allowed[_from][msg.sender]    = allowed[_from][msg.sender].sub(_value);

        emit Transfer(_from, _to, _value);
        return true;
    }

    /*
        Eligible token and balance helper function
     */
    function fixDividendBalances(address investor, bool revertIfClaimed) internal
        returns (InvestorProfitData storage current_profit, uint256 profit_per_token){

        uint32 next_id      = uint32(dividends.length);
        uint32 current_id   = next_id - 1;
        current_profit      = profits[investor][current_id];

        if (revertIfClaimed) require(current_profit.status != ProfitStatus.Claimed);
        InvestorProfitData storage next_profit      = profits[investor][next_id];

        if (current_profit.status == ProfitStatus.Initial) {

            current_profit.start_balance = investors[investor].tokenBalance;
            current_profit.end_balance   = investors[investor].tokenBalance;
            current_profit.status        = ProfitStatus.EndFixed;
            next_profit.start_balance = investors[investor].tokenBalance;
            next_profit.status        = ProfitStatus.StartFixed;

        } else if (current_profit.status == ProfitStatus.StartFixed) {

            current_profit.end_balance = investors[investor].tokenBalance;
            current_profit.status      = ProfitStatus.EndFixed;
            next_profit.start_balance = investors[investor].tokenBalance;
            next_profit.status        = ProfitStatus.StartFixed;
        }
        profit_per_token = dividends[current_id];
    }
}

contract AMBTICO is AMBToken {
    uint256 internal constant ONE_TOKEN           = 10 ** uint256(decimals);//just for convenience
    uint256 internal constant MILLION             = 1000000;                //just for convenience

    uint256 internal constant BOUNTY_QUANTITY     = 3120000;
    uint256 internal constant RESERV_QUANTITY     = 12480000;

    uint256 internal constant TOKEN_MAX_SUPPLY    = 104 * MILLION   * ONE_TOKEN;
    uint256 internal constant BOUNTY_TOKENS       = BOUNTY_QUANTITY * ONE_TOKEN;
    uint256 internal constant RESERV_TOKENS       = RESERV_QUANTITY * ONE_TOKEN;
    uint256 internal constant MIN_SOLD_TOKENS     = 200             * ONE_TOKEN;
    uint256 internal constant SOFTCAP             = BOUNTY_TOKENS + RESERV_TOKENS + 6 * MILLION * ONE_TOKEN;

    uint256 internal constant REFUND_PERIOD       = 60 days;
    uint256 internal constant KYC_REVIEW_PERIOD   = 60 days;

    address internal owner;
    address internal bountyManager;
    address internal dividendManager;
    address internal dApp;

    enum ContractMode {Initial, TokenSale, UnderSoftCap, DividendDistribution, Destroyed}
    ContractMode public mode = ContractMode.Initial;

    uint256 public icoFinishTime = 0;
    uint256 public tokenSold = 0;
    uint256 public etherCollected = 0;

    uint8   public currentSection = 0;
    uint[4] public saleSectionDiscounts = [ uint8(20), 10, 5];
    uint[4] public saleSectionPrice     = [ uint256(1000000000000000), 1125000000000000, 1187500000000000, 1250000000000000];//price: 0.40 0.45 0.475 0.50 cent | ETH/USD initial rate: 400
    uint[4] public saleSectionCount     = [ uint256(17 * MILLION), 20 * MILLION, 20 * MILLION, 47 * MILLION - (BOUNTY_QUANTITY+RESERV_QUANTITY)];
    uint[4] public saleSectionInvest    = [ uint256(saleSectionCount[0] * saleSectionPrice[0]),
                                                    saleSectionCount[1] * saleSectionPrice[1],
                                                    saleSectionCount[2] * saleSectionPrice[2],
                                                    saleSectionCount[3] * saleSectionPrice[3]];
    uint256 public buyBackPriceWei = 0 ether;

    event OwnershipTransferred          (address previousOwner, address newOwner);
    event BountyManagerAssigned         (address previousBountyManager, address newBountyManager);
    event DividendManagerAssigned       (address previousDividendManager, address newDividendManager);
    event DAppAssigned                  (address previousDApp, address newDApp);
    event ModeChanged                   (ContractMode  newMode, uint256 tokenBalance);
    event DividendDeclared              (uint32 indexed dividendID, uint256 profitPerToken);
    event DividendClaimed               (address indexed investor, uint256 amount);
    event BuyBack                       (address indexed requestor);
    event Refund                        (address indexed investor, uint256 amount);
    event Handbrake                     (ContractMode current_mode, bool functioning);
    event FundsAdded                    (address owner, uint256 amount);
    event FundsWithdrawal               (address owner, uint256 amount);
    event BountyTransfered              (address recipient, uint256 amount);
    event PriceChanged                  (uint256 newPrice);
    event BurnToken                     (uint256 amount);

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

    modifier grantBountyManager() {
        require(msg.sender == bountyManager);
        _;
    }

    modifier grantDividendManager() {
        require(msg.sender == dividendManager);
        _;
    }

    modifier grantDApp() {
        require(msg.sender == dApp);
        _;
    }
    function AMBTICO() public {
        owner = msg.sender;
        dividends.push(0);
    }

    function setTokenPrice(uint256 new_wei_price) public grantDApp {
        require(new_wei_price > 0);
        uint8 len = uint8(saleSectionPrice.length)-1;
        for (uint8 i=0; i<=len; i++) {
            uint256 prdsc = 100 - saleSectionDiscounts[i];
            saleSectionPrice[i]  = prdsc.mul(new_wei_price ).div(100);
            saleSectionInvest[i] = saleSectionPrice[i] * saleSectionCount[i];
        }
        emit PriceChanged(new_wei_price);
    }

    function startICO() public grantOwner {
        require(contractIsWorking);
        require(mode == ContractMode.Initial);
        require(bountyManager != 0x0);

        totalSupply = TOKEN_MAX_SUPPLY;

        investors[this].tokenBalance            = TOKEN_MAX_SUPPLY-(BOUNTY_TOKENS+RESERV_TOKENS);
        investors[bountyManager].tokenBalance   = BOUNTY_TOKENS;
        investors[owner].tokenBalance           = RESERV_TOKENS;

        tokenSold = investors[bountyManager].tokenBalance + investors[owner].tokenBalance;

        mode = ContractMode.TokenSale;
        emit ModeChanged(mode, investors[this].tokenBalance);
    }

    function getCurrentTokenPrice() public view returns(uint256) {
        require(currentSection < saleSectionCount.length);
        return saleSectionPrice[currentSection];
    }

    function () public payable {
        invest();
    }
    function invest() public payable {
       _invest(msg.sender,msg.value);
    }
    /* Used by ĐApp to accept Bitcoin transfers.*/
    function investWithBitcoin(address ethAddress, uint256 ethWEI) public grantDApp {
        _invest(ethAddress,ethWEI);
    }


    function _invest(address msg_sender, uint256 msg_value) internal {
        require(contractIsWorking);
        require(currentSection < saleSectionCount.length);
        require(mode == ContractMode.TokenSale);
        require(msg_sender != bountyManager);

        uint wei_value = msg_value;
        uint _tokens = 0;

        while (wei_value > 0 && (currentSection < saleSectionCount.length)) {
            if (saleSectionInvest[currentSection] >= wei_value) {
                _tokens += ONE_TOKEN.mul(wei_value).div(saleSectionPrice[currentSection]);
                saleSectionInvest[currentSection] -= wei_value;
                wei_value =0;
            } else {
                _tokens += ONE_TOKEN.mul(saleSectionInvest[currentSection]).div(saleSectionPrice[currentSection]);
                wei_value -= saleSectionInvest[currentSection];
                saleSectionInvest[currentSection] = 0;
            }
            if (saleSectionInvest[currentSection] <= 0) currentSection++;
        }

        require(_tokens >= MIN_SOLD_TOKENS);

        require(_transfer(this, msg_sender, _tokens));

        profits[msg_sender][1] = InvestorProfitData({
            start_balance:  investors[msg_sender].tokenBalance,
            end_balance:    investors[msg_sender].tokenBalance,
            status:         ProfitStatus.StartFixed
            });

        investors[msg_sender].icoInvest += (msg_value - wei_value);

        tokenSold      += _tokens;
        etherCollected += (msg_value - wei_value);

        if (saleSectionInvest[saleSectionInvest.length-1] == 0 ) {
            _finishICO();
        }

        if (wei_value > 0) {
            msg_sender.transfer(wei_value);
        }
    }

    function _finishICO() internal {
        require(contractIsWorking);
        require(mode == ContractMode.TokenSale);

        if (tokenSold >= SOFTCAP) {
            mode = ContractMode.DividendDistribution;
        } else {
            mode = ContractMode.UnderSoftCap;
        }

        investors[this].tokenBalance = 0;
        icoFinishTime                = now;
        totalSupply                  = tokenSold;

        emit ModeChanged(mode, investors[this].tokenBalance);
    }

    function finishICO() public grantOwner  {
        _finishICO();
    }

    function getInvestedAmount(address investor) public view returns(uint256) {
        return investors[investor].icoInvest;
    }

    function activateAddress(address investor, bool status) public grantDApp {
        require(contractIsWorking);
        require(mode == ContractMode.DividendDistribution);
        require((now - icoFinishTime) < KYC_REVIEW_PERIOD);
        investors[investor].activated = status;
    }

    function isAddressActivated(address investor) public view returns (bool) {
        return investors[investor].activated;
    }

    /*******
            Dividend Declaration Section
    *********/
    function declareDividend(uint256 profit_per_token) public grantDividendManager {
        dividendCandidate = profit_per_token;
    }

    function confirmDividend(uint256 profit_per_token) public grantOwner {
        require(contractIsWorking);
        require(dividendCandidate == profit_per_token);
        require(mode == ContractMode.DividendDistribution);

        dividends.push(dividendCandidate);
        emit DividendDeclared(uint32(dividends.length), dividendCandidate);
        dividendCandidate = 0;
    }

    function claimDividend() public {
        require(contractIsWorking);
        require(mode == ContractMode.DividendDistribution);
        require(investors[msg.sender].activated);

        InvestorProfitData storage current_profit;
        uint256 price_per_token;
        (current_profit, price_per_token) = fixDividendBalances(msg.sender, true);

        uint256 investorProfitWei =
                    (current_profit.start_balance < current_profit.end_balance ?
                     current_profit.start_balance : current_profit.end_balance ).div(ONE_TOKEN).mul(price_per_token);

        current_profit.status = ProfitStatus.Claimed;
        emit DividendClaimed(msg.sender, investorProfitWei);

        msg.sender.transfer(investorProfitWei);
    }

    function getDividendInfo() public view returns(uint256) {
        return dividends[dividends.length - 1];
    }

    /*******
                emit BuyBack
    ********/
    function setBuyBackPrice(uint256 token_buyback_price) public grantOwner {
        require(mode == ContractMode.DividendDistribution);
        buyBackPriceWei = token_buyback_price;
    }

    function buyback() public {
        require(contractIsWorking);
        require(mode == ContractMode.DividendDistribution);
        require(buyBackPriceWei > 0);

        uint256 token_amount = investors[msg.sender].tokenBalance;
        uint256 ether_amount = calcTokenToWei(token_amount);

        require(address(this).balance > ether_amount);

        if (transfer(this, token_amount)){
            emit BuyBack(msg.sender);
            msg.sender.transfer(ether_amount);
        }
    }

    /********
                Under SoftCap Section
    *********/
    function refund() public {
        require(contractIsWorking);
        require(mode == ContractMode.UnderSoftCap);
        require(investors[msg.sender].tokenBalance >0);
        require(investors[msg.sender].icoInvest>0);

        require (address(this).balance > investors[msg.sender].icoInvest);

        if (_transfer(msg.sender, this, investors[msg.sender].tokenBalance)){
            emit Refund(msg.sender, investors[msg.sender].icoInvest);
            msg.sender.transfer(investors[msg.sender].icoInvest);
        }
    }

    function destroyContract() public grantOwner {
        require(mode == ContractMode.UnderSoftCap);
        require((now - icoFinishTime) > REFUND_PERIOD);
        selfdestruct(owner);
    }
    /********
                Permission related
    ********/

    function transferOwnership(address new_owner) public grantOwner {
        require(contractIsWorking);
        require(new_owner != address(0));
        emit OwnershipTransferred(owner, new_owner);
        owner = new_owner;
    }

    function setBountyManager(address new_bounty_manager) public grantOwner {
        require(investors[new_bounty_manager].tokenBalance ==0);
        if (mode == ContractMode.Initial) {
            emit BountyManagerAssigned(bountyManager, new_bounty_manager);
            bountyManager = new_bounty_manager;
        } else if (mode == ContractMode.TokenSale) {
            emit BountyManagerAssigned(bountyManager, new_bounty_manager);
            address old_bounty_manager = bountyManager;
            bountyManager              = new_bounty_manager;
            require(_transfer(old_bounty_manager, new_bounty_manager, investors[old_bounty_manager].tokenBalance));
        } else {
            revert();
        }
    }

    function setDividendManager(address new_dividend_manager) public grantOwner {
        emit DividendManagerAssigned(dividendManager, new_dividend_manager);
        dividendManager = new_dividend_manager;
    }

    function setDApp(address new_dapp) public grantOwner {
        emit DAppAssigned(dApp, new_dapp);
        dApp = new_dapp;
    }



    /********
                Security and funds section
    ********/

    function transferBounty(address _to, uint256 _amount) public grantBountyManager {
        require(contractIsWorking);
        require(mode == ContractMode.DividendDistribution);
        if (_transfer(bountyManager, _to, _amount)) {
            emit BountyTransfered(_to, _amount);
        }
    }

    function burnTokens(uint256 tokenAmount) public grantOwner {
        require(contractIsWorking);
        require(mode == ContractMode.DividendDistribution);
        require(investors[msg.sender].tokenBalance > tokenAmount);

        investors[msg.sender].tokenBalance -= tokenAmount;
        totalSupply = totalSupply.sub(tokenAmount);
        emit BurnToken(tokenAmount);
    }

    function withdrawFunds(uint wei_value) grantOwner external {
        require(mode != ContractMode.UnderSoftCap);
        require(address(this).balance >= wei_value);

        emit FundsWithdrawal(msg.sender, wei_value);
        msg.sender.transfer(wei_value);
    }

    function addFunds() public payable grantOwner {
        require(contractIsWorking);
        emit FundsAdded(msg.sender, msg.value);
    }

    function pauseContract() public grantOwner {
        require(contractIsWorking);
        contractIsWorking = false;
        emit Handbrake(mode, contractIsWorking);
    }

    function restoreContract() public grantOwner {
        require(!contractIsWorking);
        contractIsWorking = true;
        emit Handbrake(mode, contractIsWorking);
    }

    /********
                Helper functions
    ********/
    function calcTokenToWei(uint256 token_amount) internal view returns (uint256) {
        return buyBackPriceWei.mul(token_amount).div(ONE_TOKEN);
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"destroyContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"profit_per_token","type":"uint256"}],"name":"confirmDividend","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"investor","type":"address"}],"name":"isAddressActivated","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getDividendInfo","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"wei_value","type":"uint256"}],"name":"withdrawFunds","outputs":[],"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":"investor","type":"address"},{"name":"status","type":"bool"}],"name":"activateAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"investor","type":"address"}],"name":"getInvestedAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"mode","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferBounty","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"buyBackPriceWei","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pauseContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"saleSectionDiscounts","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"etherCollected","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenSold","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentSection","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"saleSectionPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"new_wei_price","type":"uint256"}],"name":"setTokenPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"new_dapp","type":"address"}],"name":"setDApp","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"tokenAmount","type":"uint256"}],"name":"burnTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"startICO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"profit_per_token","type":"uint256"}],"name":"declareDividend","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"token_buyback_price","type":"uint256"}],"name":"setBuyBackPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"new_dividend_manager","type":"address"}],"name":"setDividendManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"restoreContract","outputs":[],"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":"","type":"uint256"}],"name":"saleSectionInvest","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"addFunds","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"ethAddress","type":"address"},{"name":"ethWEI","type":"uint256"}],"name":"investWithBitcoin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"finishICO","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"icoFinishTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"saleSectionCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"invest","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"claimDividend","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"new_owner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getCurrentTokenPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"buyback","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"new_bounty_manager","type":"address"}],"name":"setBountyManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"previousOwner","type":"address"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"previousBountyManager","type":"address"},{"indexed":false,"name":"newBountyManager","type":"address"}],"name":"BountyManagerAssigned","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"previousDividendManager","type":"address"},{"indexed":false,"name":"newDividendManager","type":"address"}],"name":"DividendManagerAssigned","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"previousDApp","type":"address"},{"indexed":false,"name":"newDApp","type":"address"}],"name":"DAppAssigned","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newMode","type":"uint8"},{"indexed":false,"name":"tokenBalance","type":"uint256"}],"name":"ModeChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"dividendID","type":"uint32"},{"indexed":false,"name":"profitPerToken","type":"uint256"}],"name":"DividendDeclared","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"investor","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"DividendClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"requestor","type":"address"}],"name":"BuyBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"investor","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Refund","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"current_mode","type":"uint8"},{"indexed":false,"name":"functioning","type":"bool"}],"name":"Handbrake","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"FundsAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"owner","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"FundsWithdrawal","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"recipient","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"BountyTransfered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newPrice","type":"uint256"}],"name":"PriceChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"BurnToken","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"}]

606060405260018060006101000a81548160ff02191690831515021790555060006004556000600a60146101000a81548160ff021916908360048111156200004357fe5b02179055506000600b556000600c556000600d556000600e60006101000a81548160ff021916908360ff160217905550606060405190810160405280601460ff1660ff168152602001600a60ff168152602001600560ff16815250600f906003620000b0929190620002a9565b5060806040519081016040528066038d7ea4c6800081526020016603ff2e795f500081526020016604380663abb8008152602001660470de4df82000815250601390600462000101929190620002f3565b50608060405190810160405280620f42406011028152602001620f42406014028152602001620f4240601402815260200162be6e00622f9b8001620f4240602f0203815250601790600462000158929190620002f3565b50608060405190810160405280601360006004811015156200017657fe5b0154601760006004811015156200018957fe5b015402815260200160136001600481101515620001a257fe5b015460176001600481101515620001b557fe5b015402815260200160136002600481101515620001ce57fe5b015460176002600481101515620001e157fe5b015402815260200160136003600481101515620001fa57fe5b0154601760036004811015156200020d57fe5b015402815250601b90600462000225929190620002f3565b506000601f5534156200023757600080fd5b33600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600580548060010182816200028e919062000338565b9160005260206000209001600080909190915055506200038f565b8260048101928215620002e0579160200282015b82811115620002df578251829060ff16905591602001919060010190620002bd565b5b509050620002ef919062000367565b5090565b826004810192821562000325579160200282015b828111156200032457825182559160200191906001019062000307565b5b50905062000334919062000367565b5090565b815481835581811511620003625781836000526020600020918201910162000361919062000367565b5b505050565b6200038c91905b80821115620003885760008160009055506001016200036e565b5090565b90565b614346806200039f6000396000f300606060405260043610610230576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461023a578063092a5cce146102c8578063095ea7b3146102dd5780630a9ffbf9146103375780631327290d1461035a578063139e23b5146103ab578063155dd5ee146103d457806318160ddd146103f75780631a9938aa146104205780631ef987c11461046457806323b872dd146104b1578063295a52121461052a5780632f7442bb14610561578063313ce567146105a357806333fd9397146105d2578063439766ce146105fb5780634a39f589146106105780634b2cbc9d14610647578063519ee19e14610670578063590e1ae3146106995780635cc3623a146106ae5780636244e756146106dd5780636a61e5fc146107145780636bcab76c146107375780636d1b229d1461077057806370a08231146107935780637fa8c158146107e057806385fa33eb146107f55780638b008f0f146108185780638bf605371461083b57806391147dfa1461087457806395d89b4114610889578063986c821c14610917578063a26759cb1461094e578063a7f9df3814610958578063a9059cbb1461099a578063c4561d61146109f4578063dd62ed3e14610a09578063e246ddba14610a75578063e29d3dcd14610a9e578063e8b5e51f14610ad5578063f0fc6bca14610adf578063f2fde38b14610af4578063f751758b14610b2d578063f8ec691114610b56578063ff66a30514610b6b575b610238610ba4565b005b341561024557600080fd5b61024d610bb0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561028d578082015181840152602081019050610272565b50505050905090810190601f1680156102ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102d357600080fd5b6102db610be9565b005b34156102e857600080fd5b61031d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610cc9565b604051808215151515815260200191505060405180910390f35b341561034257600080fd5b6103586004808035906020019091905050610d50565b005b341561036557600080fd5b610391600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610e86565b604051808215151515815260200191505060405180910390f35b34156103b657600080fd5b6103be610edf565b6040518082815260200191505060405180910390f35b34156103df57600080fd5b6103f56004808035906020019091905050610f09565b005b341561040257600080fd5b61040a61106e565b6040518082815260200191505060405180910390f35b341561042b57600080fd5b610462600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080351515906020019091905050611074565b005b341561046f57600080fd5b61049b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611192565b6040518082815260200191505060405180910390f35b34156104bc57600080fd5b610510600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506111de565b604051808215151515815260200191505060405180910390f35b341561053557600080fd5b61053d611692565b6040518082600481111561054d57fe5b60ff16815260200191505060405180910390f35b341561056c57600080fd5b6105a1600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506116a5565b005b34156105ae57600080fd5b6105b66117f2565b604051808260ff1660ff16815260200191505060405180910390f35b34156105dd57600080fd5b6105e56117f7565b6040518082815260200191505060405180910390f35b341561060657600080fd5b61060e6117fd565b005b341561061b57600080fd5b6106316004808035906020019091905050611900565b6040518082815260200191505060405180910390f35b341561065257600080fd5b61065a61191a565b6040518082815260200191505060405180910390f35b341561067b57600080fd5b610683611920565b6040518082815260200191505060405180910390f35b34156106a457600080fd5b6106ac611926565b005b34156106b957600080fd5b6106c1611be5565b604051808260ff1660ff16815260200191505060405180910390f35b34156106e857600080fd5b6106fe6004808035906020019091905050611bf8565b6040518082815260200191505060405180910390f35b341561071f57600080fd5b6107356004808035906020019091905050611c12565b005b341561074257600080fd5b61076e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611d7d565b005b341561077b57600080fd5b6107916004808035906020019091905050611ed6565b005b341561079e57600080fd5b6107ca600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612076565b6040518082815260200191505060405180910390f35b34156107eb57600080fd5b6107f36120c2565b005b341561080057600080fd5b61081660048080359060200190919050506124bc565b005b341561082357600080fd5b6108396004808035906020019091905050612522565b005b341561084657600080fd5b610872600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506125bc565b005b341561087f57600080fd5b610887612715565b005b341561089457600080fd5b61089c612818565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108dc5780820151818401526020810190506108c1565b50505050905090810190601f1680156109095780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561092257600080fd5b6109386004808035906020019091905050612851565b6040518082815260200191505060405180910390f35b61095661286b565b005b341561096357600080fd5b610998600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061294f565b005b34156109a557600080fd5b6109da600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506129b9565b604051808215151515815260200191505060405180910390f35b34156109ff57600080fd5b610a07612a4e565b005b3415610a1457600080fd5b610a5f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612ab4565b6040518082815260200191505060405180910390f35b3415610a8057600080fd5b610a88612b3b565b6040518082815260200191505060405180910390f35b3415610aa957600080fd5b610abf6004808035906020019091905050612b41565b6040518082815260200191505060405180910390f35b610add610ba4565b005b3415610aea57600080fd5b610af2612b5b565b005b3415610aff57600080fd5b610b2b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612d22565b005b3415610b3857600080fd5b610b40612ed2565b6040518082815260200191505060405180910390f35b3415610b6157600080fd5b610b69612f1d565b005b3415610b7657600080fd5b610ba2600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061308c565b005b610bae333461341c565b565b6040805190810160405280600b81526020017f416d62697420746f6b656e00000000000000000000000000000000000000000081525081565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c4557600080fd5b60026004811115610c5257fe5b600a60149054906101000a900460ff166004811115610c6d57fe5b141515610c7957600080fd5b624f1a00600b544203111515610c8e57600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff168015610d335750600160009054906101000a900460ff165b1515610d3e57600080fd5b610d488383613955565b905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610dac57600080fd5b600160009054906101000a900460ff161515610dc757600080fd5b80600454141515610dd757600080fd5b60036004811115610de457fe5b600a60149054906101000a900460ff166004811115610dff57fe5b141515610e0b57600080fd5b60058054806001018281610e1f91906142c9565b916000526020600020900160006004549091909150555060058054905063ffffffff167f516637ed9baa7f9024aefcf62593a2848a93212ecff77f0634489101ca0edd866004546040518082815260200191505060405180910390a2600060048190555050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff169050919050565b60006005600160058054905003815481101515610ef857fe5b906000526020600020900154905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f6557600080fd5b60026004811115610f7257fe5b600a60149054906101000a900460ff166004811115610f8d57fe5b14151515610f9a57600080fd5b803073ffffffffffffffffffffffffffffffffffffffff163110151515610fc057600080fd5b7f99a7b857d177a9f5962228b830aa679ade0f8465fbb4fef3a472a060c6d8f8e83382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a13373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561106b57600080fd5b50565b60005481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110d057600080fd5b600160009054906101000a900460ff1615156110eb57600080fd5b600360048111156110f857fe5b600a60149054906101000a900460ff16600481111561111357fe5b14151561111f57600080fd5b624f1a00600b54420310151561113457600080fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff1680156112885750600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b80156112a05750600160009054906101000a900460ff165b15156112ab57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156112e757600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154821115151561133857600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156113c357600080fd5b6113ce846000613a47565b50506113db836000613a47565b505061143282600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613df990919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506114cd82600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613e1290919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506115a282600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613df990919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600a60149054906101000a900460ff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561170157600080fd5b600160009054906101000a900460ff16151561171c57600080fd5b6003600481111561172957fe5b600a60149054906101000a900460ff16600481111561174457fe5b14151561175057600080fd5b61177d600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383613e30565b156117ee577fd390a1c7d57b1522e21e618a8eb0ccaf710ecc071802a46a33b75a86edd11bcd8282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b5050565b601281565b601f5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561185957600080fd5b600160009054906101000a900460ff16151561187457600080fd5b6000600160006101000a81548160ff0219169083151502179055507f8b6ba77db83ca6828303ce3a76183a5b2e5d3676098772c3a1776f22414c06d5600a60149054906101000a900460ff16600160009054906101000a900460ff16604051808360048111156118e057fe5b60ff168152602001821515151581526020019250505060405180910390a1565b600f8160048110151561190f57fe5b016000915090505481565b600d5481565b600c5481565b600160009054906101000a900460ff16151561194157600080fd5b6002600481111561194e57fe5b600a60149054906101000a900460ff16600481111561196957fe5b14151561197557600080fd5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541115156119c657600080fd5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154111515611a1757600080fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101543073ffffffffffffffffffffffffffffffffffffffff1631111515611a7e57600080fd5b611acb3330600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613e30565b15611be3573373ffffffffffffffffffffffffffffffffffffffff167fbb28353e4598c3b9199101a66e0989549b659a59a54d2c27fbb183f1932c8e6d600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546040518082815260200191505060405180910390a23373ffffffffffffffffffffffffffffffffffffffff166108fc600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549081150290604051600060405180830381858888f193505050501515611be257600080fd5b5b565b600e60009054906101000a900460ff1681565b601381600481101515611c0757fe5b016000915090505481565b6000806000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c7357600080fd5b600084111515611c8257600080fd5b60016004039250600091505b8260ff168260ff16111515611d4057600f8260ff16600481101515611caf57fe5b01546064039050611cdc6064611cce868461407190919063ffffffff16565b6140ac90919063ffffffff16565b60138360ff16600481101515611cee57fe5b018190555060178260ff16600481101515611d0557fe5b015460138360ff16600481101515611d1957fe5b015402601b8360ff16600481101515611d2e57fe5b01819055508180600101925050611c8e565b7fa6dc15bdb68da224c66db4b3838d9a2b205138e8cff6774e57d0af91e196d622846040518082815260200191505060405180910390a150505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611dd957600080fd5b7f53cbf36bca682794731284dc392e65f264608f1b5febeb3cb9cc54d8e3cfbcdb600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a180600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f3257600080fd5b600160009054906101000a900460ff161515611f4d57600080fd5b60036004811115611f5a57fe5b600a60149054906101000a900460ff166004811115611f7557fe5b141515611f8157600080fd5b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154111515611fd157600080fd5b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254039250508190555061203681600054613df990919063ffffffff16565b6000819055507f066548819fc4bd1208ea1c8608597593134d5661f459c2ef75cad30918af5a33816040518082815260200191505060405180910390a150565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561211e57600080fd5b600160009054906101000a900460ff16151561213957600080fd5b6000600481111561214657fe5b600a60149054906101000a900460ff16600481111561216157fe5b14151561216d57600080fd5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156121b557600080fd5b601260ff16600a0a620f424060680202600081905550601260ff16600a0a62be6e0002601260ff16600a0a622f9b800201601260ff16600a0a620f42406068020203600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550601260ff16600a0a622f9b800260026000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550601260ff16600a0a62be6e000260026000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555060026000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015460026000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015401600c819055506001600a60146101000a81548160ff0219169083600481111561241757fe5b02179055507fd276948ab5d173775ef24b296a707861e46a91d073413edaf92d2aab54e1e968600a60149054906101000a900460ff16600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154604051808360048111156124a057fe5b60ff1681526020018281526020019250505060405180910390a1565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561251857600080fd5b8060048190555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561257e57600080fd5b6003600481111561258b57fe5b600a60149054906101000a900460ff1660048111156125a657fe5b1415156125b257600080fd5b80601f8190555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561261857600080fd5b7f50128ce9e4dc550ba55ac18cfe0ff37e218bf52c0b09bc3c47cb951d334c82c0600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a180600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561277157600080fd5b600160009054906101000a900460ff1615151561278d57600080fd5b60018060006101000a81548160ff0219169083151502179055507f8b6ba77db83ca6828303ce3a76183a5b2e5d3676098772c3a1776f22414c06d5600a60149054906101000a900460ff16600160009054906101000a900460ff16604051808360048111156127f857fe5b60ff168152602001821515151581526020019250505060405180910390a1565b6040805190810160405280600481526020017f414d42540000000000000000000000000000000000000000000000000000000081525081565b601b8160048110151561286057fe5b016000915090505481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156128c757600080fd5b600160009054906101000a900460ff1615156128e257600080fd5b7f8fe10ae416f22f5e5220b0018a6c1d4ff534d6aa3a471f2a20cb7747fe63e5b93334604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156129ab57600080fd5b6129b5828261341c565b5050565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff168015612a235750600160009054906101000a900460ff165b1515612a2e57600080fd5b612a39336000613a47565b5050612a46338484613e30565b905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612aaa57600080fd5b612ab26140c7565b565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b5481565b601781600481101515612b5057fe5b016000915090505481565b6000806000600160009054906101000a900460ff161515612b7b57600080fd5b60036004811115612b8857fe5b600a60149054906101000a900460ff166004811115612ba357fe5b141515612baf57600080fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff161515612c0a57600080fd5b612c15336001613a47565b8093508194505050612c6782612c59601260ff16600a0a8660010154876000015410612c45578660010154612c4b565b86600001545b6140ac90919063ffffffff16565b61407190919063ffffffff16565b905060038360020160006101000a81548160ff02191690836003811115612c8a57fe5b02179055503373ffffffffffffffffffffffffffffffffffffffff167f5efa67896a23b651b741b525caacba039c00ca7853be3de8eb1f4269e8669c56826040518082815260200191505060405180910390a23373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515612d1d57600080fd5b505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d7e57600080fd5b600160009054906101000a900460ff161515612d9957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612dd557600080fd5b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a180600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006004600e60009054906101000a900460ff1660ff16101515612ef557600080fd5b6013600e60009054906101000a900460ff1660ff16600481101515612f1657fe5b0154905090565b600080600160009054906101000a900460ff161515612f3b57600080fd5b60036004811115612f4857fe5b600a60149054906101000a900460ff166004811115612f6357fe5b141515612f6f57600080fd5b6000601f54111515612f8057600080fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549150612fce82614292565b9050803073ffffffffffffffffffffffffffffffffffffffff1631111515612ff557600080fd5b612fff30836129b9565b15613088573373ffffffffffffffffffffffffffffffffffffffff167f6f07c608a0ebb47da1f3f735c99b0268845b0d3a0a41a63a05dbd2813dbbab1760405160405180910390a23373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561308757600080fd5b5b5050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156130ea57600080fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414151561313b57600080fd5b6000600481111561314857fe5b600a60149054906101000a900460ff16600481111561316357fe5b1415613268577ff126362af28517089aec565765c53cd52ac859d2d341975b24bec57292ff62d5600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a181600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613418565b6001600481111561327557fe5b600a60149054906101000a900460ff16600481111561329057fe5b1415613412577ff126362af28517089aec565765c53cd52ac859d2d341975b24bec57292ff62d5600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506134028183600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613e30565b151561340d57600080fd5b613417565b600080fd5b5b5050565b600080600160009054906101000a900460ff16151561343a57600080fd5b6004600e60009054906101000a900460ff1660ff1610151561345b57600080fd5b6001600481111561346857fe5b600a60149054906101000a900460ff16600481111561348357fe5b14151561348f57600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141515156134ec57600080fd5b829150600090505b60008211801561351657506004600e60009054906101000a900460ff1660ff16105b156136f95781601b600e60009054906101000a900460ff1660ff1660048110151561353d57fe5b01541015156135d1576135946013600e60009054906101000a900460ff1660ff1660048110151561356a57fe5b015461358684601260ff16600a0a61407190919063ffffffff16565b6140ac90919063ffffffff16565b8101905081601b600e60009054906101000a900460ff1660ff166004811015156135ba57fe5b016000828254039250508190555060009150613695565b6136416013600e60009054906101000a900460ff1660ff166004811015156135f557fe5b0154613633601b600e60009054906101000a900460ff1660ff1660048110151561361b57fe5b0154601260ff16600a0a61407190919063ffffffff16565b6140ac90919063ffffffff16565b81019050601b600e60009054906101000a900460ff1660ff1660048110151561366657fe5b0154820391506000601b600e60009054906101000a900460ff1660ff1660048110151561368f57fe5b01819055505b6000601b600e60009054906101000a900460ff1660ff166004811015156136b857fe5b01541115156136f457600e600081819054906101000a900460ff168092919060010191906101000a81548160ff021916908360ff160217905550505b6134f4565b601260ff16600a0a60c802811015151561371257600080fd5b61371d308583613e30565b151561372857600080fd5b606060405190810160405280600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548152602001600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548152602001600160038111156137d157fe5b815250600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600163ffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff0219169083600381111561386357fe5b0217905550905050818303600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254019250508190555080600c60008282540192505081905550818303600d600082825401925050819055506000601b60016004036004811015156138f457fe5b01541415613905576139046140c7565b5b600082111561394f578373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050151561394e57600080fd5b5b50505050565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60008060008060006005805490509250600183039150600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff16815260200190815260200160002094508515613af857600380811115613acd57fe5b8560020160009054906101000a900460ff166003811115613aea57fe5b14151515613af757600080fd5b5b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008463ffffffff1663ffffffff168152602001908152602001600020905060006003811115613b6357fe5b8560020160009054906101000a900460ff166003811115613b8057fe5b1415613cb857600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548560000181905550600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154856001018190555060028560020160006101000a81548160ff02191690836003811115613c3d57fe5b0217905550600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154816000018190555060018160020160006101000a81548160ff02191690836003811115613cae57fe5b0217905550613dcc565b60016003811115613cc557fe5b8560020160009054906101000a900460ff166003811115613ce257fe5b1415613dcb57600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154856001018190555060028560020160006101000a81548160ff02191690836003811115613d5457fe5b0217905550600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154816000018190555060018160020160006101000a81548160ff02191690836003811115613dc557fe5b02179055505b5b60058263ffffffff16815481101515613de157fe5b90600052602060002090015493505050509250929050565b6000828211151515613e0757fe5b818303905092915050565b6000808284019050838110151515613e2657fe5b8091505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515613e6d57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548211151515613ebe57600080fd5b613ec9836000613a47565b5050613f2082600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613df990919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550613fbb82600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613e1290919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080600084141561408657600091506140a5565b828402905082848281151561409757fe5b041415156140a157fe5b8091505b5092915050565b60008082848115156140ba57fe5b0490508091505092915050565b600160009054906101000a900460ff1615156140e257600080fd5b600160048111156140ef57fe5b600a60149054906101000a900460ff16600481111561410a57fe5b14151561411657600080fd5b601260ff16600a0a620f424060060202601260ff16600a0a62be6e0002601260ff16600a0a622f9b80020101600c54101515614175576003600a60146101000a81548160ff0219169083600481111561416b57fe5b021790555061419a565b6002600a60146101000a81548160ff0219169083600481111561419457fe5b02179055505b6000600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555042600b81905550600c546000819055507fd276948ab5d173775ef24b296a707861e46a91d073413edaf92d2aab54e1e968600a60149054906101000a900460ff16600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546040518083600481111561427657fe5b60ff1681526020018281526020019250505060405180910390a1565b60006142c2601260ff16600a0a6142b484601f5461407190919063ffffffff16565b6140ac90919063ffffffff16565b9050919050565b8154818355818115116142f0578183600052602060002091820191016142ef91906142f5565b5b505050565b61431791905b808211156143135760008160009055506001016142fb565b5090565b905600a165627a7a723058206796df0ee0073e0391f737dda3c2a4cb1e0bf833dc51df295323d831882124050029

Deployed Bytecode

0x606060405260043610610230576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde031461023a578063092a5cce146102c8578063095ea7b3146102dd5780630a9ffbf9146103375780631327290d1461035a578063139e23b5146103ab578063155dd5ee146103d457806318160ddd146103f75780631a9938aa146104205780631ef987c11461046457806323b872dd146104b1578063295a52121461052a5780632f7442bb14610561578063313ce567146105a357806333fd9397146105d2578063439766ce146105fb5780634a39f589146106105780634b2cbc9d14610647578063519ee19e14610670578063590e1ae3146106995780635cc3623a146106ae5780636244e756146106dd5780636a61e5fc146107145780636bcab76c146107375780636d1b229d1461077057806370a08231146107935780637fa8c158146107e057806385fa33eb146107f55780638b008f0f146108185780638bf605371461083b57806391147dfa1461087457806395d89b4114610889578063986c821c14610917578063a26759cb1461094e578063a7f9df3814610958578063a9059cbb1461099a578063c4561d61146109f4578063dd62ed3e14610a09578063e246ddba14610a75578063e29d3dcd14610a9e578063e8b5e51f14610ad5578063f0fc6bca14610adf578063f2fde38b14610af4578063f751758b14610b2d578063f8ec691114610b56578063ff66a30514610b6b575b610238610ba4565b005b341561024557600080fd5b61024d610bb0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561028d578082015181840152602081019050610272565b50505050905090810190601f1680156102ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102d357600080fd5b6102db610be9565b005b34156102e857600080fd5b61031d600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610cc9565b604051808215151515815260200191505060405180910390f35b341561034257600080fd5b6103586004808035906020019091905050610d50565b005b341561036557600080fd5b610391600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610e86565b604051808215151515815260200191505060405180910390f35b34156103b657600080fd5b6103be610edf565b6040518082815260200191505060405180910390f35b34156103df57600080fd5b6103f56004808035906020019091905050610f09565b005b341561040257600080fd5b61040a61106e565b6040518082815260200191505060405180910390f35b341561042b57600080fd5b610462600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080351515906020019091905050611074565b005b341561046f57600080fd5b61049b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611192565b6040518082815260200191505060405180910390f35b34156104bc57600080fd5b610510600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506111de565b604051808215151515815260200191505060405180910390f35b341561053557600080fd5b61053d611692565b6040518082600481111561054d57fe5b60ff16815260200191505060405180910390f35b341561056c57600080fd5b6105a1600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506116a5565b005b34156105ae57600080fd5b6105b66117f2565b604051808260ff1660ff16815260200191505060405180910390f35b34156105dd57600080fd5b6105e56117f7565b6040518082815260200191505060405180910390f35b341561060657600080fd5b61060e6117fd565b005b341561061b57600080fd5b6106316004808035906020019091905050611900565b6040518082815260200191505060405180910390f35b341561065257600080fd5b61065a61191a565b6040518082815260200191505060405180910390f35b341561067b57600080fd5b610683611920565b6040518082815260200191505060405180910390f35b34156106a457600080fd5b6106ac611926565b005b34156106b957600080fd5b6106c1611be5565b604051808260ff1660ff16815260200191505060405180910390f35b34156106e857600080fd5b6106fe6004808035906020019091905050611bf8565b6040518082815260200191505060405180910390f35b341561071f57600080fd5b6107356004808035906020019091905050611c12565b005b341561074257600080fd5b61076e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611d7d565b005b341561077b57600080fd5b6107916004808035906020019091905050611ed6565b005b341561079e57600080fd5b6107ca600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612076565b6040518082815260200191505060405180910390f35b34156107eb57600080fd5b6107f36120c2565b005b341561080057600080fd5b61081660048080359060200190919050506124bc565b005b341561082357600080fd5b6108396004808035906020019091905050612522565b005b341561084657600080fd5b610872600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506125bc565b005b341561087f57600080fd5b610887612715565b005b341561089457600080fd5b61089c612818565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108dc5780820151818401526020810190506108c1565b50505050905090810190601f1680156109095780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561092257600080fd5b6109386004808035906020019091905050612851565b6040518082815260200191505060405180910390f35b61095661286b565b005b341561096357600080fd5b610998600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190505061294f565b005b34156109a557600080fd5b6109da600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506129b9565b604051808215151515815260200191505060405180910390f35b34156109ff57600080fd5b610a07612a4e565b005b3415610a1457600080fd5b610a5f600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612ab4565b6040518082815260200191505060405180910390f35b3415610a8057600080fd5b610a88612b3b565b6040518082815260200191505060405180910390f35b3415610aa957600080fd5b610abf6004808035906020019091905050612b41565b6040518082815260200191505060405180910390f35b610add610ba4565b005b3415610aea57600080fd5b610af2612b5b565b005b3415610aff57600080fd5b610b2b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050612d22565b005b3415610b3857600080fd5b610b40612ed2565b6040518082815260200191505060405180910390f35b3415610b6157600080fd5b610b69612f1d565b005b3415610b7657600080fd5b610ba2600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061308c565b005b610bae333461341c565b565b6040805190810160405280600b81526020017f416d62697420746f6b656e00000000000000000000000000000000000000000081525081565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c4557600080fd5b60026004811115610c5257fe5b600a60149054906101000a900460ff166004811115610c6d57fe5b141515610c7957600080fd5b624f1a00600b544203111515610c8e57600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff168015610d335750600160009054906101000a900460ff165b1515610d3e57600080fd5b610d488383613955565b905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610dac57600080fd5b600160009054906101000a900460ff161515610dc757600080fd5b80600454141515610dd757600080fd5b60036004811115610de457fe5b600a60149054906101000a900460ff166004811115610dff57fe5b141515610e0b57600080fd5b60058054806001018281610e1f91906142c9565b916000526020600020900160006004549091909150555060058054905063ffffffff167f516637ed9baa7f9024aefcf62593a2848a93212ecff77f0634489101ca0edd866004546040518082815260200191505060405180910390a2600060048190555050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff169050919050565b60006005600160058054905003815481101515610ef857fe5b906000526020600020900154905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f6557600080fd5b60026004811115610f7257fe5b600a60149054906101000a900460ff166004811115610f8d57fe5b14151515610f9a57600080fd5b803073ffffffffffffffffffffffffffffffffffffffff163110151515610fc057600080fd5b7f99a7b857d177a9f5962228b830aa679ade0f8465fbb4fef3a472a060c6d8f8e83382604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a13373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561106b57600080fd5b50565b60005481565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110d057600080fd5b600160009054906101000a900460ff1615156110eb57600080fd5b600360048111156110f857fe5b600a60149054906101000a900460ff16600481111561111357fe5b14151561111f57600080fd5b624f1a00600b54420310151561113457600080fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160006101000a81548160ff0219169083151502179055505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549050919050565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff1680156112885750600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff165b80156112a05750600160009054906101000a900460ff165b15156112ab57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156112e757600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154821115151561133857600080fd5b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156113c357600080fd5b6113ce846000613a47565b50506113db836000613a47565b505061143282600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613df990919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506114cd82600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613e1290919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506115a282600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613df990919063ffffffff16565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600a60149054906101000a900460ff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561170157600080fd5b600160009054906101000a900460ff16151561171c57600080fd5b6003600481111561172957fe5b600a60149054906101000a900460ff16600481111561174457fe5b14151561175057600080fd5b61177d600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168383613e30565b156117ee577fd390a1c7d57b1522e21e618a8eb0ccaf710ecc071802a46a33b75a86edd11bcd8282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15b5050565b601281565b601f5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561185957600080fd5b600160009054906101000a900460ff16151561187457600080fd5b6000600160006101000a81548160ff0219169083151502179055507f8b6ba77db83ca6828303ce3a76183a5b2e5d3676098772c3a1776f22414c06d5600a60149054906101000a900460ff16600160009054906101000a900460ff16604051808360048111156118e057fe5b60ff168152602001821515151581526020019250505060405180910390a1565b600f8160048110151561190f57fe5b016000915090505481565b600d5481565b600c5481565b600160009054906101000a900460ff16151561194157600080fd5b6002600481111561194e57fe5b600a60149054906101000a900460ff16600481111561196957fe5b14151561197557600080fd5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541115156119c657600080fd5b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154111515611a1757600080fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101543073ffffffffffffffffffffffffffffffffffffffff1631111515611a7e57600080fd5b611acb3330600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613e30565b15611be3573373ffffffffffffffffffffffffffffffffffffffff167fbb28353e4598c3b9199101a66e0989549b659a59a54d2c27fbb183f1932c8e6d600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101546040518082815260200191505060405180910390a23373ffffffffffffffffffffffffffffffffffffffff166108fc600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101549081150290604051600060405180830381858888f193505050501515611be257600080fd5b5b565b600e60009054906101000a900460ff1681565b601381600481101515611c0757fe5b016000915090505481565b6000806000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c7357600080fd5b600084111515611c8257600080fd5b60016004039250600091505b8260ff168260ff16111515611d4057600f8260ff16600481101515611caf57fe5b01546064039050611cdc6064611cce868461407190919063ffffffff16565b6140ac90919063ffffffff16565b60138360ff16600481101515611cee57fe5b018190555060178260ff16600481101515611d0557fe5b015460138360ff16600481101515611d1957fe5b015402601b8360ff16600481101515611d2e57fe5b01819055508180600101925050611c8e565b7fa6dc15bdb68da224c66db4b3838d9a2b205138e8cff6774e57d0af91e196d622846040518082815260200191505060405180910390a150505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611dd957600080fd5b7f53cbf36bca682794731284dc392e65f264608f1b5febeb3cb9cc54d8e3cfbcdb600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a180600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f3257600080fd5b600160009054906101000a900460ff161515611f4d57600080fd5b60036004811115611f5a57fe5b600a60149054906101000a900460ff166004811115611f7557fe5b141515611f8157600080fd5b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154111515611fd157600080fd5b80600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254039250508190555061203681600054613df990919063ffffffff16565b6000819055507f066548819fc4bd1208ea1c8608597593134d5661f459c2ef75cad30918af5a33816040518082815260200191505060405180910390a150565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561211e57600080fd5b600160009054906101000a900460ff16151561213957600080fd5b6000600481111561214657fe5b600a60149054906101000a900460ff16600481111561216157fe5b14151561216d57600080fd5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156121b557600080fd5b601260ff16600a0a620f424060680202600081905550601260ff16600a0a62be6e0002601260ff16600a0a622f9b800201601260ff16600a0a620f42406068020203600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550601260ff16600a0a622f9b800260026000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550601260ff16600a0a62be6e000260026000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555060026000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015460026000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015401600c819055506001600a60146101000a81548160ff0219169083600481111561241757fe5b02179055507fd276948ab5d173775ef24b296a707861e46a91d073413edaf92d2aab54e1e968600a60149054906101000a900460ff16600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154604051808360048111156124a057fe5b60ff1681526020018281526020019250505060405180910390a1565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561251857600080fd5b8060048190555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561257e57600080fd5b6003600481111561258b57fe5b600a60149054906101000a900460ff1660048111156125a657fe5b1415156125b257600080fd5b80601f8190555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561261857600080fd5b7f50128ce9e4dc550ba55ac18cfe0ff37e218bf52c0b09bc3c47cb951d334c82c0600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a180600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561277157600080fd5b600160009054906101000a900460ff1615151561278d57600080fd5b60018060006101000a81548160ff0219169083151502179055507f8b6ba77db83ca6828303ce3a76183a5b2e5d3676098772c3a1776f22414c06d5600a60149054906101000a900460ff16600160009054906101000a900460ff16604051808360048111156127f857fe5b60ff168152602001821515151581526020019250505060405180910390a1565b6040805190810160405280600481526020017f414d42540000000000000000000000000000000000000000000000000000000081525081565b601b8160048110151561286057fe5b016000915090505481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156128c757600080fd5b600160009054906101000a900460ff1615156128e257600080fd5b7f8fe10ae416f22f5e5220b0018a6c1d4ff534d6aa3a471f2a20cb7747fe63e5b93334604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156129ab57600080fd5b6129b5828261341c565b5050565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff168015612a235750600160009054906101000a900460ff165b1515612a2e57600080fd5b612a39336000613a47565b5050612a46338484613e30565b905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612aaa57600080fd5b612ab26140c7565b565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b5481565b601781600481101515612b5057fe5b016000915090505481565b6000806000600160009054906101000a900460ff161515612b7b57600080fd5b60036004811115612b8857fe5b600a60149054906101000a900460ff166004811115612ba357fe5b141515612baf57600080fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160009054906101000a900460ff161515612c0a57600080fd5b612c15336001613a47565b8093508194505050612c6782612c59601260ff16600a0a8660010154876000015410612c45578660010154612c4b565b86600001545b6140ac90919063ffffffff16565b61407190919063ffffffff16565b905060038360020160006101000a81548160ff02191690836003811115612c8a57fe5b02179055503373ffffffffffffffffffffffffffffffffffffffff167f5efa67896a23b651b741b525caacba039c00ca7853be3de8eb1f4269e8669c56826040518082815260200191505060405180910390a23373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515612d1d57600080fd5b505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d7e57600080fd5b600160009054906101000a900460ff161515612d9957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612dd557600080fd5b7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a180600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006004600e60009054906101000a900460ff1660ff16101515612ef557600080fd5b6013600e60009054906101000a900460ff1660ff16600481101515612f1657fe5b0154905090565b600080600160009054906101000a900460ff161515612f3b57600080fd5b60036004811115612f4857fe5b600a60149054906101000a900460ff166004811115612f6357fe5b141515612f6f57600080fd5b6000601f54111515612f8057600080fd5b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549150612fce82614292565b9050803073ffffffffffffffffffffffffffffffffffffffff1631111515612ff557600080fd5b612fff30836129b9565b15613088573373ffffffffffffffffffffffffffffffffffffffff167f6f07c608a0ebb47da1f3f735c99b0268845b0d3a0a41a63a05dbd2813dbbab1760405160405180910390a23373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050151561308757600080fd5b5b5050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156130ea57600080fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414151561313b57600080fd5b6000600481111561314857fe5b600a60149054906101000a900460ff16600481111561316357fe5b1415613268577ff126362af28517089aec565765c53cd52ac859d2d341975b24bec57292ff62d5600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a181600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550613418565b6001600481111561327557fe5b600a60149054906101000a900460ff16600481111561329057fe5b1415613412577ff126362af28517089aec565765c53cd52ac859d2d341975b24bec57292ff62d5600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506134028183600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613e30565b151561340d57600080fd5b613417565b600080fd5b5b5050565b600080600160009054906101000a900460ff16151561343a57600080fd5b6004600e60009054906101000a900460ff1660ff1610151561345b57600080fd5b6001600481111561346857fe5b600a60149054906101000a900460ff16600481111561348357fe5b14151561348f57600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141515156134ec57600080fd5b829150600090505b60008211801561351657506004600e60009054906101000a900460ff1660ff16105b156136f95781601b600e60009054906101000a900460ff1660ff1660048110151561353d57fe5b01541015156135d1576135946013600e60009054906101000a900460ff1660ff1660048110151561356a57fe5b015461358684601260ff16600a0a61407190919063ffffffff16565b6140ac90919063ffffffff16565b8101905081601b600e60009054906101000a900460ff1660ff166004811015156135ba57fe5b016000828254039250508190555060009150613695565b6136416013600e60009054906101000a900460ff1660ff166004811015156135f557fe5b0154613633601b600e60009054906101000a900460ff1660ff1660048110151561361b57fe5b0154601260ff16600a0a61407190919063ffffffff16565b6140ac90919063ffffffff16565b81019050601b600e60009054906101000a900460ff1660ff1660048110151561366657fe5b0154820391506000601b600e60009054906101000a900460ff1660ff1660048110151561368f57fe5b01819055505b6000601b600e60009054906101000a900460ff1660ff166004811015156136b857fe5b01541115156136f457600e600081819054906101000a900460ff168092919060010191906101000a81548160ff021916908360ff160217905550505b6134f4565b601260ff16600a0a60c802811015151561371257600080fd5b61371d308583613e30565b151561372857600080fd5b606060405190810160405280600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548152602001600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548152602001600160038111156137d157fe5b815250600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600163ffffffff168152602001908152602001600020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff0219169083600381111561386357fe5b0217905550905050818303600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254019250508190555080600c60008282540192505081905550818303600d600082825401925050819055506000601b60016004036004811015156138f457fe5b01541415613905576139046140c7565b5b600082111561394f578373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050151561394e57600080fd5b5b50505050565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60008060008060006005805490509250600183039150600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff16815260200190815260200160002094508515613af857600380811115613acd57fe5b8560020160009054906101000a900460ff166003811115613aea57fe5b14151515613af757600080fd5b5b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008463ffffffff1663ffffffff168152602001908152602001600020905060006003811115613b6357fe5b8560020160009054906101000a900460ff166003811115613b8057fe5b1415613cb857600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548560000181905550600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154856001018190555060028560020160006101000a81548160ff02191690836003811115613c3d57fe5b0217905550600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154816000018190555060018160020160006101000a81548160ff02191690836003811115613cae57fe5b0217905550613dcc565b60016003811115613cc557fe5b8560020160009054906101000a900460ff166003811115613ce257fe5b1415613dcb57600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154856001018190555060028560020160006101000a81548160ff02191690836003811115613d5457fe5b0217905550600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154816000018190555060018160020160006101000a81548160ff02191690836003811115613dc557fe5b02179055505b5b60058263ffffffff16815481101515613de157fe5b90600052602060002090015493505050509250929050565b6000828211151515613e0757fe5b818303905092915050565b6000808284019050838110151515613e2657fe5b8091505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515613e6d57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001548211151515613ebe57600080fd5b613ec9836000613a47565b5050613f2082600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613df990919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550613fbb82600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154613e1290919063ffffffff16565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080600084141561408657600091506140a5565b828402905082848281151561409757fe5b041415156140a157fe5b8091505b5092915050565b60008082848115156140ba57fe5b0490508091505092915050565b600160009054906101000a900460ff1615156140e257600080fd5b600160048111156140ef57fe5b600a60149054906101000a900460ff16600481111561410a57fe5b14151561411657600080fd5b601260ff16600a0a620f424060060202601260ff16600a0a62be6e0002601260ff16600a0a622f9b80020101600c54101515614175576003600a60146101000a81548160ff0219169083600481111561416b57fe5b021790555061419a565b6002600a60146101000a81548160ff0219169083600481111561419457fe5b02179055505b6000600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555042600b81905550600c546000819055507fd276948ab5d173775ef24b296a707861e46a91d073413edaf92d2aab54e1e968600a60149054906101000a900460ff16600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001546040518083600481111561427657fe5b60ff1681526020018281526020019250505060405180910390a1565b60006142c2601260ff16600a0a6142b484601f5461407190919063ffffffff16565b6140ac90919063ffffffff16565b9050919050565b8154818355818115116142f0578183600052602060002091820191016142ef91906142f5565b5b505050565b61431791905b808211156143135760008160009055506001016142fb565b5090565b905600a165627a7a723058206796df0ee0073e0391f737dda3c2a4cb1e0bf833dc51df295323d831882124050029

Swarm Source

bzzr://6796df0ee0073e0391f737dda3c2a4cb1e0bf833dc51df295323d83188212405
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.