ETH Price: $2,414.97 (-0.26%)

Token

Wall Street Decentral Token (WALL)
 

Overview

Max Total Supply

3,024,706,268.2 WALL

Holders

81

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0 WALL

Value
$0.00
0xb8b875efa3d407276aa1dd5bf53d61d88b0ea0c0
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Creating a one-stop portal for the billions of people in the world to begin to interact in blockchain technology.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
WALLToken

Compiler Version
v0.4.23+commit.124ca40d

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

pragma solidity ^0.4.23;

// ----------------------------------------------------------------------------
//
// Wall Street Decentral (WALL) token public sale contract
//
// For details, please visit: http://WallStreetDecentral.com
//
//
// Written by Wall Street Decentral [email protected]
//
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------
//
// SafeMath
//
// ----------------------------------------------------------------------------

library SafeMath {

    function add(uint a, uint b) internal pure returns (uint c) {
        c = a + b;
        require(c >= a);
    }

    function sub(uint a, uint b) internal pure returns (uint c) {
        require(b <= a);
        c = a - b;
    }

    function mul(uint a, uint b) internal pure returns (uint c) {
        c = a * b;
        require(a == 0 || c / a == b);
    }

}

// ----------------------------------------------------------------------------
//
// Owned
//
// ----------------------------------------------------------------------------

contract Owned {

    address public owner;
    address public newOwner;

    mapping(address => bool) public isAdmin;

    event OwnershipTransferProposed(address indexed _from, address indexed _to);
    event OwnershipTransferred(address indexed _from, address indexed _to);
    event AdminChange(address indexed _admin, bool _status);

    modifier onlyOwner {require(msg.sender == owner); _;}
    modifier onlyAdmin {require(isAdmin[msg.sender]); _;}

    constructor() public {
        owner = msg.sender;
        isAdmin[owner] = true;
    }

    function transferOwnership(address _newOwner) public onlyOwner {
        require(_newOwner != address(0x0));
        emit OwnershipTransferProposed(owner, _newOwner);
        newOwner = _newOwner;
    }

    function acceptOwnership() public {
        require(msg.sender == newOwner);
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }

    function addAdmin(address _a) public onlyOwner {
        require(isAdmin[_a] == false);
        isAdmin[_a] = true;
        emit AdminChange(_a, true);
    }

    function removeAdmin(address _a) public onlyOwner {
        require(isAdmin[_a] == true);
        isAdmin[_a] = false;
        emit AdminChange(_a, false);
    }

}


// ----------------------------------------------------------------------------
//
// Wallet
//
// ----------------------------------------------------------------------------

contract Wallet is Owned {

    address public wallet;

    event WalletUpdated(address newWallet);

    constructor() public {
        wallet = owner;
    }

    function setWallet(address _wallet) public onlyOwner {
        require(_wallet != address(0x0));
        wallet = _wallet;
        emit WalletUpdated(_wallet);
    }

}


// ----------------------------------------------------------------------------
//
// ERC20Interface
//
// ----------------------------------------------------------------------------

contract ERC20Interface {

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

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

}


// ----------------------------------------------------------------------------
//
// ERC20 Token Standard
//
// ----------------------------------------------------------------------------

contract ERC20Token is ERC20Interface, Owned {

    using SafeMath for uint;

    uint public tokensIssuedTotal;
    mapping(address => uint) balances;
    mapping(address => mapping (address => uint)) allowed;

    function totalSupply() public view returns (uint) {
        return tokensIssuedTotal;
    }
    // Includes BOTH locked AND unlocked tokens

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

    function transfer(address _to, uint _amount) public returns (bool) {
        require(_to != 0x0);
        balances[msg.sender] = balances[msg.sender].sub(_amount);
        balances[_to] = balances[_to].add(_amount);
        emit Transfer(msg.sender, _to, _amount);
        return true;
    }

    function approve(address _spender, uint _amount) public returns (bool) {
        allowed[msg.sender][_spender] = _amount;
        emit Approval(msg.sender, _spender, _amount);
        return true;
    }

    function transferFrom(address _from, address _to, uint _amount) public returns (bool) {
        require(_to != 0x0);
        balances[_from] = balances[_from].sub(_amount);
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_amount);
        balances[_to] = balances[_to].add(_amount);
        emit Transfer(_from, _to, _amount);
        return true;
    }

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

}


// ----------------------------------------------------------------------------
//
// LockSlots
//
// ----------------------------------------------------------------------------

contract LockSlots is ERC20Token {

    using SafeMath for uint;

    uint public constant LOCK_SLOTS = 5;
    mapping(address => uint[LOCK_SLOTS]) public lockTerm;
    mapping(address => uint[LOCK_SLOTS]) public lockAmnt;
    mapping(address => bool) public mayHaveLockedTokens;

    event RegisteredLockedTokens(address indexed account, uint indexed idx, uint tokens, uint term);

    function registerLockedTokens(address _account, uint _tokens, uint _term) internal returns (uint idx) {
        require(_term > now, "lock term must be in the future");

        // find a slot (clean up while doing this)
        // use either the existing slot with the exact same term,
        // of which there can be at most one, or the first empty slot
        idx = 9999;
        uint[LOCK_SLOTS] storage term = lockTerm[_account];
        uint[LOCK_SLOTS] storage amnt = lockAmnt[_account];
        for (uint i; i < LOCK_SLOTS; i++) {
            if (term[i] < now) {
                term[i] = 0;
                amnt[i] = 0;
                if (idx == 9999) idx = i;
            }
            if (term[i] == _term) idx = i;
        }

        // fail if no slot was found
        require(idx != 9999, "registerLockedTokens: no available slot found");

        // register locked tokens
        if (term[idx] == 0) term[idx] = _term;
        amnt[idx] = amnt[idx].add(_tokens);
        mayHaveLockedTokens[_account] = true;
        emit RegisteredLockedTokens(_account, idx, _tokens, _term);
    }

    // public view functions

    function lockedTokens(address _account) public view returns (uint) {
        if (!mayHaveLockedTokens[_account]) return 0;
        return pNumberOfLockedTokens(_account);
    }

    function unlockedTokens(address _account) public view returns (uint) {
        return balances[_account].sub(lockedTokens(_account));
    }

    function isAvailableLockSlot(address _account, uint _term) public view returns (bool) {
        if (!mayHaveLockedTokens[_account]) return true;
        if (_term < now) return true;
        uint[LOCK_SLOTS] storage term = lockTerm[_account];
        for (uint i; i < LOCK_SLOTS; i++) {
            if (term[i] < now || term[i] == _term) return true;
        }
        return false;
    }

    // internal and private functions

    function unlockedTokensInternal(address _account) internal returns (uint) {
        // updates mayHaveLockedTokens if necessary
        if (!mayHaveLockedTokens[_account]) return balances[_account];
        uint locked = pNumberOfLockedTokens(_account);
        if (locked == 0) mayHaveLockedTokens[_account] = false;
        return balances[_account].sub(locked);
    }

    function pNumberOfLockedTokens(address _account) private view returns (uint locked) {
        uint[LOCK_SLOTS] storage term = lockTerm[_account];
        uint[LOCK_SLOTS] storage amnt = lockAmnt[_account];
        for (uint i; i < LOCK_SLOTS; i++) {
            if (term[i] >= now) locked = locked.add(amnt[i]);
        }
    }

}


// ----------------------------------------------------------------------------
//
// WALLIcoDates
//
// ----------------------------------------------------------------------------

contract WALLIcoDates is Owned {

    uint public dateMainStart = 1619859600; // 1-MAY-2021 09:00 GMT +0 
    uint public dateMainEnd   = 1620464400; // 8-MAY-2021 09:00 GMT +0 

    uint public constant DATE_LIMIT = 1620464400 + 180 days;

    event IcoDateUpdated(uint id, uint unixts);

    // check dates

    modifier checkDateOrder {
      _ ;
      require ( dateMainStart < dateMainEnd ) ;
      require ( dateMainEnd < DATE_LIMIT ) ;
    }

    constructor() public checkDateOrder() {
        require(now < dateMainStart);
    }

    // set ico dates

    function setDateMainStart(uint _unixts) public onlyOwner checkDateOrder {
        require(now < _unixts && now < dateMainStart);
        dateMainStart = _unixts;
        emit IcoDateUpdated(1, _unixts);
    }

    function setDateMainEnd(uint _unixts) public onlyOwner checkDateOrder {
        require(now < _unixts && now < dateMainEnd);
        dateMainEnd = _unixts;
        emit IcoDateUpdated(2, _unixts);
    }

    // where are we? Passed first day or not?

    function isMainFirstDay() public view returns (bool) {
        if (now > dateMainStart && now <= dateMainStart + 1 days) return true;
        return false;
    }

    function isMain() public view returns (bool) {
        if (now > dateMainStart && now < dateMainEnd) return true;
        return false;
    }

}

// ----------------------------------------------------------------------------
//
// WALL public token sale
//
// ----------------------------------------------------------------------------

contract WALLToken is ERC20Token, Wallet, LockSlots, WALLIcoDates {

    // Utility variable

    uint constant E18 = 10**18;

    // Basic token data

    string public constant name = "Wall Street Decentral Token";
    string public constant symbol = "WALL";
    uint8 public constant decimals = 18;

    // Token number of possible tokens in existance 3333333333

    uint public constant MAX_TOTAL_TOKEN_SUPPLY = 3333333333 * E18;


    // ICO parameters
    // Opening ETH Rate: USD$1827.28
    // Therefore, 1 ETH = 45682 WALL


    uint public tokensPerEth = 45682;

    // USD$2,000,000/1827.28 = 1094.523006 ether
    // 1094.523006 ether/2551 addresses = 0.429056450 ether per address for the first 24 hours
    // 65,999,999,988 MainNet Coins / 19.79999999838 = 3,333,333,333 Tokens Total Supply 
    uint public constant MINIMUM_CONTRIBUTION = 0.2 ether;
    uint public constant MAXIMUM_FIRST_DAY_CONTRIBUTION = 0.429056450 ether;

    uint public constant TOKEN_MAIN_CAP = 50000000 * E18;

    bool public tokensTradeable;

    // whitelisting

    mapping(address => bool) public whitelist;
    uint public numberWhitelisted;

    // track main sale

    uint public tokensMain;
    mapping(address => uint) public balancesMain;

    uint public totalEthContributed;
    mapping(address => uint) public ethContributed;

    // tracking tokens minted

    uint public tokensMinted;
    mapping(address => uint) public balancesMinted;
    mapping(address => mapping(uint => uint)) public balancesMintedByType;

    // migration variable

    bool public isMigrationPhaseOpen;

    // Events ---------------------------------------------

    event UpdatedTokensPerEth(uint tokensPerEth);
    event Whitelisted(address indexed account, uint countWhitelisted);
    event TokensMinted(uint indexed mintType, address indexed account, uint tokens, uint term);
    event RegisterContribution(address indexed account, uint tokensIssued, uint ethContributed, uint ethReturned);
    event TokenExchangeRequested(address indexed account, uint tokens);

    // Basic Functions ------------------------------------

    constructor() public {}

    function () public payable {
        buyTokens();
    }

    // Information functions


    function availableToMint() public view returns (uint) {
        return MAX_TOTAL_TOKEN_SUPPLY.sub(TOKEN_MAIN_CAP).sub(tokensMinted);
    }

    function firstDayTokenLimit() public view returns (uint) {
        return ethToTokens(MAXIMUM_FIRST_DAY_CONTRIBUTION);
    }

    function ethToTokens(uint _eth) public view returns (uint tokens) {
        tokens = _eth.mul(tokensPerEth);
    }

    function tokensToEth(uint _tokens) public view returns (uint eth) {
        eth = _tokens / tokensPerEth;
    }

    // Admin functions

    function addToWhitelist(address _account) public onlyAdmin {
        pWhitelist(_account);
    }

    function addToWhitelistMultiple(address[] _addresses) public onlyAdmin {
        for (uint i; i < _addresses.length; i++) {
            pWhitelist(_addresses[i]);
        }
    }

    function pWhitelist(address _account) internal {
        if (whitelist[_account]) return;
        whitelist[_account] = true;
        numberWhitelisted = numberWhitelisted.add(1);
        emit Whitelisted(_account, numberWhitelisted);
    }

    // Owner functions ------------------------------------

    function updateTokensPerEth(uint _tokens_per_eth) public onlyOwner {
        require(now < dateMainStart);
        tokensPerEth = _tokens_per_eth;
        emit UpdatedTokensPerEth(tokensPerEth);
    }

    // Only owner can make tokens tradable at any time, or if the date is
    // greater than the end of the mainsale date plus 20 weeks, allow
    // any caller to make tokensTradeable.

    function makeTradeable() public {
        require(msg.sender == owner || now > dateMainEnd + 20 weeks);
        tokensTradeable = true;
    }

    function openMigrationPhase() public onlyOwner {
        require(now > dateMainEnd);
        isMigrationPhaseOpen = true;
    }

    // Token minting --------------------------------------

    function mintTokens(uint _mint_type, address _account, uint _tokens) public onlyOwner {
        pMintTokens(_mint_type, _account, _tokens, 0);
    }

    function mintTokensMultiple(uint _mint_type, address[] _accounts, uint[] _tokens) public onlyOwner {
        require(_accounts.length == _tokens.length);
        for (uint i; i < _accounts.length; i++) {
            pMintTokens(_mint_type, _accounts[i], _tokens[i], 0);
        }
    }

    function mintTokensLocked(uint _mint_type, address _account, uint _tokens, uint _term) public onlyOwner {
        pMintTokens(_mint_type, _account, _tokens, _term);
    }

    function mintTokensLockedMultiple(uint _mint_type, address[] _accounts, uint[] _tokens, uint[] _terms) public onlyOwner {
        require(_accounts.length == _tokens.length);
        require(_accounts.length == _terms.length);
        for (uint i; i < _accounts.length; i++) {
            pMintTokens(_mint_type, _accounts[i], _tokens[i], _terms[i]);
        }
    }

    function pMintTokens(uint _mint_type, address _account, uint _tokens, uint _term) private {
        require(whitelist[_account]);
        require(_account != 0x0);
        require(_tokens > 0);
        require(_tokens <= availableToMint(), "not enough tokens available to mint");
        require(_term == 0 || _term > now, "either without lock term, or lock term must be in the future");

        // register locked tokens (will throw if no slot is found)
        if (_term > 0) registerLockedTokens(_account, _tokens, _term);

        // update
        balances[_account] = balances[_account].add(_tokens);
        balancesMinted[_account] = balancesMinted[_account].add(_tokens);
        balancesMintedByType[_account][_mint_type] = balancesMintedByType[_account][_mint_type].add(_tokens);
        tokensMinted = tokensMinted.add(_tokens);
        tokensIssuedTotal = tokensIssuedTotal.add(_tokens);

        // log event
        emit Transfer(0x0, _account, _tokens);
        emit TokensMinted(_mint_type, _account, _tokens, _term);
    }

    // Main sale ------------------------------------------

    function buyTokens() private {

        require(isMain());
        require(msg.value >= MINIMUM_CONTRIBUTION);
        require(whitelist[msg.sender]);

        uint tokens_available = TOKEN_MAIN_CAP.sub(tokensMain);

        // adjust tokens_available on first day, if necessary
        if (isMainFirstDay()) {
            uint tokens_available_first_day = firstDayTokenLimit().sub(balancesMain[msg.sender]);
            if (tokens_available_first_day < tokens_available) {
                tokens_available = tokens_available_first_day;
            }
        }

        require (tokens_available > 0);

        uint tokens_requested = ethToTokens(msg.value);
        uint tokens_issued = tokens_requested;

        uint eth_contributed = msg.value;
        uint eth_returned;

        if (tokens_requested > tokens_available) {
            tokens_issued = tokens_available;
            eth_returned = tokensToEth(tokens_requested.sub(tokens_available));
            eth_contributed = msg.value.sub(eth_returned);
        }

        balances[msg.sender] = balances[msg.sender].add(tokens_issued);
        balancesMain[msg.sender] = balancesMain[msg.sender].add(tokens_issued);
        tokensMain = tokensMain.add(tokens_issued);
        tokensIssuedTotal = tokensIssuedTotal.add(tokens_issued);

        ethContributed[msg.sender] = ethContributed[msg.sender].add(eth_contributed);
        totalEthContributed = totalEthContributed.add(eth_contributed);

        // ether transfers
        if (eth_returned > 0) msg.sender.transfer(eth_returned);
        wallet.transfer(eth_contributed);

        // log
        emit Transfer(0x0, msg.sender, tokens_issued);
        emit RegisterContribution(msg.sender, tokens_issued, eth_contributed, eth_returned);
    }

    // Token exchange / migration to new platform ---------

    function requestTokenExchangeMax() public {
        requestTokenExchange(unlockedTokensInternal(msg.sender));
    }

    function requestTokenExchange(uint _tokens) public {
        require(isMigrationPhaseOpen);
        require(_tokens > 0 && _tokens <= unlockedTokensInternal(msg.sender));
        balances[msg.sender] = balances[msg.sender].sub(_tokens);
        tokensIssuedTotal = tokensIssuedTotal.sub(_tokens);
        emit Transfer(msg.sender, 0x0, _tokens);
        emit TokenExchangeRequested(msg.sender, _tokens);
    }

    // ERC20 functions -------------------

    /* Transfer out any accidentally sent ERC20 tokens */

    function transferAnyERC20Token(address _token_address, uint _amount) public onlyOwner returns (bool success) {
        return ERC20Interface(_token_address).transfer(owner, _amount);
    }

    /* Override "transfer" */

    function transfer(address _to, uint _amount) public returns (bool success) {
        require(tokensTradeable);
        require(_amount <= unlockedTokensInternal(msg.sender));
        return super.transfer(_to, _amount);
    }

    /* Override "transferFrom" */

    function transferFrom(address _from, address _to, uint _amount) public returns (bool success) {
        require(tokensTradeable);
        require(_amount <= unlockedTokensInternal(_from));
        return super.transferFrom(_from, _to, _amount);
    }

    /* Multiple token transfers from one address to save gas */

    function transferMultiple(address[] _addresses, uint[] _amounts) external {
        require(_addresses.length <= 100);
        require(_addresses.length == _amounts.length);

        // do the transfers
        for (uint j; j < _addresses.length; j++) {
            transfer(_addresses[j], _amounts[j]);
        }

    }

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"DATE_LIMIT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_a","type":"address"}],"name":"removeAdmin","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":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAX_TOTAL_TOKEN_SUPPLY","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"LOCK_SLOTS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balancesMinted","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"dateMainEnd","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAXIMUM_FIRST_DAY_CONTRIBUTION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_mint_type","type":"uint256"},{"name":"_account","type":"address"},{"name":"_tokens","type":"uint256"},{"name":"_term","type":"uint256"}],"name":"mintTokensLocked","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_mint_type","type":"uint256"},{"name":"_accounts","type":"address[]"},{"name":"_tokens","type":"uint256[]"},{"name":"_terms","type":"uint256[]"}],"name":"mintTokensLockedMultiple","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"lockTerm","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"wallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_MAIN_CAP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"lockedTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"openMigrationPhase","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isMain","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isMainFirstDay","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberWhitelisted","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensMinted","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_a","type":"address"}],"name":"addAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"availableToMint","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokens","type":"uint256"}],"name":"tokensToEth","outputs":[{"name":"eth","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"}],"name":"unlockedTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokens","type":"uint256"}],"name":"requestTokenExchange","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokensIssuedTotal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_unixts","type":"uint256"}],"name":"setDateMainEnd","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"balancesMintedByType","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MINIMUM_CONTRIBUTION","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_mint_type","type":"uint256"},{"name":"_account","type":"address"},{"name":"_tokens","type":"uint256"}],"name":"mintTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balancesMain","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addresses","type":"address[]"}],"name":"addToWhitelistMultiple","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"requestTokenExchangeMax","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokens_per_eth","type":"uint256"}],"name":"updateTokensPerEth","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"makeTradeable","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addresses","type":"address[]"},{"name":"_amounts","type":"uint256[]"}],"name":"transferMultiple","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_eth","type":"uint256"}],"name":"ethToTokens","outputs":[{"name":"tokens","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"dateMainStart","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_unixts","type":"uint256"}],"name":"setDateMainStart","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_mint_type","type":"uint256"},{"name":"_accounts","type":"address[]"},{"name":"_tokens","type":"uint256[]"}],"name":"mintTokensMultiple","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isMigrationPhaseOpen","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalEthContributed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensTradeable","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensPerEth","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_account","type":"address"},{"name":"_term","type":"uint256"}],"name":"isAvailableLockSlot","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_token_address","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokensMain","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":false,"inputs":[{"name":"_wallet","type":"address"}],"name":"setWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"lockAmnt","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_account","type":"address"}],"name":"addToWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"firstDayTokenLimit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"mayHaveLockedTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"ethContributed","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"tokensPerEth","type":"uint256"}],"name":"UpdatedTokensPerEth","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"},{"indexed":false,"name":"countWhitelisted","type":"uint256"}],"name":"Whitelisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"mintType","type":"uint256"},{"indexed":true,"name":"account","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"},{"indexed":false,"name":"term","type":"uint256"}],"name":"TokensMinted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"},{"indexed":false,"name":"tokensIssued","type":"uint256"},{"indexed":false,"name":"ethContributed","type":"uint256"},{"indexed":false,"name":"ethReturned","type":"uint256"}],"name":"RegisterContribution","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"TokenExchangeRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"id","type":"uint256"},{"indexed":false,"name":"unixts","type":"uint256"}],"name":"IcoDateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"},{"indexed":true,"name":"idx","type":"uint256"},{"indexed":false,"name":"tokens","type":"uint256"},{"indexed":false,"name":"term","type":"uint256"}],"name":"RegisteredLockedTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newWallet","type":"address"}],"name":"WalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"OwnershipTransferProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_admin","type":"address"},{"indexed":false,"name":"_status","type":"bool"}],"name":"AdminChange","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"}]

608060405263608d1890600a556360965310600b5561b272600c553480156200002757600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600260008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a54421015156200015457600080fd5b600b54600a541015156200016757600080fd5b636183a110600b541015156200017c57600080fd5b614488806200018c6000396000f30060806040526004361061030c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063068ae02b1461031657806306fdde0314610341578063095ea7b3146103d15780631785f53c1461043657806318160ddd1461047957806323b872dd146104a457806324d7806c14610529578063282c3cf7146105845780632c2622db146105af578063313ce567146105da57806332e785af1461060b5780633bba340c146106625780633deaf6d41461068d5780634104044b146106b857806343e7e4da146107195780634cd2c47b1461080f578063521eb27314610870578063531163c1146108c75780635eb7413a146108f25780635f538fd414610949578063604269d114610960578063632e082a1461098f5780636b8f155a146109be5780636de9f32b146109e95780637048027514610a1457806370a0823114610a5757806374601c3c14610aae57806379ba509714610ad957806379ca9ad414610af0578063836115fe14610b31578063837b68c814610b8857806384ef077814610bb5578063897e47f514610be05780638d006d1114610c0d5780638d0bba0314610c6e5780638d6819be14610c995780638da5cb5b14610cf05780638e2a219214610d475780638fe6677d14610d9e57806395d89b4114610e045780639981bd6114610e945780639b19251a14610eab5780639ea407be14610f06578063a03fb4c014610f33578063a05fccef14610f4a578063a4c8932214610f9d578063a9059cbb14610fde578063aa63dea414611043578063ad4018421461106e578063c1b728b51461109b578063c408efba1461114e578063cb2822531461117d578063cbdc5aa4146111a8578063cbdd69b5146111d7578063d4ee1d9014611202578063d8690c2214611259578063dc39d06d146112be578063dd2d4ea014611323578063dd62ed3e1461134e578063deaa59df146113c5578063e184d8c814611408578063e43252d714611469578063e74f8eff146114ac578063f2fde38b146114d7578063f49e1e391461151a578063f96f5b3514611575575b6103146115cc565b005b34801561032257600080fd5b5061032b611acf565b6040518082815260200191505060405180910390f35b34801561034d57600080fd5b50610356611ad7565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561039657808201518184015260208101905061037b565b50505050905090810190601f1680156103c35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103dd57600080fd5b5061041c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b10565b604051808215151515815260200191505060405180910390f35b34801561044257600080fd5b50610477600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c02565b005b34801561048557600080fd5b5061048e611d6a565b6040518082815260200191505060405180910390f35b3480156104b057600080fd5b5061050f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611d74565b604051808215151515815260200191505060405180910390f35b34801561053557600080fd5b5061056a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dbc565b604051808215151515815260200191505060405180910390f35b34801561059057600080fd5b50610599611ddc565b6040518082815260200191505060405180910390f35b3480156105bb57600080fd5b506105c4611dee565b6040518082815260200191505060405180910390f35b3480156105e657600080fd5b506105ef611df3565b604051808260ff1660ff16815260200191505060405180910390f35b34801561061757600080fd5b5061064c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611df8565b6040518082815260200191505060405180910390f35b34801561066e57600080fd5b50610677611e10565b6040518082815260200191505060405180910390f35b34801561069957600080fd5b506106a2611e16565b6040518082815260200191505060405180910390f35b3480156106c457600080fd5b5061071760048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611e22565b005b34801561072557600080fd5b5061080d60048036038101908080359060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611e8f565b005b34801561081b57600080fd5b5061085a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f7b565b6040518082815260200191505060405180910390f35b34801561087c57600080fd5b50610885611fa2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108d357600080fd5b506108dc611fc8565b6040518082815260200191505060405180910390f35b3480156108fe57600080fd5b50610933600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fda565b6040518082815260200191505060405180910390f35b34801561095557600080fd5b5061095e612049565b005b34801561096c57600080fd5b506109756120d1565b604051808215151515815260200191505060405180910390f35b34801561099b57600080fd5b506109a46120fb565b604051808215151515815260200191505060405180910390f35b3480156109ca57600080fd5b506109d361212b565b6040518082815260200191505060405180910390f35b3480156109f557600080fd5b506109fe612131565b6040518082815260200191505060405180910390f35b348015610a2057600080fd5b50610a55600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612137565b005b348015610a6357600080fd5b50610a98600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061229f565b6040518082815260200191505060405180910390f35b348015610aba57600080fd5b50610ac36122e8565b6040518082815260200191505060405180910390f35b348015610ae557600080fd5b50610aee612332565b005b348015610afc57600080fd5b50610b1b6004803603810190808035906020019092919050505061248f565b6040518082815260200191505060405180910390f35b348015610b3d57600080fd5b50610b72600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124a6565b6040518082815260200191505060405180910390f35b348015610b9457600080fd5b50610bb360048036038101908080359060200190929190505050612509565b005b348015610bc157600080fd5b50610bca612698565b6040518082815260200191505060405180910390f35b348015610bec57600080fd5b50610c0b6004803603810190808035906020019092919050505061269e565b005b348015610c1957600080fd5b50610c58600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612784565b6040518082815260200191505060405180910390f35b348015610c7a57600080fd5b50610c836127a9565b6040518082815260200191505060405180910390f35b348015610ca557600080fd5b50610cee60048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506127b5565b005b348015610cfc57600080fd5b50610d05612822565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d5357600080fd5b50610d88600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612847565b6040518082815260200191505060405180910390f35b348015610daa57600080fd5b50610e026004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061285f565b005b348015610e1057600080fd5b50610e196128f4565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e59578082015181840152602081019050610e3e565b50505050905090810190601f168015610e865780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610ea057600080fd5b50610ea961292d565b005b348015610eb757600080fd5b50610eec600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612940565b604051808215151515815260200191505060405180910390f35b348015610f1257600080fd5b50610f3160048036038101908080359060200190929190505050612960565b005b348015610f3f57600080fd5b50610f48612a0e565b005b348015610f5657600080fd5b50610f9b600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050612a97565b005b348015610fa957600080fd5b50610fc860048036038101908080359060200190929190505050612b29565b6040518082815260200191505060405180910390f35b348015610fea57600080fd5b50611029600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612b47565b604051808215151515815260200191505060405180910390f35b34801561104f57600080fd5b50611058612b8d565b6040518082815260200191505060405180910390f35b34801561107a57600080fd5b5061109960048036038101908080359060200190929190505050612b93565b005b3480156110a757600080fd5b5061114c600480360381019080803590602001909291908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050612c79565b005b34801561115a57600080fd5b50611163612d3e565b604051808215151515815260200191505060405180910390f35b34801561118957600080fd5b50611192612d51565b6040518082815260200191505060405180910390f35b3480156111b457600080fd5b506111bd612d57565b604051808215151515815260200191505060405180910390f35b3480156111e357600080fd5b506111ec612d6a565b6040518082815260200191505060405180910390f35b34801561120e57600080fd5b50611217612d70565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561126557600080fd5b506112a4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612d96565b604051808215151515815260200191505060405180910390f35b3480156112ca57600080fd5b50611309600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612ea6565b604051808215151515815260200191505060405180910390f35b34801561132f57600080fd5b5061133861300a565b6040518082815260200191505060405180910390f35b34801561135a57600080fd5b506113af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613010565b6040518082815260200191505060405180910390f35b3480156113d157600080fd5b50611406600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613097565b005b34801561141457600080fd5b50611453600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506131d5565b6040518082815260200191505060405180910390f35b34801561147557600080fd5b506114aa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506131fc565b005b3480156114b857600080fd5b506114c1613260565b6040518082815260200191505060405180910390f35b3480156114e357600080fd5b50611518600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613278565b005b34801561152657600080fd5b5061155b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506133ce565b604051808215151515815260200191505060405180910390f35b34801561158157600080fd5b506115b6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506133ee565b6040518082815260200191505060405180910390f35b6000806000806000806115dd6120d1565b15156115e857600080fd5b6702c68af0bb14000034101515156115ff57600080fd5b600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561165757600080fd5b61167a601054670de0b6b3a76400006302faf0800261340690919063ffffffff16565b95506116846120fb565b156116f1576116e2601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116d4613260565b61340690919063ffffffff16565b9450858510156116f0578495505b5b60008611151561170057600080fd5b61170934612b29565b93508392503491508584111561174f57859250611737611732878661340690919063ffffffff16565b61248f565b905061174c813461340690919063ffffffff16565b91505b6117a183600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461342290919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061183683601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461342290919063ffffffff16565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061188e8360105461342290919063ffffffff16565b6010819055506118a98360035461342290919063ffffffff16565b60038190555061190182601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461342290919063ffffffff16565b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119598260125461342290919063ffffffff16565b60128190555060008111156119b0573373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156119ae573d6000803e3d6000fd5b505b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015611a18573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167fa9952e76453aae9003d5a21b7df6196de99382fa7a34336df0107ab6bf9a966084848460405180848152602001838152602001828152602001935050505060405180910390a2505050505050565b636183a11081565b6040805190810160405280601b81526020017f57616c6c2053747265657420446563656e7472616c20546f6b656e000000000081525081565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c5d57600080fd5b60011515600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141515611cbc57600080fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167faff098f53523369cef878ae47c10d27a8a918f0da3221b889da1776ab58f553f6000604051808215151515815260200191505060405180910390a250565b6000600354905090565b6000600d60009054906101000a900460ff161515611d9157600080fd5b611d9a8461343e565b8211151515611da857600080fd5b611db38484846135a3565b90509392505050565b60026020528060005260406000206000915054906101000a900460ff1681565b670de0b6b3a764000063c6aea1550281565b600581565b601281565b60156020528060005260406000206000915090505481565b600b5481565b6705f450916ad7140081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e7d57600080fd5b611e8984848484613873565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611eec57600080fd5b82518451141515611efc57600080fd5b81518451141515611f0c57600080fd5b5b8351811015611f7457611f67858583815181101515611f2857fe5b906020019060200201518584815181101515611f4057fe5b906020019060200201518585815181101515611f5857fe5b90602001906020020151613873565b8080600101915050611f0d565b5050505050565b600760205281600052604060002081600581101515611f9657fe5b01600091509150505481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b670de0b6b3a76400006302faf0800281565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156120385760009050612044565b61204182613d27565b90505b919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120a457600080fd5b600b54421115156120b457600080fd5b6001601760006101000a81548160ff021916908315150217905550565b6000600a54421180156120e55750600b5442105b156120f357600190506120f8565b600090505b90565b6000600a5442118015612115575062015180600a54014211155b156121235760019050612128565b600090505b90565b600f5481565b60145481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561219257600080fd5b60001515600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415156121f157600080fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167faff098f53523369cef878ae47c10d27a8a918f0da3221b889da1776ab58f553f6001604051808215151515815260200191505060405180910390a250565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600061232d60145461231f670de0b6b3a76400006302faf08002670de0b6b3a764000063c6aea1550261340690919063ffffffff16565b61340690919063ffffffff16565b905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561238e57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600c548281151561249e57fe5b049050919050565b60006125026124b483611fda565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340690919063ffffffff16565b9050919050565b601760009054906101000a900460ff16151561252457600080fd5b60008111801561253c57506125383361343e565b8111155b151561254757600080fd5b61259981600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340690919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125f18160035461340690919063ffffffff16565b60038190555060003373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167f601012ba5835327e038c684c419b1aa1ecc88c5527dfededb4d244c46b5a9849826040518082815260200191505060405180910390a250565b60035481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156126f957600080fd5b80421080156127095750600b5442105b151561271457600080fd5b80600b819055507fe20f93714281a7d40fd1b62a497dd1cc4df6b45409601908f02827ff1eb7d892600282604051808381526020018281526020019250505060405180910390a1600b54600a5410151561276d57600080fd5b636183a110600b5410151561278157600080fd5b50565b6016602052816000526040600020602052806000526040600020600091509150505481565b6702c68af0bb14000081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561281057600080fd5b61281d8383836000613873565b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60116020528060005260406000206000915090505481565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156128b957600080fd5b5b81518110156128f0576128e382828151811015156128d457fe5b90602001906020020151613e0b565b80806001019150506128ba565b5050565b6040805190810160405280600481526020017f57414c4c0000000000000000000000000000000000000000000000000000000081525081565b61293e6129393361343e565b612509565b565b600e6020528060005260406000206000915054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156129bb57600080fd5b600a54421015156129cb57600080fd5b80600c819055507fd4846a8a7a6a67b4d03c988c19d73bb6f3cb8a3805f84c9a2273bc781c2c0598600c546040518082815260200191505060405180910390a150565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612a6f575062b89200600b540142115b1515612a7a57600080fd5b6001600d60006101000a81548160ff021916908315150217905550565b600060648585905011151515612aac57600080fd5b8282905085859050141515612ac057600080fd5b5b84849050811015612b2257612b148585838181101515612add57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168484848181101515612b0857fe5b90506020020135612b47565b508080600101915050612ac1565b5050505050565b6000612b40600c5483613f2a90919063ffffffff16565b9050919050565b6000600d60009054906101000a900460ff161515612b6457600080fd5b612b6d3361343e565b8211151515612b7b57600080fd5b612b858383613f5b565b905092915050565b600a5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612bee57600080fd5b8042108015612bfe5750600a5442105b1515612c0957600080fd5b80600a819055507fe20f93714281a7d40fd1b62a497dd1cc4df6b45409601908f02827ff1eb7d892600182604051808381526020018281526020019250505060405180910390a1600b54600a54101515612c6257600080fd5b636183a110600b54101515612c7657600080fd5b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612cd657600080fd5b81518351141515612ce657600080fd5b5b8251811015612d3857612d2b848483815181101515612d0257fe5b906020019060200201518484815181101515612d1a57fe5b906020019060200201516000613873565b8080600101915050612ce7565b50505050565b601760009054906101000a900460ff1681565b60125481565b600d60009054906101000a900460ff1681565b600c5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612df75760019250612e9e565b42841015612e085760019250612e9e565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091505b6005811015612e9957428282600581101515612e6257fe5b01541080612e7e5750838282600581101515612e7a57fe5b0154145b15612e8c5760019250612e9e565b8080600101915050612e4a565b600092505b505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612f0357600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612fc757600080fd5b505af1158015612fdb573d6000803e3d6000fd5b505050506040513d6020811015612ff157600080fd5b8101908080519060200190929190505050905092915050565b60105481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156130f257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561312e57600080fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f4edbfac5b40fe46ac1af1fd222b224b38cfeeb9e21bd4fc6344526c245f7549b81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6008602052816000526040600020816005811015156131f057fe5b01600091509150505481565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561325457600080fd5b61325d81613e0b565b50565b60006132736705f450916ad71400612b29565b905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156132d357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561330f57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff4e75b79500ab730f8a026ed3cba6d55331bcb64c9e9f60c548e371356e5e3c060405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60096020528060005260406000206000915054906101000a900460ff1681565b60136020528060005260406000206000915090505481565b600082821115151561341757600080fd5b818303905092915050565b6000818301905082811015151561343857600080fd5b92915050565b600080600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156134db57600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054915061359d565b6134e483613d27565b90506000811415613548576000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b61359a81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340690919063ffffffff16565b91505b50919050565b6000808373ffffffffffffffffffffffffffffffffffffffff16141515156135ca57600080fd5b61361c82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340690919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506136ee82600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340690919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506137c082600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461342290919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156138cb57600080fd5b60008373ffffffffffffffffffffffffffffffffffffffff16141515156138f157600080fd5b60008211151561390057600080fd5b6139086122e8565b82111515156139a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f6e6f7420656e6f75676820746f6b656e7320617661696c61626c6520746f206d81526020017f696e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008114806139b357504281115b1515613a4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001807f65697468657220776974686f7574206c6f636b207465726d2c206f72206c6f6381526020017f6b207465726d206d75737420626520696e20746865206675747572650000000081525060400191505060405180910390fd5b6000811115613a6357613a6183838361411b565b505b613ab582600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461342290919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613b4a82601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461342290919063ffffffff16565b601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613bf082601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205461342290919063ffffffff16565b601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086815260200190815260200160002081905550613c598260145461342290919063ffffffff16565b601481905550613c748260035461342290919063ffffffff16565b6003819055508273ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a38273ffffffffffffffffffffffffffffffffffffffff16847f9c6dd8089f114717d5c17f4d3d9bf6c1991925a49ef90e23b9ba026bf8654b428484604051808381526020018281526020019250505060405180910390a350505050565b600080600080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209250600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091505b6005811015613e0357428382600581101515613dc857fe5b0154101515613df657613df38282600581101515613de257fe5b01548561342290919063ffffffff16565b93505b8080600101915050613db0565b505050919050565b600e60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613e6257613f27565b6001600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550613ed06001600f5461342290919063ffffffff16565b600f819055508073ffffffffffffffffffffffffffffffffffffffff167f6ea640312e182de387819fbeb13be00db3171a445412852248559054871c4199600f546040518082815260200191505060405180910390a25b50565b600081830290506000831480613f4a5750818382811515613f4757fe5b04145b1515613f5557600080fd5b92915050565b6000808373ffffffffffffffffffffffffffffffffffffffff1614151515613f8257600080fd5b613fd482600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340690919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061406982600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461342290919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000806000804285111515614198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f6c6f636b207465726d206d75737420626520696e20746865206675747572650081525060200191505060405180910390fd5b61270f9350600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091505b60058110156142a15742838260058110151561423857fe5b01541015614279576000838260058110151561425057fe5b01819055506000828260058110151561426557fe5b018190555061270f841415614278578093505b5b84838260058110151561428857fe5b01541415614294578093505b8080600101915050614220565b61270f8414151515614341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f72656769737465724c6f636b6564546f6b656e733a206e6f20617661696c616281526020017f6c6520736c6f7420666f756e640000000000000000000000000000000000000081525060400191505060405180910390fd5b6000838560058110151561435157fe5b0154141561436e5784838560058110151561436857fe5b01819055505b61439086838660058110151561438057fe5b015461342290919063ffffffff16565b828560058110151561439e57fe5b01819055506001600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550838773ffffffffffffffffffffffffffffffffffffffff167f38a498f3e82bfca1855324fb5e974db2a1cbc0df8145844464ab159abd4311948888604051808381526020018281526020019250505060405180910390a350505093925050505600a165627a7a72305820cf4e1a54ac982d46286798e77068beb9d6d9b34248c3bc96ef668b7eb7004ff30029

Deployed Bytecode

0x60806040526004361061030c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063068ae02b1461031657806306fdde0314610341578063095ea7b3146103d15780631785f53c1461043657806318160ddd1461047957806323b872dd146104a457806324d7806c14610529578063282c3cf7146105845780632c2622db146105af578063313ce567146105da57806332e785af1461060b5780633bba340c146106625780633deaf6d41461068d5780634104044b146106b857806343e7e4da146107195780634cd2c47b1461080f578063521eb27314610870578063531163c1146108c75780635eb7413a146108f25780635f538fd414610949578063604269d114610960578063632e082a1461098f5780636b8f155a146109be5780636de9f32b146109e95780637048027514610a1457806370a0823114610a5757806374601c3c14610aae57806379ba509714610ad957806379ca9ad414610af0578063836115fe14610b31578063837b68c814610b8857806384ef077814610bb5578063897e47f514610be05780638d006d1114610c0d5780638d0bba0314610c6e5780638d6819be14610c995780638da5cb5b14610cf05780638e2a219214610d475780638fe6677d14610d9e57806395d89b4114610e045780639981bd6114610e945780639b19251a14610eab5780639ea407be14610f06578063a03fb4c014610f33578063a05fccef14610f4a578063a4c8932214610f9d578063a9059cbb14610fde578063aa63dea414611043578063ad4018421461106e578063c1b728b51461109b578063c408efba1461114e578063cb2822531461117d578063cbdc5aa4146111a8578063cbdd69b5146111d7578063d4ee1d9014611202578063d8690c2214611259578063dc39d06d146112be578063dd2d4ea014611323578063dd62ed3e1461134e578063deaa59df146113c5578063e184d8c814611408578063e43252d714611469578063e74f8eff146114ac578063f2fde38b146114d7578063f49e1e391461151a578063f96f5b3514611575575b6103146115cc565b005b34801561032257600080fd5b5061032b611acf565b6040518082815260200191505060405180910390f35b34801561034d57600080fd5b50610356611ad7565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561039657808201518184015260208101905061037b565b50505050905090810190601f1680156103c35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103dd57600080fd5b5061041c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b10565b604051808215151515815260200191505060405180910390f35b34801561044257600080fd5b50610477600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c02565b005b34801561048557600080fd5b5061048e611d6a565b6040518082815260200191505060405180910390f35b3480156104b057600080fd5b5061050f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611d74565b604051808215151515815260200191505060405180910390f35b34801561053557600080fd5b5061056a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611dbc565b604051808215151515815260200191505060405180910390f35b34801561059057600080fd5b50610599611ddc565b6040518082815260200191505060405180910390f35b3480156105bb57600080fd5b506105c4611dee565b6040518082815260200191505060405180910390f35b3480156105e657600080fd5b506105ef611df3565b604051808260ff1660ff16815260200191505060405180910390f35b34801561061757600080fd5b5061064c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611df8565b6040518082815260200191505060405180910390f35b34801561066e57600080fd5b50610677611e10565b6040518082815260200191505060405180910390f35b34801561069957600080fd5b506106a2611e16565b6040518082815260200191505060405180910390f35b3480156106c457600080fd5b5061071760048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611e22565b005b34801561072557600080fd5b5061080d60048036038101908080359060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611e8f565b005b34801561081b57600080fd5b5061085a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611f7b565b6040518082815260200191505060405180910390f35b34801561087c57600080fd5b50610885611fa2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108d357600080fd5b506108dc611fc8565b6040518082815260200191505060405180910390f35b3480156108fe57600080fd5b50610933600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fda565b6040518082815260200191505060405180910390f35b34801561095557600080fd5b5061095e612049565b005b34801561096c57600080fd5b506109756120d1565b604051808215151515815260200191505060405180910390f35b34801561099b57600080fd5b506109a46120fb565b604051808215151515815260200191505060405180910390f35b3480156109ca57600080fd5b506109d361212b565b6040518082815260200191505060405180910390f35b3480156109f557600080fd5b506109fe612131565b6040518082815260200191505060405180910390f35b348015610a2057600080fd5b50610a55600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612137565b005b348015610a6357600080fd5b50610a98600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061229f565b6040518082815260200191505060405180910390f35b348015610aba57600080fd5b50610ac36122e8565b6040518082815260200191505060405180910390f35b348015610ae557600080fd5b50610aee612332565b005b348015610afc57600080fd5b50610b1b6004803603810190808035906020019092919050505061248f565b6040518082815260200191505060405180910390f35b348015610b3d57600080fd5b50610b72600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124a6565b6040518082815260200191505060405180910390f35b348015610b9457600080fd5b50610bb360048036038101908080359060200190929190505050612509565b005b348015610bc157600080fd5b50610bca612698565b6040518082815260200191505060405180910390f35b348015610bec57600080fd5b50610c0b6004803603810190808035906020019092919050505061269e565b005b348015610c1957600080fd5b50610c58600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612784565b6040518082815260200191505060405180910390f35b348015610c7a57600080fd5b50610c836127a9565b6040518082815260200191505060405180910390f35b348015610ca557600080fd5b50610cee60048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506127b5565b005b348015610cfc57600080fd5b50610d05612822565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610d5357600080fd5b50610d88600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612847565b6040518082815260200191505060405180910390f35b348015610daa57600080fd5b50610e026004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061285f565b005b348015610e1057600080fd5b50610e196128f4565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610e59578082015181840152602081019050610e3e565b50505050905090810190601f168015610e865780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610ea057600080fd5b50610ea961292d565b005b348015610eb757600080fd5b50610eec600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612940565b604051808215151515815260200191505060405180910390f35b348015610f1257600080fd5b50610f3160048036038101908080359060200190929190505050612960565b005b348015610f3f57600080fd5b50610f48612a0e565b005b348015610f5657600080fd5b50610f9b600480360381019080803590602001908201803590602001919091929391929390803590602001908201803590602001919091929391929390505050612a97565b005b348015610fa957600080fd5b50610fc860048036038101908080359060200190929190505050612b29565b6040518082815260200191505060405180910390f35b348015610fea57600080fd5b50611029600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612b47565b604051808215151515815260200191505060405180910390f35b34801561104f57600080fd5b50611058612b8d565b6040518082815260200191505060405180910390f35b34801561107a57600080fd5b5061109960048036038101908080359060200190929190505050612b93565b005b3480156110a757600080fd5b5061114c600480360381019080803590602001909291908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050612c79565b005b34801561115a57600080fd5b50611163612d3e565b604051808215151515815260200191505060405180910390f35b34801561118957600080fd5b50611192612d51565b6040518082815260200191505060405180910390f35b3480156111b457600080fd5b506111bd612d57565b604051808215151515815260200191505060405180910390f35b3480156111e357600080fd5b506111ec612d6a565b6040518082815260200191505060405180910390f35b34801561120e57600080fd5b50611217612d70565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561126557600080fd5b506112a4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612d96565b604051808215151515815260200191505060405180910390f35b3480156112ca57600080fd5b50611309600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612ea6565b604051808215151515815260200191505060405180910390f35b34801561132f57600080fd5b5061133861300a565b6040518082815260200191505060405180910390f35b34801561135a57600080fd5b506113af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613010565b6040518082815260200191505060405180910390f35b3480156113d157600080fd5b50611406600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613097565b005b34801561141457600080fd5b50611453600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506131d5565b6040518082815260200191505060405180910390f35b34801561147557600080fd5b506114aa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506131fc565b005b3480156114b857600080fd5b506114c1613260565b6040518082815260200191505060405180910390f35b3480156114e357600080fd5b50611518600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613278565b005b34801561152657600080fd5b5061155b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506133ce565b604051808215151515815260200191505060405180910390f35b34801561158157600080fd5b506115b6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506133ee565b6040518082815260200191505060405180910390f35b6000806000806000806115dd6120d1565b15156115e857600080fd5b6702c68af0bb14000034101515156115ff57600080fd5b600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561165757600080fd5b61167a601054670de0b6b3a76400006302faf0800261340690919063ffffffff16565b95506116846120fb565b156116f1576116e2601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116d4613260565b61340690919063ffffffff16565b9450858510156116f0578495505b5b60008611151561170057600080fd5b61170934612b29565b93508392503491508584111561174f57859250611737611732878661340690919063ffffffff16565b61248f565b905061174c813461340690919063ffffffff16565b91505b6117a183600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461342290919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061183683601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461342290919063ffffffff16565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061188e8360105461342290919063ffffffff16565b6010819055506118a98360035461342290919063ffffffff16565b60038190555061190182601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461342290919063ffffffff16565b601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506119598260125461342290919063ffffffff16565b60128190555060008111156119b0573373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156119ae573d6000803e3d6000fd5b505b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015611a18573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167fa9952e76453aae9003d5a21b7df6196de99382fa7a34336df0107ab6bf9a966084848460405180848152602001838152602001828152602001935050505060405180910390a2505050505050565b636183a11081565b6040805190810160405280601b81526020017f57616c6c2053747265657420446563656e7472616c20546f6b656e000000000081525081565b600081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c5d57600080fd5b60011515600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141515611cbc57600080fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167faff098f53523369cef878ae47c10d27a8a918f0da3221b889da1776ab58f553f6000604051808215151515815260200191505060405180910390a250565b6000600354905090565b6000600d60009054906101000a900460ff161515611d9157600080fd5b611d9a8461343e565b8211151515611da857600080fd5b611db38484846135a3565b90509392505050565b60026020528060005260406000206000915054906101000a900460ff1681565b670de0b6b3a764000063c6aea1550281565b600581565b601281565b60156020528060005260406000206000915090505481565b600b5481565b6705f450916ad7140081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e7d57600080fd5b611e8984848484613873565b50505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611eec57600080fd5b82518451141515611efc57600080fd5b81518451141515611f0c57600080fd5b5b8351811015611f7457611f67858583815181101515611f2857fe5b906020019060200201518584815181101515611f4057fe5b906020019060200201518585815181101515611f5857fe5b90602001906020020151613873565b8080600101915050611f0d565b5050505050565b600760205281600052604060002081600581101515611f9657fe5b01600091509150505481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b670de0b6b3a76400006302faf0800281565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156120385760009050612044565b61204182613d27565b90505b919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120a457600080fd5b600b54421115156120b457600080fd5b6001601760006101000a81548160ff021916908315150217905550565b6000600a54421180156120e55750600b5442105b156120f357600190506120f8565b600090505b90565b6000600a5442118015612115575062015180600a54014211155b156121235760019050612128565b600090505b90565b600f5481565b60145481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561219257600080fd5b60001515600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151415156121f157600080fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167faff098f53523369cef878ae47c10d27a8a918f0da3221b889da1776ab58f553f6001604051808215151515815260200191505060405180910390a250565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600061232d60145461231f670de0b6b3a76400006302faf08002670de0b6b3a764000063c6aea1550261340690919063ffffffff16565b61340690919063ffffffff16565b905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561238e57600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600c548281151561249e57fe5b049050919050565b60006125026124b483611fda565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340690919063ffffffff16565b9050919050565b601760009054906101000a900460ff16151561252457600080fd5b60008111801561253c57506125383361343e565b8111155b151561254757600080fd5b61259981600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340690919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125f18160035461340690919063ffffffff16565b60038190555060003373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a33373ffffffffffffffffffffffffffffffffffffffff167f601012ba5835327e038c684c419b1aa1ecc88c5527dfededb4d244c46b5a9849826040518082815260200191505060405180910390a250565b60035481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156126f957600080fd5b80421080156127095750600b5442105b151561271457600080fd5b80600b819055507fe20f93714281a7d40fd1b62a497dd1cc4df6b45409601908f02827ff1eb7d892600282604051808381526020018281526020019250505060405180910390a1600b54600a5410151561276d57600080fd5b636183a110600b5410151561278157600080fd5b50565b6016602052816000526040600020602052806000526040600020600091509150505481565b6702c68af0bb14000081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561281057600080fd5b61281d8383836000613873565b505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60116020528060005260406000206000915090505481565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156128b957600080fd5b5b81518110156128f0576128e382828151811015156128d457fe5b90602001906020020151613e0b565b80806001019150506128ba565b5050565b6040805190810160405280600481526020017f57414c4c0000000000000000000000000000000000000000000000000000000081525081565b61293e6129393361343e565b612509565b565b600e6020528060005260406000206000915054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156129bb57600080fd5b600a54421015156129cb57600080fd5b80600c819055507fd4846a8a7a6a67b4d03c988c19d73bb6f3cb8a3805f84c9a2273bc781c2c0598600c546040518082815260200191505060405180910390a150565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612a6f575062b89200600b540142115b1515612a7a57600080fd5b6001600d60006101000a81548160ff021916908315150217905550565b600060648585905011151515612aac57600080fd5b8282905085859050141515612ac057600080fd5b5b84849050811015612b2257612b148585838181101515612add57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff168484848181101515612b0857fe5b90506020020135612b47565b508080600101915050612ac1565b5050505050565b6000612b40600c5483613f2a90919063ffffffff16565b9050919050565b6000600d60009054906101000a900460ff161515612b6457600080fd5b612b6d3361343e565b8211151515612b7b57600080fd5b612b858383613f5b565b905092915050565b600a5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612bee57600080fd5b8042108015612bfe5750600a5442105b1515612c0957600080fd5b80600a819055507fe20f93714281a7d40fd1b62a497dd1cc4df6b45409601908f02827ff1eb7d892600182604051808381526020018281526020019250505060405180910390a1600b54600a54101515612c6257600080fd5b636183a110600b54101515612c7657600080fd5b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612cd657600080fd5b81518351141515612ce657600080fd5b5b8251811015612d3857612d2b848483815181101515612d0257fe5b906020019060200201518484815181101515612d1a57fe5b906020019060200201516000613873565b8080600101915050612ce7565b50505050565b601760009054906101000a900460ff1681565b60125481565b600d60009054906101000a900460ff1681565b600c5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806000600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515612df75760019250612e9e565b42841015612e085760019250612e9e565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091505b6005811015612e9957428282600581101515612e6257fe5b01541080612e7e5750838282600581101515612e7a57fe5b0154145b15612e8c5760019250612e9e565b8080600101915050612e4a565b600092505b505092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612f0357600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612fc757600080fd5b505af1158015612fdb573d6000803e3d6000fd5b505050506040513d6020811015612ff157600080fd5b8101908080519060200190929190505050905092915050565b60105481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156130f257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561312e57600080fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f4edbfac5b40fe46ac1af1fd222b224b38cfeeb9e21bd4fc6344526c245f7549b81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b6008602052816000526040600020816005811015156131f057fe5b01600091509150505481565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561325457600080fd5b61325d81613e0b565b50565b60006132736705f450916ad71400612b29565b905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156132d357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561330f57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff4e75b79500ab730f8a026ed3cba6d55331bcb64c9e9f60c548e371356e5e3c060405160405180910390a380600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60096020528060005260406000206000915054906101000a900460ff1681565b60136020528060005260406000206000915090505481565b600082821115151561341757600080fd5b818303905092915050565b6000818301905082811015151561343857600080fd5b92915050565b600080600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156134db57600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054915061359d565b6134e483613d27565b90506000811415613548576000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b61359a81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340690919063ffffffff16565b91505b50919050565b6000808373ffffffffffffffffffffffffffffffffffffffff16141515156135ca57600080fd5b61361c82600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340690919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506136ee82600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340690919063ffffffff16565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506137c082600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461342290919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156138cb57600080fd5b60008373ffffffffffffffffffffffffffffffffffffffff16141515156138f157600080fd5b60008211151561390057600080fd5b6139086122e8565b82111515156139a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f6e6f7420656e6f75676820746f6b656e7320617661696c61626c6520746f206d81526020017f696e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008114806139b357504281115b1515613a4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603c8152602001807f65697468657220776974686f7574206c6f636b207465726d2c206f72206c6f6381526020017f6b207465726d206d75737420626520696e20746865206675747572650000000081525060400191505060405180910390fd5b6000811115613a6357613a6183838361411b565b505b613ab582600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461342290919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613b4a82601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461342290919063ffffffff16565b601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613bf082601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008781526020019081526020016000205461342290919063ffffffff16565b601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086815260200190815260200160002081905550613c598260145461342290919063ffffffff16565b601481905550613c748260035461342290919063ffffffff16565b6003819055508273ffffffffffffffffffffffffffffffffffffffff1660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a38273ffffffffffffffffffffffffffffffffffffffff16847f9c6dd8089f114717d5c17f4d3d9bf6c1991925a49ef90e23b9ba026bf8654b428484604051808381526020018281526020019250505060405180910390a350505050565b600080600080600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209250600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091505b6005811015613e0357428382600581101515613dc857fe5b0154101515613df657613df38282600581101515613de257fe5b01548561342290919063ffffffff16565b93505b8080600101915050613db0565b505050919050565b600e60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615613e6257613f27565b6001600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550613ed06001600f5461342290919063ffffffff16565b600f819055508073ffffffffffffffffffffffffffffffffffffffff167f6ea640312e182de387819fbeb13be00db3171a445412852248559054871c4199600f546040518082815260200191505060405180910390a25b50565b600081830290506000831480613f4a5750818382811515613f4757fe5b04145b1515613f5557600080fd5b92915050565b6000808373ffffffffffffffffffffffffffffffffffffffff1614151515613f8257600080fd5b613fd482600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340690919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061406982600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461342290919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000806000804285111515614198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f6c6f636b207465726d206d75737420626520696e20746865206675747572650081525060200191505060405180910390fd5b61270f9350600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002091505b60058110156142a15742838260058110151561423857fe5b01541015614279576000838260058110151561425057fe5b01819055506000828260058110151561426557fe5b018190555061270f841415614278578093505b5b84838260058110151561428857fe5b01541415614294578093505b8080600101915050614220565b61270f8414151515614341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f72656769737465724c6f636b6564546f6b656e733a206e6f20617661696c616281526020017f6c6520736c6f7420666f756e640000000000000000000000000000000000000081525060400191505060405180910390fd5b6000838560058110151561435157fe5b0154141561436e5784838560058110151561436857fe5b01819055505b61439086838660058110151561438057fe5b015461342290919063ffffffff16565b828560058110151561439e57fe5b01819055506001600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550838773ffffffffffffffffffffffffffffffffffffffff167f38a498f3e82bfca1855324fb5e974db2a1cbc0df8145844464ab159abd4311948888604051808381526020018281526020019250505060405180910390a350505093925050505600a165627a7a72305820cf4e1a54ac982d46286798e77068beb9d6d9b34248c3bc96ef668b7eb7004ff30029

Deployed Bytecode Sourcemap

10676:10085:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12933:11;:9;:11::i;:::-;10676:10085;9269:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9269:55:0;;;;;;;;;;;;;;;;;;;;;;;10840:59;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10840:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10840:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4886:206;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4886:206:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2302:165;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2302:165:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4319:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4319:93:0;;;;;;;;;;;;;;;;;;;;;;;20098:254;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20098:254:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1258:39;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1258:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11061:62;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11061:62:0;;;;;;;;;;;;;;;;;;;;;;;5890:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5890:35:0;;;;;;;;;;;;;;;;;;;;;;;10951;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10951:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;12126:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12126:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9194:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9194:38:0;;;;;;;;;;;;;;;;;;;;;;;11575:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11575:71:0;;;;;;;;;;;;;;;;;;;;;;;15372:172;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15372:172:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15552:372;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15552:372:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5932:52;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5932:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2695:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2695:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;11655:52;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11655:52:0;;;;;;;;;;;;;;;;;;;;;;;7383:179;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7383:179:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14715:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14715:130:0;;;;;;10324:144;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10324:144:0;;;;;;;;;;;;;;;;;;;;;;;;;;;10152:164;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10152:164:0;;;;;;;;;;;;;;;;;;;;;;;;;;;11823:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11823:29:0;;;;;;;;;;;;;;;;;;;;;;;12095:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12095:24:0;;;;;;;;;;;;;;;;;;;;;;;2133:161;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2133:161:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4469:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4469:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12994:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12994:140:0;;;;;;;;;;;;;;;;;;;;;;;1961:164;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1961:164:0;;;;;;13400:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13400:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7570:141;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7570:141:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19062:416;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19062:416:0;;;;;;;;;;;;;;;;;;;;;;;;;;4181:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4181:29:0;;;;;;;;;;;;;;;;;;;;;;;9889:206;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9889:206:0;;;;;;;;;;;;;;;;;;;;;;;;;;12179:69;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12179:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11515:53;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11515:53:0;;;;;;;;;;;;;;;;;;;;;;;14916:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14916:150:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1199:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1199:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;11916:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11916:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13653:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13653:182:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10906:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10906:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10906:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18937:117;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18937:117:0;;;;;;11775:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11775:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14159:204;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14159:204:0;;;;;;;;;;;;;;;;;;;;;;;;;;14563:144;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14563:144:0;;;;;;20427:329;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20427:329:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13276:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13276:116:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19824:229;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19824:229:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9121:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9121:38:0;;;;;;;;;;;;;;;;;;;;;;;9669:212;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9669:212:0;;;;;;;;;;;;;;;;;;;;;;;;;;15074:290;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15074:290:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12286:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12286:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;11969:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11969:31:0;;;;;;;;;;;;;;;;;;;;;;;11716:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11716:27:0;;;;;;;;;;;;;;;;;;;;;;;;;;;11237:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11237:32:0;;;;;;;;;;;;;;;;;;;;;;;1226:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1226:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;7719:396;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7719:396:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19593:190;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19593:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11887:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11887:22:0;;;;;;;;;;;;;;;;;;;;;;;5488:131;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5488:131:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2834:169;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2834:169:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;5991:52;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5991:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13547:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13547:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13142:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13142:126:0;;;;;;;;;;;;;;;;;;;;;;;1747:206;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1747:206:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6050:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6050:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12007:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12007:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17064:1802;17230:21;17397:31;17693:21;17750:18;17800:20;17843:17;17114:8;:6;:8::i;:::-;17106:17;;;;;;;;11559:9;17142;:33;;17134:42;;;;;;;;17195:9;:21;17205:10;17195:21;;;;;;;;;;;;;;;;;;;;;;;;;17187:30;;;;;;;;17254;17273:10;;10798:6;11693:8;:14;17254:18;;:30;;;;:::i;:::-;17230:54;;17364:16;:14;:16::i;:::-;17360:278;;;17431:50;17456:12;:24;17469:10;17456:24;;;;;;;;;;;;;;;;17431:20;:18;:20::i;:::-;:24;;:50;;;;:::i;:::-;17397:84;;17529:16;17500:26;:45;17496:131;;;17585:26;17566:45;;17496:131;17360:278;17678:1;17659:16;:20;17650:30;;;;;;;;17717:22;17729:9;17717:11;:22::i;:::-;17693:46;;17771:16;17750:37;;17823:9;17800:32;;17896:16;17877;:35;17873:241;;;17945:16;17929:32;;17991:51;18003:38;18024:16;18003;:20;;:38;;;;:::i;:::-;17991:11;:51::i;:::-;17976:66;;18075:27;18089:12;18075:9;:13;;:27;;;;:::i;:::-;18057:45;;17873:241;18149:39;18174:13;18149:8;:20;18158:10;18149:20;;;;;;;;;;;;;;;;:24;;:39;;;;:::i;:::-;18126:8;:20;18135:10;18126:20;;;;;;;;;;;;;;;:62;;;;18226:43;18255:13;18226:12;:24;18239:10;18226:24;;;;;;;;;;;;;;;;:28;;:43;;;;:::i;:::-;18199:12;:24;18212:10;18199:24;;;;;;;;;;;;;;;:70;;;;18293:29;18308:13;18293:10;;:14;;:29;;;;:::i;:::-;18280:10;:42;;;;18353:36;18375:13;18353:17;;:21;;:36;;;;:::i;:::-;18333:17;:56;;;;18431:47;18462:15;18431:14;:26;18446:10;18431:26;;;;;;;;;;;;;;;;:30;;:47;;;;:::i;:::-;18402:14;:26;18417:10;18402:26;;;;;;;;;;;;;;;:76;;;;18511:40;18535:15;18511:19;;:23;;:40;;;;:::i;:::-;18489:19;:62;;;;18611:1;18596:12;:16;18592:55;;;18614:10;:19;;:33;18634:12;18614:33;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18614:33:0;18592:55;18658:6;;;;;;;;;;;:15;;:32;18674:15;18658:32;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18658:32:0;18738:10;18724:40;;18733:3;18724:40;18750:13;18724:40;;;;;;;;;;;;;;;;;;18801:10;18780:78;;;18813:13;18828:15;18845:12;18780:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17064:1802;;;;;;:::o;9269:55::-;9303:21;9269:55;:::o;10840:59::-;;;;;;;;;;;;;;;;;;;;:::o;4886:206::-;4951:4;5000:7;4968;:19;4976:10;4968:19;;;;;;;;;;;;;;;:29;4988:8;4968:29;;;;;;;;;;;;;;;:39;;;;5044:8;5023:39;;5032:10;5023:39;;;5054:7;5023:39;;;;;;;;;;;;;;;;;;5080:4;5073:11;;4886:206;;;;:::o;2302:165::-;1571:5;;;;;;;;;;;1557:19;;:10;:19;;;1549:28;;;;;;;;2386:4;2371:19;;:7;:11;2379:2;2371:11;;;;;;;;;;;;;;;;;;;;;;;;;:19;;;2363:28;;;;;;;;2416:5;2402:7;:11;2410:2;2402:11;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;2449:2;2437:22;;;2453:5;2437:22;;;;;;;;;;;;;;;;;;;;;;2302:165;:::o;4319:93::-;4363:4;4387:17;;4380:24;;4319:93;:::o;20098:254::-;20178:12;20211:15;;;;;;;;;;;20203:24;;;;;;;;20257:29;20280:5;20257:22;:29::i;:::-;20246:7;:40;;20238:49;;;;;;;;20305:39;20324:5;20331:3;20336:7;20305:18;:39::i;:::-;20298:46;;20098:254;;;;;:::o;1258:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;11061:62::-;10798:6;11107:10;:16;11061:62;:::o;5890:35::-;5924:1;5890:35;:::o;10951:::-;10984:2;10951:35;:::o;12126:46::-;;;;;;;;;;;;;;;;;:::o;9194:38::-;;;;:::o;11575:71::-;11629:17;11575:71;:::o;15372:172::-;1571:5;;;;;;;;;;;1557:19;;:10;:19;;;1549:28;;;;;;;;15487:49;15499:10;15511:8;15521:7;15530:5;15487:11;:49::i;:::-;15372:172;;;;:::o;15552:372::-;15795:6;1571:5;;;;;;;;;;;1557:19;;:10;:19;;;1549:28;;;;;;;;15711:7;:14;15691:9;:16;:34;15683:43;;;;;;;;15765:6;:13;15745:9;:16;:33;15737:42;;;;;;;;15790:127;15807:9;:16;15803:1;:20;15790:127;;;15845:60;15857:10;15869:9;15879:1;15869:12;;;;;;;;;;;;;;;;;;15883:7;15891:1;15883:10;;;;;;;;;;;;;;;;;;15895:6;15902:1;15895:9;;;;;;;;;;;;;;;;;;15845:11;:60::i;:::-;15825:3;;;;;;;15790:127;;;15552:372;;;;;:::o;5932:52::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2695:21::-;;;;;;;;;;;;;:::o;11655:52::-;10798:6;11693:8;:14;11655:52;:::o;7383:179::-;7444:4;7466:19;:29;7486:8;7466:29;;;;;;;;;;;;;;;;;;;;;;;;;7465:30;7461:44;;;7504:1;7497:8;;;;7461:44;7523:31;7545:8;7523:21;:31::i;:::-;7516:38;;7383:179;;;;:::o;14715:130::-;1571:5;;;;;;;;;;;1557:19;;:10;:19;;;1549:28;;;;;;;;14787:11;;14781:3;:17;14773:26;;;;;;;;14833:4;14810:20;;:27;;;;;;;;;;;;;;;;;;14715:130::o;10324:144::-;10363:4;10390:13;;10384:3;:19;:40;;;;;10413:11;;10407:3;:17;10384:40;10380:57;;;10433:4;10426:11;;;;10380:57;10455:5;10448:12;;10324:144;;:::o;10152:164::-;10199:4;10226:13;;10220:3;:19;:52;;;;;10266:6;10250:13;;:22;10243:3;:29;;10220:52;10216:69;;;10281:4;10274:11;;;;10216:69;10303:5;10296:12;;10152:164;;:::o;11823:29::-;;;;:::o;12095:24::-;;;;:::o;2133:161::-;1571:5;;;;;;;;;;;1557:19;;:10;:19;;;1549:28;;;;;;;;2214:5;2199:20;;:7;:11;2207:2;2199:11;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;2191:29;;;;;;;;2245:4;2231:7;:11;2239:2;2231:11;;;;;;;;;;;;;;;;:18;;;;;;;;;;;;;;;;;;2277:2;2265:21;;;2281:4;2265:21;;;;;;;;;;;;;;;;;;;;;;2133:161;:::o;4469:104::-;4525:4;4549:8;:16;4558:6;4549:16;;;;;;;;;;;;;;;;4542:23;;4469:104;;;:::o;12994:140::-;13042:4;13066:60;13113:12;;13066:42;10798:6;11693:8;:14;10798:6;11107:10;:16;13066:26;;:42;;;;:::i;:::-;:46;;:60;;;;:::i;:::-;13059:67;;12994:140;:::o;1961:164::-;2028:8;;;;;;;;;;;2014:22;;:10;:22;;;2006:31;;;;;;;;2081:8;;;;;;;;;;;2053:37;;2074:5;;;;;;;;;;;2053:37;;;;;;;;;;;;2109:8;;;;;;;;;;;2101:5;;:16;;;;;;;;;;;;;;;;;;1961:164::o;13400:113::-;13456:8;13493:12;;13483:7;:22;;;;;;;;13477:28;;13400:113;;;:::o;7570:141::-;7633:4;7657:46;7680:22;7693:8;7680:12;:22::i;:::-;7657:8;:18;7666:8;7657:18;;;;;;;;;;;;;;;;:22;;:46;;;;:::i;:::-;7650:53;;7570:141;;;:::o;19062:416::-;19132:20;;;;;;;;;;;19124:29;;;;;;;;19182:1;19172:7;:11;:60;;;;;19198:34;19221:10;19198:22;:34::i;:::-;19187:7;:45;;19172:60;19164:69;;;;;;;;19267:33;19292:7;19267:8;:20;19276:10;19267:20;;;;;;;;;;;;;;;;:24;;:33;;;;:::i;:::-;19244:8;:20;19253:10;19244:20;;;;;;;;;;;;;;;:56;;;;19331:30;19353:7;19331:17;;:21;;:30;;;;:::i;:::-;19311:17;:50;;;;19398:3;19386:10;19377:34;;;19403:7;19377:34;;;;;;;;;;;;;;;;;;19450:10;19427:43;;;19462:7;19427:43;;;;;;;;;;;;;;;;;;19062:416;:::o;4181:29::-;;;;:::o;9889:206::-;1571:5;;;;;;;;;;;1557:19;;:10;:19;;;1549:28;;;;;;;;9984:7;9978:3;:13;:34;;;;;10001:11;;9995:3;:17;9978:34;9970:43;;;;;;;;10038:7;10024:11;:21;;;;10061:26;10076:1;10079:7;10061:26;;;;;;;;;;;;;;;;;;;;;;;;9476:11;;9460:13;;:27;9450:39;;;;;;;;9303:21;9509:11;;:24;9499:36;;;;;;;;9889:206;:::o;12179:69::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11515:53::-;11559:9;11515:53;:::o;14916:150::-;1571:5;;;;;;;;;;;1557:19;;:10;:19;;;1549:28;;;;;;;;15013:45;15025:10;15037:8;15047:7;15056:1;15013:11;:45::i;:::-;14916:150;;;:::o;1199:20::-;;;;;;;;;;;;;:::o;11916:44::-;;;;;;;;;;;;;;;;;:::o;13653:182::-;13740:6;1616:7;:19;1624:10;1616:19;;;;;;;;;;;;;;;;;;;;;;;;;1608:28;;;;;;;;13735:93;13752:10;:17;13748:1;:21;13735:93;;;13791:25;13802:10;13813:1;13802:13;;;;;;;;;;;;;;;;;;13791:10;:25::i;:::-;13771:3;;;;;;;13735:93;;;13653:182;;:::o;10906:38::-;;;;;;;;;;;;;;;;;;;;:::o;18937:117::-;18990:56;19011:34;19034:10;19011:22;:34::i;:::-;18990:20;:56::i;:::-;18937:117::o;11775:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;14159:204::-;1571:5;;;;;;;;;;;1557:19;;:10;:19;;;1549:28;;;;;;;;14251:13;;14245:3;:19;14237:28;;;;;;;;14291:15;14276:12;:30;;;;14322:33;14342:12;;14322:33;;;;;;;;;;;;;;;;;;14159:204;:::o;14563:144::-;14628:5;;;;;;;;;;;14614:19;;:10;:19;;;:51;;;;14657:8;14643:11;;:22;14637:3;:28;14614:51;14606:60;;;;;;;;14695:4;14677:15;;:22;;;;;;;;;;;;;;;;;;14563:144::o;20427:329::-;20648:6;20541:3;20520:10;;:17;;:24;;20512:33;;;;;;;;20585:8;;:15;;20564:10;;:17;;:36;20556:45;;;;;;;;20643:104;20660:10;;:17;;20656:1;:21;20643:104;;;20699:36;20708:10;;20719:1;20708:13;;;;;;;;;;;;;;;;;20723:8;;20732:1;20723:11;;;;;;;;;;;;;;;20699:8;:36::i;:::-;;20679:3;;;;;;;20643:104;;;20427:329;;;;;:::o;13276:116::-;13329:11;13362:22;13371:12;;13362:4;:8;;:22;;;;:::i;:::-;13353:31;;13276:116;;;:::o;19824:229::-;19885:12;19918:15;;;;;;;;;;;19910:24;;;;;;;;19964:34;19987:10;19964:22;:34::i;:::-;19953:7;:45;;19945:54;;;;;;;;20017:28;20032:3;20037:7;20017:14;:28::i;:::-;20010:35;;19824:229;;;;:::o;9121:38::-;;;;:::o;9669:212::-;1571:5;;;;;;;;;;;1557:19;;:10;:19;;;1549:28;;;;;;;;9766:7;9760:3;:13;:36;;;;;9783:13;;9777:3;:19;9760:36;9752:45;;;;;;;;9824:7;9808:13;:23;;;;9847:26;9862:1;9865:7;9847:26;;;;;;;;;;;;;;;;;;;;;;;;9476:11;;9460:13;;:27;9450:39;;;;;;;;9303:21;9509:11;;:24;9499:36;;;;;;;;9669:212;:::o;15074:290::-;15243:6;1571:5;;;;;;;;;;;1557:19;;:10;:19;;;1549:28;;;;;;;;15212:7;:14;15192:9;:16;:34;15184:43;;;;;;;;15238:119;15255:9;:16;15251:1;:20;15238:119;;;15293:52;15305:10;15317:9;15327:1;15317:12;;;;;;;;;;;;;;;;;;15331:7;15339:1;15331:10;;;;;;;;;;;;;;;;;;15343:1;15293:11;:52::i;:::-;15273:3;;;;;;;15238:119;;;15074:290;;;;:::o;12286:32::-;;;;;;;;;;;;;:::o;11969:31::-;;;;:::o;11716:27::-;;;;;;;;;;;;;:::o;11237:32::-;;;;:::o;1226:23::-;;;;;;;;;;;;;:::o;7719:396::-;7799:4;7913:29;7979:6;7821:19;:29;7841:8;7821:29;;;;;;;;;;;;;;;;;;;;;;;;;7820:30;7816:47;;;7859:4;7852:11;;;;7816:47;7886:3;7878:5;:11;7874:28;;;7898:4;7891:11;;;;7874:28;7945:8;:18;7954:8;7945:18;;;;;;;;;;;;;;;7913:50;;7974:111;5924:1;7987;:14;7974:111;;;8037:3;8027:4;8032:1;8027:7;;;;;;;;;;;:13;:33;;;;8055:5;8044:4;8049:1;8044:7;;;;;;;;;;;:16;8027:33;8023:50;;;8069:4;8062:11;;;;8023:50;8003:3;;;;;;;7974:111;;;8102:5;8095:12;;7719:396;;;;;;;:::o;19593:190::-;19688:12;1571:5;;;;;;;;;;;1557:19;;:10;:19;;;1549:28;;;;;;;;19735:14;19720:39;;;19760:5;;;;;;;;;;;19767:7;19720:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19720:55:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19720:55:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19720:55:0;;;;;;;;;;;;;;;;19713:62;;19593:190;;;;:::o;11887:22::-;;;;:::o;5488:131::-;5562:4;5586:7;:15;5594:6;5586:15;;;;;;;;;;;;;;;:25;5602:8;5586:25;;;;;;;;;;;;;;;;5579:32;;5488:131;;;;:::o;2834:169::-;1571:5;;;;;;;;;;;1557:19;;:10;:19;;;1549:28;;;;;;;;2925:3;2906:23;;:7;:23;;;;2898:32;;;;;;;;2950:7;2941:6;;:16;;;;;;;;;;;;;;;;;;2973:22;2987:7;2973:22;;;;;;;;;;;;;;;;;;;;;;2834:169;:::o;5991:52::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13547:98::-;1616:7;:19;1624:10;1616:19;;;;;;;;;;;;;;;;;;;;;;;;;1608:28;;;;;;;;13617:20;13628:8;13617:10;:20::i;:::-;13547:98;:::o;13142:126::-;13193:4;13217:43;11629:17;13217:11;:43::i;:::-;13210:50;;13142:126;:::o;1747:206::-;1571:5;;;;;;;;;;;1557:19;;:10;:19;;;1549:28;;;;;;;;1850:3;1829:25;;:9;:25;;;;1821:34;;;;;;;;1904:9;1871:43;;1897:5;;;;;;;;;;;1871:43;;;;;;;;;;;;1936:9;1925:8;;:20;;;;;;;;;;;;;;;;;;1747:206;:::o;6050:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;12007:46::-;;;;;;;;;;;;;;;;;:::o;734:114::-;786:6;818:1;813;:6;;805:15;;;;;;;;839:1;835;:5;831:9;;734:114;;;;:::o;612:::-;664:6;691:1;687;:5;683:9;;716:1;711;:6;;703:15;;;;;;;;612:114;;;;:::o;8164:376::-;8232:4;8374:11;8307:19;:29;8327:8;8307:29;;;;;;;;;;;;;;;;;;;;;;;;;8306:30;8302:61;;;8345:8;:18;8354:8;8345:18;;;;;;;;;;;;;;;;8338:25;;;;8302:61;8388:31;8410:8;8388:21;:31::i;:::-;8374:45;;8444:1;8434:6;:11;8430:54;;;8479:5;8447:19;:29;8467:8;8447:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;8430:54;8502:30;8525:6;8502:8;:18;8511:8;8502:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;8495:37;;8164:376;;;;;:::o;5100:380::-;5180:4;5212:3;5205;:10;;;;5197:19;;;;;;;;5245:28;5265:7;5245:8;:15;5254:5;5245:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;5227:8;:15;5236:5;5227:15;;;;;;;;;;;;;;;:46;;;;5313:39;5344:7;5313;:14;5321:5;5313:14;;;;;;;;;;;;;;;:26;5328:10;5313:26;;;;;;;;;;;;;;;;:30;;:39;;;;:::i;:::-;5284:7;:14;5292:5;5284:14;;;;;;;;;;;;;;;:26;5299:10;5284:26;;;;;;;;;;;;;;;:68;;;;5379:26;5397:7;5379:8;:13;5388:3;5379:13;;;;;;;;;;;;;;;;:17;;:26;;;;:::i;:::-;5363:8;:13;5372:3;5363:13;;;;;;;;;;;;;;;:42;;;;5437:3;5421:29;;5430:5;5421:29;;;5442:7;5421:29;;;;;;;;;;;;;;;;;;5468:4;5461:11;;5100:380;;;;;:::o;15932:1061::-;16041:9;:19;16051:8;16041:19;;;;;;;;;;;;;;;;;;;;;;;;;16033:28;;;;;;;;16092:3;16080:8;:15;;;;16072:24;;;;;;;;16125:1;16115:7;:11;16107:20;;;;;;;;16157:17;:15;:17::i;:::-;16146:7;:28;;16138:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16242:1;16233:5;:10;:25;;;;16255:3;16247:5;:11;16233:25;16225:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16416:1;16408:5;:9;16404:61;;;16419:46;16440:8;16450:7;16459:5;16419:20;:46::i;:::-;;16404:61;16518:31;16541:7;16518:8;:18;16527:8;16518:18;;;;;;;;;;;;;;;;:22;;:31;;;;:::i;:::-;16497:8;:18;16506:8;16497:18;;;;;;;;;;;;;;;:52;;;;16587:37;16616:7;16587:14;:24;16602:8;16587:24;;;;;;;;;;;;;;;;:28;;:37;;;;:::i;:::-;16560:14;:24;16575:8;16560:24;;;;;;;;;;;;;;;:64;;;;16680:55;16727:7;16680:20;:30;16701:8;16680:30;;;;;;;;;;;;;;;:42;16711:10;16680:42;;;;;;;;;;;;:46;;:55;;;;:::i;:::-;16635:20;:30;16656:8;16635:30;;;;;;;;;;;;;;;:42;16666:10;16635:42;;;;;;;;;;;:100;;;;16761:25;16778:7;16761:12;;:16;;:25;;;;:::i;:::-;16746:12;:40;;;;16817:30;16839:7;16817:17;;:21;;:30;;;;:::i;:::-;16797:17;:50;;;;16901:8;16887:32;;16896:3;16887:32;16911:7;16887:32;;;;;;;;;;;;;;;;;;16960:8;16935:50;;16948:10;16935:50;16970:7;16979:5;16935:50;;;;;;;;;;;;;;;;;;;;;;;;15932:1061;;;;:::o;8548:333::-;8619:11;8643:29;8704;8770:6;8675:8;:18;8684:8;8675:18;;;;;;;;;;;;;;;8643:50;;8736:8;:18;8745:8;8736:18;;;;;;;;;;;;;;;8704:50;;8765:109;5924:1;8778;:14;8765:109;;;8829:3;8818:4;8823:1;8818:7;;;;;;;;;;;:14;;8814:48;;;8843:19;8854:4;8859:1;8854:7;;;;;;;;;;;8843:6;:10;;:19;;;;:::i;:::-;8834:28;;8814:48;8794:3;;;;;;;8765:109;;;8548:333;;;;;;:::o;13843:245::-;13905:9;:19;13915:8;13905:19;;;;;;;;;;;;;;;;;;;;;;;;;13901:32;;;13926:7;;13901:32;13965:4;13943:9;:19;13953:8;13943:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;14000:24;14022:1;14000:17;;:21;;:24;;;;:::i;:::-;13980:17;:44;;;;14052:8;14040:40;;;14062:17;;14040:40;;;;;;;;;;;;;;;;;;13843:245;;:::o;856:128::-;908:6;935:1;931;:5;927:9;;960:1;955;:6;:20;;;;974:1;969;965;:5;;;;;;;;:10;955:20;947:29;;;;;;;;856:128;;;;:::o;4581:297::-;4642:4;4674:3;4667;:10;;;;4659:19;;;;;;;;4712:33;4737:7;4712:8;:20;4721:10;4712:20;;;;;;;;;;;;;;;;:24;;:33;;;;:::i;:::-;4689:8;:20;4698:10;4689:20;;;;;;;;;;;;;;;:56;;;;4772:26;4790:7;4772:8;:13;4781:3;4772:13;;;;;;;;;;;;;;;;:17;;:26;;;;:::i;:::-;4756:8;:13;4765:3;4756:13;;;;;;;;;;;;;;;:42;;;;4835:3;4814:34;;4823:10;4814:34;;;4840:7;4814:34;;;;;;;;;;;;;;;;;;4866:4;4859:11;;4581:297;;;;:::o;6214:1129::-;6306:8;6606:29;6667;6733:6;6343:3;6335:5;:11;6327:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4;6585:10;;6638:8;:18;6647:8;6638:18;;;;;;;;;;;;;;;6606:50;;6699:8;:18;6708:8;6699:18;;;;;;;;;;;;;;;6667:50;;6728:242;5924:1;6741;:14;6728:242;;;6791:3;6781:4;6786:1;6781:7;;;;;;;;;;;:13;6777:138;;;6825:1;6815:4;6820:1;6815:7;;;;;;;;;;:11;;;;6855:1;6845:4;6850:1;6845:7;;;;;;;;;;:11;;;;6886:4;6879:3;:11;6875:24;;;6898:1;6892:7;;6875:24;6777:138;6944:5;6933:4;6938:1;6933:7;;;;;;;;;;;:16;6929:29;;;6957:1;6951:7;;6929:29;6757:3;;;;;;;6728:242;;;7035:4;7028:3;:11;;7020:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7154:1;7141:4;7146:3;7141:9;;;;;;;;;;;:14;7137:37;;;7169:5;7157:4;7162:3;7157:9;;;;;;;;;;:17;;;;7137:37;7197:22;7211:7;7197:4;7202:3;7197:9;;;;;;;;;;;:13;;:22;;;;:::i;:::-;7185:4;7190:3;7185:9;;;;;;;;;;:34;;;;7262:4;7230:19;:29;7250:8;7230:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;7315:3;7305:8;7282:53;;;7320:7;7329:5;7282:53;;;;;;;;;;;;;;;;;;;;;;;;6214:1129;;;;;;;;:::o

Swarm Source

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