ETH Price: $3,455.70 (+1.68%)

Token

Agri10x Token (AG10)
 

Overview

Max Total Supply

200,000,000 AG10

Holders

1,295

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
butlins.eth
Balance
2,763.257425742574257425 AG10

Value
$0.00
0x15caac6fd6517a6e1deb8a888b53299418b07454
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
AGToken

Compiler Version
v0.5.11+commit.c082d0b4

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-10-09
*/

pragma solidity >=0.4.0 <0.6.0;

/* taking ideas from FirstBlood token */
contract SafeMath {

    /* function assert(bool assertion) internal { */
    /*   if (!assertion) { */
    /*     throw; */
    /*   } */
    /* }      // assert no longer needed once solidity is on 0.4.10 */

    function safeAdd(uint256 x, uint256 y) internal pure returns(uint256) {
      uint256 z = x + y;
      assert((z >= x) && (z >= y));
      return z;
    }

    function safeSubtract(uint256 x, uint256 y) internal pure  returns(uint256) {
      assert(x >= y);
      uint256 z = x - y;
      return z;
    }

    function safeMult(uint256 x, uint256 y) internal pure  returns(uint256) {
      uint256 z = x * y;
      assert((x == 0)||(z/x == y));
      return z;
    }

}

contract Token {
    uint256 public totalSupply;
    function balanceOf(address _owner) public view  returns (uint256 balance);
    function transfer(address _to, uint256 _value) public returns (bool success);
    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);
    function approve(address _spender, uint256 _value) public returns (bool success);
    function allowance(address _owner, address _spender) public view returns (uint256 remaining);
    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}

/*  ERC 20 token */
contract StandardToken is Token {
    function transfer(address _to, uint256 _value) public returns (bool success) {
      if (balances[msg.sender] >= _value && _value > 0) {
        balances[msg.sender] -= _value;
        balances[_to] += _value;
        emit Transfer(msg.sender, _to, _value);
        return true;
      } else {
        return false;
      }
    }

    function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {
      if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && _value > 0) {
        balances[_to] += _value;
        balances[_from] -= _value;
        allowed[_from][msg.sender] -= _value;
        emit Transfer(_from, _to, _value);
        return true;
      } else {
        return false;
      }
    }

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

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

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

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

contract ERC1132 {
    /**
     * @dev Reasons why a user's tokens have been locked
     */
    mapping(address => string[]) public lockReason;

    /**
     * @dev locked token structure
     */
    struct lockToken {
        uint256 amount;
        uint256 validity;
        bool claimed;
    }

    /**
     * @dev Holds number & validity of tokens locked for a given reason for
     *      a specified address
     */
    mapping(address => mapping(string => lockToken)) public locked;

    /**
     * @dev Records data of all the tokens Locked
     */
    event Locked(
        address indexed _of,
        string indexed _reason,
        uint256 _amount,
        uint256 _validity
    );

    /**
     * @dev Records data of all the tokens unlocked
     */
    event Unlocked(
        address indexed _of,
        string indexed _reason,
        uint256 _amount
    );

    /**
     * @dev Locks a specified amount of tokens against an address,
     *      for a specified reason and time
     * @param _reason The reason to lock tokens
     * @param _amount Number of tokens to be locked
     * @param _time Lock time in seconds
     */
    function lock(string memory _reason, uint256 _amount, uint256 _time)
        public returns (bool);
    /**
     * @dev Returns tokens locked for a specified address for a
     *      specified reason
     *
     * @param _of The address whose tokens are locked
     * @param _reason The reason to query the lock tokens for
     */
    function tokensLocked(address _of, string memory _reason)
        public view returns (uint256 amount);
    /**
     * @dev Returns tokens locked for a specified address for a
     *      specified reason at a specific time
     *
     * @param _of The address whose tokens are locked
     * @param _reason The reason to query the lock tokens for
     * @param _time The timestamp to query the lock tokens for
     */
    function tokensLockedAtTime(address _of, string memory _reason, uint256 _time)
        public view returns (uint256 amount);
    /**
     * @dev Returns total tokens held by an address (locked + transferable)
     * @param _of The address to query the total balance of
     */
    function totalBalanceOf(address _of)
        public view returns (uint256 amount);
    /**
     * @dev Extends lock for a specified reason and time
     * @param _reason The reason to lock tokens
     * @param _time Lock extension time in seconds
     */
    function extendLock(string memory _reason, uint256 _time)
        public returns (bool);
    /**
     * @dev Increase number of tokens locked for a specified reason
     * @param _reason The reason to lock tokens
     * @param _amount Number of tokens to be increased
     */
    function increaseLockAmount(string memory _reason, uint256 _amount)
        public returns (bool);

    /**
     * @dev Returns unlockable tokens for a specified address for a specified reason
     * @param _of The address to query the the unlockable token count of
     * @param _reason The reason to query the unlockable tokens for
     */
    function tokensUnlockable(address _of, string memory _reason)
        public view returns (uint256 amount);
    /**
     * @dev Unlocks the unlockable tokens of a specified address
     * @param _of Address of user, claiming back unlockable tokens
     */
    function unlock(address _of)
        public returns (uint256 unlockableTokens);

    /**
     * @dev Gets the unlockable tokens of a specified address
     * @param _of The address to query the the unlockable token count of
     */
    function getUnlockableTokens(address _of)
        public view returns (uint256 unlockableTokens);

}

contract Lockable is ERC1132,StandardToken {

    string internal constant ALREADY_LOCKED = 'Tokens already locked';
    string internal constant NOT_LOCKED = 'No tokens locked';
    string internal constant AMOUNT_ZERO = 'Amount can not be 0';
    /**
     * @dev Locks a specified amount of tokens against an address,
     *      for a specified reason and time
     * @param _reason The reason to lock tokens
     * @param _amount Number of tokens to be locked
     * @param _time Lock time in days
     */
    function lock(string memory _reason, uint256 _amount, uint256 _time)
        public
        returns (bool)
    {
        uint256 validUntil = now + (_time * 1 days); //solhint-disable-line

        // If tokens are already locked, then functions extendLock or
        // increaseLockAmount should be used to make any changes
        require(tokensLocked(msg.sender, _reason) == 0, ALREADY_LOCKED);
        require(_amount != 0, AMOUNT_ZERO);

        if (locked[msg.sender][_reason].amount == 0)
            lockReason[msg.sender].push(_reason);

        transfer(address(this), _amount);

        locked[msg.sender][_reason] = lockToken(_amount, validUntil, false);

        emit Locked(msg.sender, _reason, _amount, validUntil);
        return true;
    }
    /**
     * @dev Transfers and Locks a specified amount of tokens,
     *      for a specified reason and time
     * @param _to adress to which tokens are to be transfered
     * @param _reason The reason to lock tokens
     * @param _amount Number of tokens to be transfered and locked
     * @param _time Lock time in seconds
     */
    function transferWithLock(address _to, string memory _reason, uint256 _amount, uint256 _time)
        public
        returns (bool)
    {
        uint256 validUntil = now + (_time * 1 days); //solhint-disable-line

        require(tokensLocked(_to, _reason) == 0, ALREADY_LOCKED);
        require(_amount != 0, AMOUNT_ZERO);

        if (locked[_to][_reason].amount == 0)
            lockReason[_to].push(_reason);

        transfer(address(this), _amount);

        locked[_to][_reason] = lockToken(_amount, validUntil, false);
        emit Locked(_to, _reason, _amount, validUntil);
        return true;
    }

    /**
     * @dev Returns tokens locked for a specified address for a
     *      specified reason
     *
     * @param _of The address whose tokens are locked
     * @param _reason The reason to query the lock tokens for
     */
    function tokensLocked(address _of, string memory _reason)
        public
        view
        returns (uint256 amount)
    {
        if (!locked[_of][_reason].claimed)
            amount = locked[_of][_reason].amount;
    }
    /**
     * @dev Returns tokens locked for a specified address for a
     *      specified reason at a specific time
     *
     * @param _of The address whose tokens are locked
     * @param _reason The reason to query the lock tokens for
     * @param _time The timestamp to query the lock tokens for
     */
    function tokensLockedAtTime(address _of, string memory _reason, uint256 _time)
        public
        view
        returns (uint256 amount)
    {
        if (locked[_of][_reason].validity > _time)
            amount = locked[_of][_reason].amount;
    }

    /**
     * @dev Returns total tokens held by an address (locked + transferable)
     * @param _of The address to query the total balance of
     */
    function totalBalanceOf(address _of)
        public
        view
        returns (uint256 amount)
    {
        amount = balanceOf(_of);

        for (uint256 i = 0; i < lockReason[_of].length; i++) {
            amount = amount + (tokensLocked(_of, lockReason[_of][i]));
        }
    }
    /**
     * @dev Extends lock for a specified reason and time
     * @param _reason The reason to lock tokens
     * @param _time Lock extension time in seconds
     */
    function extendLock(string memory _reason, uint256 _time)
        public
        returns (bool)
    {
        require(tokensLocked(msg.sender, _reason) > 0, NOT_LOCKED);

        locked[msg.sender][_reason].validity = locked[msg.sender][_reason].validity + (_time);

        emit Locked(msg.sender, _reason, locked[msg.sender][_reason].amount, locked[msg.sender][_reason].validity);
        return true;
    }
    /**
     * @dev Increase number of tokens locked for a specified reason
     * @param _reason The reason to lock tokens
     * @param _amount Number of tokens to be increased
     */
    function increaseLockAmount(string memory _reason, uint256 _amount)
        public
        returns (bool)
    {
        require(tokensLocked(msg.sender, _reason) > 0, NOT_LOCKED);
        transfer(address(this), _amount);

        locked[msg.sender][_reason].amount = locked[msg.sender][_reason].amount + (_amount);

        emit Locked(msg.sender, _reason, locked[msg.sender][_reason].amount, locked[msg.sender][_reason].validity);
        return true;
    }

    /**
     * @dev Returns unlockable tokens for a specified address for a specified reason
     * @param _of The address to query the the unlockable token count of
     * @param _reason The reason to query the unlockable tokens for
     */
    function tokensUnlockable(address _of, string memory _reason)
        public
        view
        returns (uint256 amount)
    {
        if (locked[_of][_reason].validity <= now && !locked[_of][_reason].claimed) //solhint-disable-line
            amount = locked[_of][_reason].amount;
    }

    /**
     * @dev Unlocks the unlockable tokens of a specified address
     * @param _of Address of user, claiming back unlockable tokens
     */
    function unlock(address _of)
        public
        returns (uint256 unlockableTokens)
    {
        uint256 lockedTokens;

        for (uint256 i = 0; i < lockReason[_of].length; i++) {
            lockedTokens = tokensUnlockable(_of, lockReason[_of][i]);
            if (lockedTokens > 0) {
                unlockableTokens = unlockableTokens + (lockedTokens);
                locked[_of][lockReason[_of][i]].claimed = true;
                emit Unlocked(_of, lockReason[_of][i], lockedTokens);
            }
        }

        if (unlockableTokens > 0)
            this.transfer(_of, unlockableTokens);
    }

    /**
     * @dev Gets the unlockable tokens of a specified address
     * @param _of The address to query the the unlockable token count of
     */
    function getUnlockableTokens(address _of)
        public
        view
        returns (uint256 unlockableTokens)
    {
        for (uint256 i = 0; i < lockReason[_of].length; i++) {
            unlockableTokens = unlockableTokens + (tokensUnlockable(_of, lockReason[_of][i]));
        }
    }
}


contract AGToken is Lockable, SafeMath {

    // metadata
    string public constant name = "Agri10x Token";
    string public constant symbol = "AG10";
    uint256 public constant decimals = 18;
    string public version = "1.0";
    string internal constant PUBLIC_LOCKED = 'Public sale of token is locked';
    address owner;
    // contracts
    address payable ethFundDeposit;      // deposit address for ETH for Agri10x International
    address payable agtFundDeposit;      // deposit address for Agri10x International use and AGT User Fund

    // crowdsale parameters
    bool public isFinalized;              // switched to true in operational state
    uint256 public fundingStartBlock;
    uint256 public fundingEndBlock;
    uint256 public constant agtFund = 45 * (10**6) * 10**decimals;   // 500m AGT reserved for Agri10x Intl use
    uint256 public constant tokenExchangeRate = 1995; // 6400 AGT tokens per 1 ETH
    uint256 public constant tokenCreationCap =  200 * (10**6) * 10**decimals;
    uint256 public constant tokenCreationMin = 1 * (10**6) * 10**decimals;
    uint256 public publicSaleDate;


    // events
    event LogRefund(address indexed _to, uint256 _value);
    event CreateAGT(address indexed _to, uint256 _value);
    event SoldAGT(address indexed _to, uint256 _value);

    modifier onlyOwner {
        require(
            msg.sender == owner,
            "Only owner can call this function."
        );
        _;
    }

    // constructor
    constructor(
        address payable _ethFundDeposit,
        address payable _agtFundDeposit,
        uint256 _fundingStartBlock,
        uint256 _fundingEndBlock) public
    {
      owner = msg.sender;
      publicSaleDate = now + (120 * 1 days);
      isFinalized = false;                   //controls pre through crowdsale state
      ethFundDeposit = _ethFundDeposit;
      agtFundDeposit = _agtFundDeposit;
      fundingStartBlock = _fundingStartBlock;
      fundingEndBlock = _fundingEndBlock;
      totalSupply = agtFund;
      balances[agtFundDeposit] = agtFund;    // Deposit Agri10x Intl share
      emit CreateAGT(agtFundDeposit, agtFund);  // logs Agri10x Intl fund
    }

    /// @dev Accepts ether and creates new AGT tokens.
    function customRatecreateTokens(uint256 customtokenExchangeRate) external payable  onlyOwner{
      if (isFinalized) revert();
      if (block.number < fundingStartBlock) revert();
      if (block.number > fundingEndBlock) revert();
      if (msg.value == 0) revert();

      uint256 tokens = safeMult(msg.value, customtokenExchangeRate); // check that we're not over totals
      uint256 checkedSupply = safeAdd(totalSupply, tokens);

      // return money if something goes wrong
      if (tokenCreationCap < checkedSupply) revert();  // odd fractions won't be found

      totalSupply = checkedSupply;
      balances[msg.sender] += tokens;  // safeAdd not needed; bad semantics to use here
      emit CreateAGT(msg.sender, tokens);  // logs token creation
    }

    function createTokens() external payable  onlyOwner{
      if (isFinalized) revert();
      if (block.number < fundingStartBlock) revert();
      if (block.number > fundingEndBlock) revert();
      if (msg.value == 0) revert();

      uint256 tokens = safeMult(msg.value, tokenExchangeRate); // check that we're not over totals
      uint256 checkedSupply = safeAdd(totalSupply, tokens);

      // return money if something goes wrong
      if (tokenCreationCap < checkedSupply) revert();  // odd fractions won't be found

      totalSupply = checkedSupply;
      balances[msg.sender] += tokens;  // safeAdd not needed; bad semantics to use here
      emit CreateAGT(msg.sender, tokens);  // logs token creation
    }

    function publicSale() external payable {
      require(publicSaleDate < now, PUBLIC_LOCKED);
      if (msg.value == 0) revert();
      uint256 tokens = safeMult(msg.value, tokenExchangeRate); // check that we're not over totals
      uint256 checkedSupply = safeAdd(totalSupply, tokens);

      // return money if something goes wrong
      if (tokenCreationCap < checkedSupply) revert();  // odd fractions won't be found

      totalSupply = checkedSupply;
      balances[msg.sender] += tokens;  // safeAdd not needed; bad semantics to use here
      emit SoldAGT(msg.sender, tokens);  // logs token creation
    }

    function changeSaleDate(uint256 _time) external onlyOwner{
        publicSaleDate = now + (_time * 1 days);
    }

    function createFreeTokens(uint256 numberOfTokens) external payable  onlyOwner{
      uint256 tokens = safeMult(1, numberOfTokens); // check that we're not over totals
      uint256 checkedSupply = safeAdd(totalSupply, tokens);

      // return money if something goes wrong
      if (tokenCreationCap < checkedSupply) revert();  // odd fractions won't be found

      totalSupply = checkedSupply;
      balances[msg.sender] += tokens;  // safeAdd not needed; bad semantics to use here
      emit CreateAGT(msg.sender, tokens);  // logs token creation
    }

    /// @dev Ends the funding period and sends the ETH home
    function finalize() external onlyOwner{
      if (isFinalized) revert();
      if (msg.sender != ethFundDeposit) revert(); // locks finalize to the ultimate ETH owner
      if(totalSupply < tokenCreationMin) revert();      // have to sell minimum to move to operational
      if(block.number <= fundingEndBlock && totalSupply != tokenCreationCap) revert();
      // move to operational
      isFinalized = true;
      if(!ethFundDeposit.send(address(this).balance)) revert();  // send the eth to Agri10x International
    }

    /// @dev Allows contributors to recover their ether in the case of a failed funding campaign.
    function refund() external onlyOwner{
      if(isFinalized) revert();                       // prevents refund if operational
      if (block.number <= fundingEndBlock) revert(); // prevents refund until sale period is over
      if(totalSupply >= tokenCreationMin) revert();  // no refunds if we sold enough
      if(msg.sender == agtFundDeposit) revert();    // Agri10x Intl not entitled to a refund
      uint256 agtVal = balances[msg.sender];
      if (agtVal == 0) revert();
      balances[msg.sender] = 0;
      totalSupply = safeSubtract(totalSupply, agtVal); // extra safe
      uint256 ethVal = agtVal / tokenExchangeRate;     // should be safe; previous throws covers edges
      emit LogRefund(msg.sender, ethVal);               // log it
      if (!msg.sender.send(ethVal)) revert();       // if you're using a contract; make sure it works with .send gas limits
    }

    function() external payable {}

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"numberOfTokens","type":"uint256"}],"name":"createFreeTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_of","type":"address"},{"internalType":"string","name":"_reason","type":"string"}],"name":"tokensUnlockable","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"string","name":"_reason","type":"string"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"increaseLockAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_time","type":"uint256"}],"name":"changeSaleDate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_of","type":"address"}],"name":"unlock","outputs":[{"internalType":"uint256","name":"unlockableTokens","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"publicSale","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"tokenExchangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_of","type":"address"}],"name":"totalBalanceOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finalize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"refund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"string","name":"","type":"string"}],"name":"locked","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"validity","type":"uint256"},{"internalType":"bool","name":"claimed","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenCreationCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"lockReason","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isFinalized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_of","type":"address"},{"internalType":"string","name":"_reason","type":"string"},{"internalType":"uint256","name":"_time","type":"uint256"}],"name":"tokensLockedAtTime","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"fundingEndBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_of","type":"address"}],"name":"getUnlockableTokens","outputs":[{"internalType":"uint256","name":"unlockableTokens","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"createTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"string","name":"_reason","type":"string"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_time","type":"uint256"}],"name":"transferWithLock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tokenCreationMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"customtokenExchangeRate","type":"uint256"}],"name":"customRatecreateTokens","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"agtFund","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"string","name":"_reason","type":"string"},{"internalType":"uint256","name":"_time","type":"uint256"}],"name":"extendLock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"fundingStartBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_of","type":"address"},{"internalType":"string","name":"_reason","type":"string"}],"name":"tokensLocked","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"string","name":"_reason","type":"string"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_time","type":"uint256"}],"name":"lock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"publicSaleDate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_ethFundDeposit","type":"address"},{"internalType":"address payable","name":"_agtFundDeposit","type":"address"},{"internalType":"uint256","name":"_fundingStartBlock","type":"uint256"},{"internalType":"uint256","name":"_fundingEndBlock","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"LogRefund","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"CreateAGT","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"SoldAGT","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_of","type":"address"},{"indexed":true,"internalType":"string","name":"_reason","type":"string"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_validity","type":"uint256"}],"name":"Locked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_of","type":"address"},{"indexed":true,"internalType":"string","name":"_reason","type":"string"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Unlocked","type":"event"}]

60806040526040518060400160405280600381526020017f312e3000000000000000000000000000000000000000000000000000000000008152506005908051906020019062000051929190620002b1565b503480156200005f57600080fd5b5060405162004a4438038062004a44833981810160405260808110156200008557600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919050505033600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550629e34004201600b819055506000600860146101000a81548160ff02191690831515021790555083600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160098190555080600a819055506012600a0a6302aea540026002819055506012600a0a6302aea5400260036000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fa1a157c3c4985bd2f56d47ee44a30ec884c8c6dd9f284d60978fe1f91cb91a6a6012600a0a6302aea540026040518082815260200191505060405180910390a25050505062000360565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002f457805160ff191683800117855562000325565b8280016001018555821562000325579182015b828111156200032457825182559160200191906001019062000307565b5b50905062000334919062000338565b5090565b6200035d91905b80821115620003595760008160009055506001016200033f565b5090565b90565b6146d480620003706000396000f3fe60806040526004361061021a5760003560e01c806370a0823111610123578063b452f973116100ab578063d648a6471161006f578063d648a64714610fda578063dc369cec14611005578063dd62ed3e14611101578063e4c58bf214611186578063eced38731461127a5761021a565b8063b452f97314610d58578063c039daf614610e6c578063c12bbbaa14610e97578063ccdee5a814610ec5578063cdf1c9d614610ef05761021a565b806391b43d13116100f257806391b43d1314610bbb57806395d89b4114610be6578063a9059cbb14610c76578063ab4a2eb314610ce9578063b442726314610d4e5761021a565b806370a082311461094d57806371d66f00146109b25780638d4e408314610a865780638e9ecbb814610ab55761021a565b8063313ce567116101a65780634bb278f3116101755780634bb278f31461075657806354fd4d501461076d578063590e1ae3146107fd5780636825a71a146108145780636f7920fd146109225761021a565b8063313ce5671461069157806333bc1c5c146106bc5780634172d080146106c65780634b0ee02a146106f15761021a565b806320f14e79116101ed57806320f14e791461037857806322774abe1461047457806322ba14e81461055e57806323b872dd146105995780632f6c493c1461062c5761021a565b806306fdde031461021c578063095ea7b3146102ac57806318160ddd1461031f5780631ac46a1c1461034a575b005b34801561022857600080fd5b506102316112a5565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610271578082015181840152602081019050610256565b50505050905090810190601f16801561029e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102b857600080fd5b50610305600480360360408110156102cf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112de565b604051808215151515815260200191505060405180910390f35b34801561032b57600080fd5b506103346113d0565b6040518082815260200191505060405180910390f35b6103766004803603602081101561036057600080fd5b81019080803590602001909291905050506113d6565b005b34801561038457600080fd5b5061045e6004803603604081101561039b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156103d857600080fd5b8201836020820111156103ea57600080fd5b8035906020019184600183028401116401000000008311171561040c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611559565b6040518082815260200191505060405180910390f35b34801561048057600080fd5b506105446004803603604081101561049757600080fd5b81019080803590602001906401000000008111156104b457600080fd5b8201836020820111156104c657600080fd5b803590602001918460018302840111640100000000831117156104e857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050611780565b604051808215151515815260200191505060405180910390f35b34801561056a57600080fd5b506105976004803603602081101561058157600080fd5b8101908080359060200190929190505050611be2565b005b3480156105a557600080fd5b50610612600480360360608110156105bc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c99565b604051808215151515815260200191505060405180910390f35b34801561063857600080fd5b5061067b6004803603602081101561064f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f15565b6040518082815260200191505060405180910390f35b34801561069d57600080fd5b506106a6612372565b6040518082815260200191505060405180910390f35b6106c4612377565b005b3480156106d257600080fd5b506106db612544565b6040518082815260200191505060405180910390f35b3480156106fd57600080fd5b506107406004803603602081101561071457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061254a565b6040518082815260200191505060405180910390f35b34801561076257600080fd5b5061076b6126b2565b005b34801561077957600080fd5b506107826128a0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107c25780820151818401526020810190506107a7565b50505050905090810190601f1680156107ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561080957600080fd5b5061081261293e565b005b34801561082057600080fd5b506108fa6004803603604081101561083757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561087457600080fd5b82018360208201111561088657600080fd5b803590602001918460018302840111640100000000831117156108a857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612bc7565b6040518084815260200183815260200182151515158152602001935050505060405180910390f35b34801561092e57600080fd5b50610937612c21565b6040518082815260200191505060405180910390f35b34801561095957600080fd5b5061099c6004803603602081101561097057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c2f565b6040518082815260200191505060405180910390f35b3480156109be57600080fd5b50610a0b600480360360408110156109d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612c78565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a4b578082015181840152602081019050610a30565b50505050905090810190601f168015610a785780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610a9257600080fd5b50610a9b612d3e565b604051808215151515815260200191505060405180910390f35b348015610ac157600080fd5b50610ba560048036036060811015610ad857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610b1557600080fd5b820183602082011115610b2757600080fd5b80359060200191846001830284011164010000000083111715610b4957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050612d51565b6040518082815260200191505060405180910390f35b348015610bc757600080fd5b50610bd0612eb8565b6040518082815260200191505060405180910390f35b348015610bf257600080fd5b50610bfb612ebe565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c3b578082015181840152602081019050610c20565b50505050905090810190601f168015610c685780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c8257600080fd5b50610ccf60048036036040811015610c9957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612ef7565b604051808215151515815260200191505060405180910390f35b348015610cf557600080fd5b50610d3860048036036020811015610d0c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613060565b6040518082815260200191505060405180910390f35b610d566131bd565b005b348015610d6457600080fd5b50610e5260048036036080811015610d7b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610db857600080fd5b820183602082011115610dca57600080fd5b80359060200191846001830284011164010000000083111715610dec57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919080359060200190929190505050613386565b604051808215151515815260200191505060405180910390f35b348015610e7857600080fd5b50610e81613857565b6040518082815260200191505060405180910390f35b610ec360048036036020811015610ead57600080fd5b8101908080359060200190929190505050613864565b005b348015610ed157600080fd5b50610eda613a2c565b6040518082815260200191505060405180910390f35b348015610efc57600080fd5b50610fc060048036036040811015610f1357600080fd5b8101908080359060200190640100000000811115610f3057600080fd5b820183602082011115610f4257600080fd5b80359060200191846001830284011164010000000083111715610f6457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050613a3a565b604051808215151515815260200191505060405180910390f35b348015610fe657600080fd5b50610fef613e91565b6040518082815260200191505060405180910390f35b34801561101157600080fd5b506110eb6004803603604081101561102857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561106557600080fd5b82018360208201111561107757600080fd5b8035906020019184600183028401116401000000008311171561109957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050613e97565b6040518082815260200191505060405180910390f35b34801561110d57600080fd5b506111706004803603604081101561112457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614007565b6040518082815260200191505060405180910390f35b34801561119257600080fd5b50611260600480360360608110156111a957600080fd5b81019080803590602001906401000000008111156111c657600080fd5b8201836020820111156111d857600080fd5b803590602001918460018302840111640100000000831117156111fa57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001909291908035906020019092919050505061408e565b604051808215151515815260200191505060405180910390f35b34801561128657600080fd5b5061128f61455e565b6040518082815260200191505060405180910390f35b6040518060400160405280600d81526020017f4167726931307820546f6b656e0000000000000000000000000000000000000081525081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60025481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461147c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061467e6022913960400191505060405180910390fd5b6000611489600183614564565b9050600061149960025483614593565b9050806012600a0a630bebc2000210156114b257600080fd5b8060028190555081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167fa1a157c3c4985bd2f56d47ee44a30ec884c8c6dd9f284d60978fe1f91cb91a6a836040518082815260200191505060405180910390a2505050565b600042600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020836040518082805190602001908083835b602083106115cf57805182526020820191506020810190506020830392506115ac565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060010154111580156116c85750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020826040518082805190602001908083835b60208310611682578051825260208201915060208101905060208303925061165f565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060020160009054906101000a900460ff16155b1561177a57600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020826040518082805190602001908083835b60208310611740578051825260208201915060208101905060208303925061171d565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206000015490505b92915050565b60008061178d3385613e97565b116040518060400160405280601081526020017f4e6f20746f6b656e73206c6f636b6564000000000000000000000000000000008152509061186a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561182f578082015181840152602081019050611814565b50505050905090810190601f16801561185c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506118753083612ef7565b5081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020846040518082805190602001908083835b602083106118ea57805182526020820191506020810190506020830392506118c7565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206000015401600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020846040518082805190602001908083835b602083106119955780518252602082019150602081019050602083039250611972565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000181905550826040518082805190602001908083835b60208310611a0357805182526020820191506020810190506020830392506119e0565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390203373ffffffffffffffffffffffffffffffffffffffff167f06009b5038a1b81dafdb4c0c9e3c5a87c01a75ebfe90071abd5ab7bfc61bd466600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020866040518082805190602001908083835b60208310611adb5780518252602082019150602081019050602083039250611ab8565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000154600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020876040518082805190602001908083835b60208310611b855780518252602082019150602081019050602083039250611b62565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060010154604051808381526020018281526020019250505060405180910390a36001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061467e6022913960400191505060405180910390fd5b6201518081024201600b8190555050565b600081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015611d66575081600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b8015611d725750600082115b15611f095781600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050611f0e565b600090505b9392505050565b60008060008090505b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081101561229e5761205c846000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110611fb457fe5b906000526020600020018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120525780601f1061202757610100808354040283529160200191612052565b820191906000526020600020905b81548152906001019060200180831161203557829003601f168201915b5050505050611559565b9150600082111561229157818301925060018060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106120f557fe5b90600052602060002001604051808280546001816001161561010002031660029004801561215a5780601f1061213857610100808354040283529182019161215a565b820191906000526020600020905b815481529060010190602001808311612146575b5050915050908152602001604051809103902060020160006101000a81548160ff0219169083151502179055506000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081815481106121d057fe5b9060005260206000200160405180828054600181600116156101000203166002900480156122355780601f10612213576101008083540402835291820191612235565b820191906000526020600020905b815481529060010190602001808311612221575b505091505060405180910390208473ffffffffffffffffffffffffffffffffffffffff167ffe10613d40670f6971204daf3a4fe1cb8863b3e7ebbd491a88cae5589a71f71c846040518082815260200191505060405180910390a35b8080600101915050611f1e565b50600082111561236c573073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561232f57600080fd5b505af1158015612343573d6000803e3d6000fd5b505050506040513d602081101561235957600080fd5b8101908080519060200190929190505050505b50919050565b601281565b42600b54106040518060400160405280601e81526020017f5075626c69632073616c65206f6620746f6b656e206973206c6f636b6564000081525090612458576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561241d578082015181840152602081019050612402565b50505050905090810190601f16801561244a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600034141561246757600080fd5b6000612475346107cb614564565b9050600061248560025483614593565b9050806012600a0a630bebc20002101561249e57600080fd5b8060028190555081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167f39e4e54b9f6e81ea0b4d7c560680d9af2d8f94a1f03bc61870c7f65e933ce7a0836040518082815260200191505060405180910390a25050565b6107cb81565b600061255582612c2f565b905060008090505b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156126ac5761269b836000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106125f357fe5b906000526020600020018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156126915780601f1061266657610100808354040283529160200191612691565b820191906000526020600020905b81548152906001019060200180831161267457829003601f168201915b5050505050613e97565b82019150808060010191505061255d565b50919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061467e6022913960400191505060405180910390fd5b600860149054906101000a900460ff161561277257600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146127cc57600080fd5b6012600a0a620f42400260025410156127e457600080fd5b600a54431115801561280257506012600a0a630bebc2000260025414155b1561280c57600080fd5b6001600860146101000a81548160ff021916908315150217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505061289e57600080fd5b565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129365780601f1061290b57610100808354040283529160200191612936565b820191906000526020600020905b81548152906001019060200180831161291957829003601f168201915b505050505081565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146129e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061467e6022913960400191505060405180910390fd5b600860149054906101000a900460ff16156129fe57600080fd5b600a544311612a0c57600080fd5b6012600a0a620f42400260025410612a2357600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415612a7e57600080fd5b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415612ad057600080fd5b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b21600254826145bb565b60028190555060006107cb8281612b3457fe5b0490503373ffffffffffffffffffffffffffffffffffffffff167fb6c0eca8138e097d71e2dd31e19a1266487f0553f170b7260ffe68bcbe9ff8a7826040518082815260200191505060405180910390a23373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050612bc357600080fd5b5050565b600160205281600052604060002081805160208101820180518482526020830160208501208183528095505050505050600091509150508060000154908060010154908060020160009054906101000a900460ff16905083565b6012600a0a630bebc2000281565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006020528160005260406000208181548110612c9157fe5b90600052602060002001600091509150508054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612d365780601f10612d0b57610100808354040283529160200191612d36565b820191906000526020600020905b815481529060010190602001808311612d1957829003601f168201915b505050505081565b600860149054906101000a900460ff1681565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020846040518082805190602001908083835b60208310612dc75780518252602082019150602081019050602083039250612da4565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600101541115612eb157600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020836040518082805190602001908083835b60208310612e775780518252602082019150602081019050602083039250612e54565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206000015490505b9392505050565b600a5481565b6040518060400160405280600481526020017f414731300000000000000000000000000000000000000000000000000000000081525081565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015612f485750600082115b156130555781600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905061305a565b600090505b92915050565b600080600090505b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156131b7576131a6836000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106130fe57fe5b906000526020600020018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561319c5780601f106131715761010080835404028352916020019161319c565b820191906000526020600020905b81548152906001019060200180831161317f57829003601f168201915b5050505050611559565b820191508080600101915050613068565b50919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613263576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061467e6022913960400191505060405180910390fd5b600860149054906101000a900460ff161561327d57600080fd5b60095443101561328c57600080fd5b600a5443111561329b57600080fd5b60003414156132a957600080fd5b60006132b7346107cb614564565b905060006132c760025483614593565b9050806012600a0a630bebc2000210156132e057600080fd5b8060028190555081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167fa1a157c3c4985bd2f56d47ee44a30ec884c8c6dd9f284d60978fe1f91cb91a6a836040518082815260200191505060405180910390a25050565b60008062015180830242019050600061339f8787613e97565b146040518060400160405280601581526020017f546f6b656e7320616c7265616479206c6f636b656400000000000000000000008152509061347c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613441578082015181840152602081019050613426565b50505050905090810190601f16801561346e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008414156040518060400160405280601381526020017f416d6f756e742063616e206e6f742062652030000000000000000000000000008152509061355e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613523578082015181840152602081019050613508565b50505050905090810190601f1680156135505780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020866040518082805190602001908083835b602083106135d457805182526020820191506020810190506020830392506135b1565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000154141561368d576000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002085908060018154018082558091505090600182039060005260206000200160009091929091909150908051906020019061368a9291906145d8565b50505b6136973085612ef7565b50604051806060016040528085815260200182815260200160001515815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020866040518082805190602001908083835b602083106137295780518252602082019150602081019050602083039250613706565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff021916908315150217905550905050846040518082805190602001908083835b602083106137c757805182526020820191506020810190506020830392506137a4565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208673ffffffffffffffffffffffffffffffffffffffff167f06009b5038a1b81dafdb4c0c9e3c5a87c01a75ebfe90071abd5ab7bfc61bd4668684604051808381526020018281526020019250505060405180910390a36001915050949350505050565b6012600a0a620f42400281565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461390a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061467e6022913960400191505060405180910390fd5b600860149054906101000a900460ff161561392457600080fd5b60095443101561393357600080fd5b600a5443111561394257600080fd5b600034141561395057600080fd5b600061395c3483614564565b9050600061396c60025483614593565b9050806012600a0a630bebc20002101561398557600080fd5b8060028190555081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167fa1a157c3c4985bd2f56d47ee44a30ec884c8c6dd9f284d60978fe1f91cb91a6a836040518082815260200191505060405180910390a2505050565b6012600a0a6302aea5400281565b600080613a473385613e97565b116040518060400160405280601081526020017f4e6f20746f6b656e73206c6f636b65640000000000000000000000000000000081525090613b24576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613ae9578082015181840152602081019050613ace565b50505050905090810190601f168015613b165780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020846040518082805190602001908083835b60208310613b995780518252602082019150602081019050602083039250613b76565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206001015401600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020846040518082805190602001908083835b60208310613c445780518252602082019150602081019050602083039250613c21565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060010181905550826040518082805190602001908083835b60208310613cb25780518252602082019150602081019050602083039250613c8f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390203373ffffffffffffffffffffffffffffffffffffffff167f06009b5038a1b81dafdb4c0c9e3c5a87c01a75ebfe90071abd5ab7bfc61bd466600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020866040518082805190602001908083835b60208310613d8a5780518252602082019150602081019050602083039250613d67565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000154600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020876040518082805190602001908083835b60208310613e345780518252602082019150602081019050602083039250613e11565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060010154604051808381526020018281526020019250505060405180910390a36001905092915050565b60095481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020826040518082805190602001908083835b60208310613f0c5780518252602082019150602081019050602083039250613ee9565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060020160009054906101000a900460ff1661400157600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020826040518082805190602001908083835b60208310613fc75780518252602082019150602081019050602083039250613fa4565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206000015490505b92915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000806201518083024201905060006140a73387613e97565b146040518060400160405280601581526020017f546f6b656e7320616c7265616479206c6f636b6564000000000000000000000081525090614184576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561414957808201518184015260208101905061412e565b50505050905090810190601f1680156141765780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008414156040518060400160405280601381526020017f416d6f756e742063616e206e6f7420626520300000000000000000000000000081525090614266576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561422b578082015181840152602081019050614210565b50505050905090810190601f1680156142585780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020866040518082805190602001908083835b602083106142dc57805182526020820191506020810190506020830392506142b9565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600001541415614395576000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208590806001815401808255809150509060018203906000526020600020016000909192909190915090805190602001906143929291906145d8565b50505b61439f3085612ef7565b50604051806060016040528085815260200182815260200160001515815250600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020866040518082805190602001908083835b60208310614431578051825260208201915060208101905060208303925061440e565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff021916908315150217905550905050846040518082805190602001908083835b602083106144cf57805182526020820191506020810190506020830392506144ac565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390203373ffffffffffffffffffffffffffffffffffffffff167f06009b5038a1b81dafdb4c0c9e3c5a87c01a75ebfe90071abd5ab7bfc61bd4668684604051808381526020018281526020019250505060405180910390a360019150509392505050565b600b5481565b6000808284029050600084148061458357508284828161458057fe5b04145b61458957fe5b8091505092915050565b60008082840190508381101580156145ab5750828110155b6145b157fe5b8091505092915050565b6000818310156145c757fe5b600082840390508091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061461957805160ff1916838001178555614647565b82800160010185558215614647579182015b8281111561464657825182559160200191906001019061462b565b5b5090506146549190614658565b5090565b61467a91905b8082111561467657600081600090555060010161465e565b5090565b9056fe4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f6e2ea265627a7a7231582023ce22b7c4e901d53faac2f9db2b7ae1c0e0951c35a581c114e8ff2cb4171f5e64736f6c634300050b0032000000000000000000000000c32c34a91e782be1fe3908110015b7bff81461f1000000000000000000000000ff9461810de4bd809ab1e20b16c31fbede33510b000000000000000000000000000000000000000000000000000000000084ab2f0000000000000000000000000000000000000000000000000de0b6b3a763ffff

Deployed Bytecode

0x60806040526004361061021a5760003560e01c806370a0823111610123578063b452f973116100ab578063d648a6471161006f578063d648a64714610fda578063dc369cec14611005578063dd62ed3e14611101578063e4c58bf214611186578063eced38731461127a5761021a565b8063b452f97314610d58578063c039daf614610e6c578063c12bbbaa14610e97578063ccdee5a814610ec5578063cdf1c9d614610ef05761021a565b806391b43d13116100f257806391b43d1314610bbb57806395d89b4114610be6578063a9059cbb14610c76578063ab4a2eb314610ce9578063b442726314610d4e5761021a565b806370a082311461094d57806371d66f00146109b25780638d4e408314610a865780638e9ecbb814610ab55761021a565b8063313ce567116101a65780634bb278f3116101755780634bb278f31461075657806354fd4d501461076d578063590e1ae3146107fd5780636825a71a146108145780636f7920fd146109225761021a565b8063313ce5671461069157806333bc1c5c146106bc5780634172d080146106c65780634b0ee02a146106f15761021a565b806320f14e79116101ed57806320f14e791461037857806322774abe1461047457806322ba14e81461055e57806323b872dd146105995780632f6c493c1461062c5761021a565b806306fdde031461021c578063095ea7b3146102ac57806318160ddd1461031f5780631ac46a1c1461034a575b005b34801561022857600080fd5b506102316112a5565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610271578082015181840152602081019050610256565b50505050905090810190601f16801561029e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102b857600080fd5b50610305600480360360408110156102cf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112de565b604051808215151515815260200191505060405180910390f35b34801561032b57600080fd5b506103346113d0565b6040518082815260200191505060405180910390f35b6103766004803603602081101561036057600080fd5b81019080803590602001909291905050506113d6565b005b34801561038457600080fd5b5061045e6004803603604081101561039b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156103d857600080fd5b8201836020820111156103ea57600080fd5b8035906020019184600183028401116401000000008311171561040c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611559565b6040518082815260200191505060405180910390f35b34801561048057600080fd5b506105446004803603604081101561049757600080fd5b81019080803590602001906401000000008111156104b457600080fd5b8201836020820111156104c657600080fd5b803590602001918460018302840111640100000000831117156104e857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050611780565b604051808215151515815260200191505060405180910390f35b34801561056a57600080fd5b506105976004803603602081101561058157600080fd5b8101908080359060200190929190505050611be2565b005b3480156105a557600080fd5b50610612600480360360608110156105bc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c99565b604051808215151515815260200191505060405180910390f35b34801561063857600080fd5b5061067b6004803603602081101561064f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f15565b6040518082815260200191505060405180910390f35b34801561069d57600080fd5b506106a6612372565b6040518082815260200191505060405180910390f35b6106c4612377565b005b3480156106d257600080fd5b506106db612544565b6040518082815260200191505060405180910390f35b3480156106fd57600080fd5b506107406004803603602081101561071457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061254a565b6040518082815260200191505060405180910390f35b34801561076257600080fd5b5061076b6126b2565b005b34801561077957600080fd5b506107826128a0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107c25780820151818401526020810190506107a7565b50505050905090810190601f1680156107ef5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561080957600080fd5b5061081261293e565b005b34801561082057600080fd5b506108fa6004803603604081101561083757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561087457600080fd5b82018360208201111561088657600080fd5b803590602001918460018302840111640100000000831117156108a857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612bc7565b6040518084815260200183815260200182151515158152602001935050505060405180910390f35b34801561092e57600080fd5b50610937612c21565b6040518082815260200191505060405180910390f35b34801561095957600080fd5b5061099c6004803603602081101561097057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c2f565b6040518082815260200191505060405180910390f35b3480156109be57600080fd5b50610a0b600480360360408110156109d557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612c78565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a4b578082015181840152602081019050610a30565b50505050905090810190601f168015610a785780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610a9257600080fd5b50610a9b612d3e565b604051808215151515815260200191505060405180910390f35b348015610ac157600080fd5b50610ba560048036036060811015610ad857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610b1557600080fd5b820183602082011115610b2757600080fd5b80359060200191846001830284011164010000000083111715610b4957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050612d51565b6040518082815260200191505060405180910390f35b348015610bc757600080fd5b50610bd0612eb8565b6040518082815260200191505060405180910390f35b348015610bf257600080fd5b50610bfb612ebe565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c3b578082015181840152602081019050610c20565b50505050905090810190601f168015610c685780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c8257600080fd5b50610ccf60048036036040811015610c9957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612ef7565b604051808215151515815260200191505060405180910390f35b348015610cf557600080fd5b50610d3860048036036020811015610d0c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613060565b6040518082815260200191505060405180910390f35b610d566131bd565b005b348015610d6457600080fd5b50610e5260048036036080811015610d7b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190640100000000811115610db857600080fd5b820183602082011115610dca57600080fd5b80359060200191846001830284011164010000000083111715610dec57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019092919080359060200190929190505050613386565b604051808215151515815260200191505060405180910390f35b348015610e7857600080fd5b50610e81613857565b6040518082815260200191505060405180910390f35b610ec360048036036020811015610ead57600080fd5b8101908080359060200190929190505050613864565b005b348015610ed157600080fd5b50610eda613a2c565b6040518082815260200191505060405180910390f35b348015610efc57600080fd5b50610fc060048036036040811015610f1357600080fd5b8101908080359060200190640100000000811115610f3057600080fd5b820183602082011115610f4257600080fd5b80359060200191846001830284011164010000000083111715610f6457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050613a3a565b604051808215151515815260200191505060405180910390f35b348015610fe657600080fd5b50610fef613e91565b6040518082815260200191505060405180910390f35b34801561101157600080fd5b506110eb6004803603604081101561102857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561106557600080fd5b82018360208201111561107757600080fd5b8035906020019184600183028401116401000000008311171561109957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050613e97565b6040518082815260200191505060405180910390f35b34801561110d57600080fd5b506111706004803603604081101561112457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614007565b6040518082815260200191505060405180910390f35b34801561119257600080fd5b50611260600480360360608110156111a957600080fd5b81019080803590602001906401000000008111156111c657600080fd5b8201836020820111156111d857600080fd5b803590602001918460018302840111640100000000831117156111fa57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001909291908035906020019092919050505061408e565b604051808215151515815260200191505060405180910390f35b34801561128657600080fd5b5061128f61455e565b6040518082815260200191505060405180910390f35b6040518060400160405280600d81526020017f4167726931307820546f6b656e0000000000000000000000000000000000000081525081565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60025481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461147c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061467e6022913960400191505060405180910390fd5b6000611489600183614564565b9050600061149960025483614593565b9050806012600a0a630bebc2000210156114b257600080fd5b8060028190555081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167fa1a157c3c4985bd2f56d47ee44a30ec884c8c6dd9f284d60978fe1f91cb91a6a836040518082815260200191505060405180910390a2505050565b600042600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020836040518082805190602001908083835b602083106115cf57805182526020820191506020810190506020830392506115ac565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060010154111580156116c85750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020826040518082805190602001908083835b60208310611682578051825260208201915060208101905060208303925061165f565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060020160009054906101000a900460ff16155b1561177a57600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020826040518082805190602001908083835b60208310611740578051825260208201915060208101905060208303925061171d565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206000015490505b92915050565b60008061178d3385613e97565b116040518060400160405280601081526020017f4e6f20746f6b656e73206c6f636b6564000000000000000000000000000000008152509061186a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561182f578082015181840152602081019050611814565b50505050905090810190601f16801561185c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506118753083612ef7565b5081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020846040518082805190602001908083835b602083106118ea57805182526020820191506020810190506020830392506118c7565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206000015401600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020846040518082805190602001908083835b602083106119955780518252602082019150602081019050602083039250611972565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000181905550826040518082805190602001908083835b60208310611a0357805182526020820191506020810190506020830392506119e0565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390203373ffffffffffffffffffffffffffffffffffffffff167f06009b5038a1b81dafdb4c0c9e3c5a87c01a75ebfe90071abd5ab7bfc61bd466600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020866040518082805190602001908083835b60208310611adb5780518252602082019150602081019050602083039250611ab8565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000154600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020876040518082805190602001908083835b60208310611b855780518252602082019150602081019050602083039250611b62565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060010154604051808381526020018281526020019250505060405180910390a36001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061467e6022913960400191505060405180910390fd5b6201518081024201600b8190555050565b600081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015611d66575081600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b8015611d725750600082115b15611f095781600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555081600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050611f0e565b600090505b9392505050565b60008060008090505b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081101561229e5761205c846000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110611fb457fe5b906000526020600020018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120525780601f1061202757610100808354040283529160200191612052565b820191906000526020600020905b81548152906001019060200180831161203557829003601f168201915b5050505050611559565b9150600082111561229157818301925060018060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106120f557fe5b90600052602060002001604051808280546001816001161561010002031660029004801561215a5780601f1061213857610100808354040283529182019161215a565b820191906000526020600020905b815481529060010190602001808311612146575b5050915050908152602001604051809103902060020160006101000a81548160ff0219169083151502179055506000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081815481106121d057fe5b9060005260206000200160405180828054600181600116156101000203166002900480156122355780601f10612213576101008083540402835291820191612235565b820191906000526020600020905b815481529060010190602001808311612221575b505091505060405180910390208473ffffffffffffffffffffffffffffffffffffffff167ffe10613d40670f6971204daf3a4fe1cb8863b3e7ebbd491a88cae5589a71f71c846040518082815260200191505060405180910390a35b8080600101915050611f1e565b50600082111561236c573073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561232f57600080fd5b505af1158015612343573d6000803e3d6000fd5b505050506040513d602081101561235957600080fd5b8101908080519060200190929190505050505b50919050565b601281565b42600b54106040518060400160405280601e81526020017f5075626c69632073616c65206f6620746f6b656e206973206c6f636b6564000081525090612458576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561241d578082015181840152602081019050612402565b50505050905090810190601f16801561244a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600034141561246757600080fd5b6000612475346107cb614564565b9050600061248560025483614593565b9050806012600a0a630bebc20002101561249e57600080fd5b8060028190555081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167f39e4e54b9f6e81ea0b4d7c560680d9af2d8f94a1f03bc61870c7f65e933ce7a0836040518082815260200191505060405180910390a25050565b6107cb81565b600061255582612c2f565b905060008090505b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156126ac5761269b836000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106125f357fe5b906000526020600020018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156126915780601f1061266657610100808354040283529160200191612691565b820191906000526020600020905b81548152906001019060200180831161267457829003601f168201915b5050505050613e97565b82019150808060010191505061255d565b50919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612758576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061467e6022913960400191505060405180910390fd5b600860149054906101000a900460ff161561277257600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146127cc57600080fd5b6012600a0a620f42400260025410156127e457600080fd5b600a54431115801561280257506012600a0a630bebc2000260025414155b1561280c57600080fd5b6001600860146101000a81548160ff021916908315150217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505061289e57600080fd5b565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156129365780601f1061290b57610100808354040283529160200191612936565b820191906000526020600020905b81548152906001019060200180831161291957829003601f168201915b505050505081565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146129e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061467e6022913960400191505060405180910390fd5b600860149054906101000a900460ff16156129fe57600080fd5b600a544311612a0c57600080fd5b6012600a0a620f42400260025410612a2357600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415612a7e57600080fd5b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415612ad057600080fd5b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b21600254826145bb565b60028190555060006107cb8281612b3457fe5b0490503373ffffffffffffffffffffffffffffffffffffffff167fb6c0eca8138e097d71e2dd31e19a1266487f0553f170b7260ffe68bcbe9ff8a7826040518082815260200191505060405180910390a23373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050612bc357600080fd5b5050565b600160205281600052604060002081805160208101820180518482526020830160208501208183528095505050505050600091509150508060000154908060010154908060020160009054906101000a900460ff16905083565b6012600a0a630bebc2000281565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006020528160005260406000208181548110612c9157fe5b90600052602060002001600091509150508054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612d365780601f10612d0b57610100808354040283529160200191612d36565b820191906000526020600020905b815481529060010190602001808311612d1957829003601f168201915b505050505081565b600860149054906101000a900460ff1681565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020846040518082805190602001908083835b60208310612dc75780518252602082019150602081019050602083039250612da4565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600101541115612eb157600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020836040518082805190602001908083835b60208310612e775780518252602082019150602081019050602083039250612e54565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206000015490505b9392505050565b600a5481565b6040518060400160405280600481526020017f414731300000000000000000000000000000000000000000000000000000000081525081565b600081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015612f485750600082115b156130555781600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905061305a565b600090505b92915050565b600080600090505b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156131b7576131a6836000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106130fe57fe5b906000526020600020018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561319c5780601f106131715761010080835404028352916020019161319c565b820191906000526020600020905b81548152906001019060200180831161317f57829003601f168201915b5050505050611559565b820191508080600101915050613068565b50919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613263576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061467e6022913960400191505060405180910390fd5b600860149054906101000a900460ff161561327d57600080fd5b60095443101561328c57600080fd5b600a5443111561329b57600080fd5b60003414156132a957600080fd5b60006132b7346107cb614564565b905060006132c760025483614593565b9050806012600a0a630bebc2000210156132e057600080fd5b8060028190555081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167fa1a157c3c4985bd2f56d47ee44a30ec884c8c6dd9f284d60978fe1f91cb91a6a836040518082815260200191505060405180910390a25050565b60008062015180830242019050600061339f8787613e97565b146040518060400160405280601581526020017f546f6b656e7320616c7265616479206c6f636b656400000000000000000000008152509061347c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613441578082015181840152602081019050613426565b50505050905090810190601f16801561346e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008414156040518060400160405280601381526020017f416d6f756e742063616e206e6f742062652030000000000000000000000000008152509061355e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613523578082015181840152602081019050613508565b50505050905090810190601f1680156135505780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020866040518082805190602001908083835b602083106135d457805182526020820191506020810190506020830392506135b1565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000154141561368d576000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002085908060018154018082558091505090600182039060005260206000200160009091929091909150908051906020019061368a9291906145d8565b50505b6136973085612ef7565b50604051806060016040528085815260200182815260200160001515815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020866040518082805190602001908083835b602083106137295780518252602082019150602081019050602083039250613706565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff021916908315150217905550905050846040518082805190602001908083835b602083106137c757805182526020820191506020810190506020830392506137a4565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208673ffffffffffffffffffffffffffffffffffffffff167f06009b5038a1b81dafdb4c0c9e3c5a87c01a75ebfe90071abd5ab7bfc61bd4668684604051808381526020018281526020019250505060405180910390a36001915050949350505050565b6012600a0a620f42400281565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461390a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061467e6022913960400191505060405180910390fd5b600860149054906101000a900460ff161561392457600080fd5b60095443101561393357600080fd5b600a5443111561394257600080fd5b600034141561395057600080fd5b600061395c3483614564565b9050600061396c60025483614593565b9050806012600a0a630bebc20002101561398557600080fd5b8060028190555081600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503373ffffffffffffffffffffffffffffffffffffffff167fa1a157c3c4985bd2f56d47ee44a30ec884c8c6dd9f284d60978fe1f91cb91a6a836040518082815260200191505060405180910390a2505050565b6012600a0a6302aea5400281565b600080613a473385613e97565b116040518060400160405280601081526020017f4e6f20746f6b656e73206c6f636b65640000000000000000000000000000000081525090613b24576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613ae9578082015181840152602081019050613ace565b50505050905090810190601f168015613b165780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020846040518082805190602001908083835b60208310613b995780518252602082019150602081019050602083039250613b76565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206001015401600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020846040518082805190602001908083835b60208310613c445780518252602082019150602081019050602083039250613c21565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060010181905550826040518082805190602001908083835b60208310613cb25780518252602082019150602081019050602083039250613c8f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390203373ffffffffffffffffffffffffffffffffffffffff167f06009b5038a1b81dafdb4c0c9e3c5a87c01a75ebfe90071abd5ab7bfc61bd466600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020866040518082805190602001908083835b60208310613d8a5780518252602082019150602081019050602083039250613d67565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060000154600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020876040518082805190602001908083835b60208310613e345780518252602082019150602081019050602083039250613e11565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060010154604051808381526020018281526020019250505060405180910390a36001905092915050565b60095481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020826040518082805190602001908083835b60208310613f0c5780518252602082019150602081019050602083039250613ee9565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902060020160009054906101000a900460ff1661400157600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020826040518082805190602001908083835b60208310613fc75780518252602082019150602081019050602083039250613fa4565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390206000015490505b92915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000806201518083024201905060006140a73387613e97565b146040518060400160405280601581526020017f546f6b656e7320616c7265616479206c6f636b6564000000000000000000000081525090614184576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561414957808201518184015260208101905061412e565b50505050905090810190601f1680156141765780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008414156040518060400160405280601381526020017f416d6f756e742063616e206e6f7420626520300000000000000000000000000081525090614266576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561422b578082015181840152602081019050614210565b50505050905090810190601f1680156142585780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020866040518082805190602001908083835b602083106142dc57805182526020820191506020810190506020830392506142b9565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600001541415614395576000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208590806001815401808255809150509060018203906000526020600020016000909192909190915090805190602001906143929291906145d8565b50505b61439f3085612ef7565b50604051806060016040528085815260200182815260200160001515815250600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020866040518082805190602001908083835b60208310614431578051825260208201915060208101905060208303925061440e565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020600082015181600001556020820151816001015560408201518160020160006101000a81548160ff021916908315150217905550905050846040518082805190602001908083835b602083106144cf57805182526020820191506020810190506020830392506144ac565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390203373ffffffffffffffffffffffffffffffffffffffff167f06009b5038a1b81dafdb4c0c9e3c5a87c01a75ebfe90071abd5ab7bfc61bd4668684604051808381526020018281526020019250505060405180910390a360019150509392505050565b600b5481565b6000808284029050600084148061458357508284828161458057fe5b04145b61458957fe5b8091505092915050565b60008082840190508381101580156145ab5750828110155b6145b157fe5b8091505092915050565b6000818310156145c757fe5b600082840390508091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061461957805160ff1916838001178555614647565b82800160010185558215614647579182015b8281111561464657825182559160200191906001019061462b565b5b5090506146549190614658565b5090565b61467a91905b8082111561467657600081600090555060010161465e565b5090565b9056fe4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f6e2ea265627a7a7231582023ce22b7c4e901d53faac2f9db2b7ae1c0e0951c35a581c114e8ff2cb4171f5e64736f6c634300050b0032

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

000000000000000000000000c32c34a91e782be1fe3908110015b7bff81461f1000000000000000000000000ff9461810de4bd809ab1e20b16c31fbede33510b000000000000000000000000000000000000000000000000000000000084ab2f0000000000000000000000000000000000000000000000000de0b6b3a763ffff

-----Decoded View---------------
Arg [0] : _ethFundDeposit (address): 0xc32C34a91E782Be1FE3908110015B7bFf81461F1
Arg [1] : _agtFundDeposit (address): 0xff9461810de4bD809ab1e20b16c31fbedE33510b
Arg [2] : _fundingStartBlock (uint256): 8694575
Arg [3] : _fundingEndBlock (uint256): 999999999999999999

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000c32c34a91e782be1fe3908110015b7bff81461f1
Arg [1] : 000000000000000000000000ff9461810de4bd809ab1e20b16c31fbede33510b
Arg [2] : 000000000000000000000000000000000000000000000000000000000084ab2f
Arg [3] : 0000000000000000000000000000000000000000000000000de0b6b3a763ffff


Deployed Bytecode Sourcemap

13589:6775:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13654:45;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13654:45:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;13654:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2434:214;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2434:214:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2434:214:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;815:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;815:26:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18157:566;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18157:566:0;;;;;;;;;;;;;;;;;:::i;:::-;;12032:297;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12032:297:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12032:297:0;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;12032:297:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;12032:297:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;12032:297:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;12032:297:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11307:470;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11307:470:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11307:470:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;11307:470:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;11307:470:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;11307:470:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;11307:470:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18034:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18034:115:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18034:115:0;;;;;;;;;;;;;;;;;:::i;:::-;;1874:429;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1874:429:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1874:429:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12489:628;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12489:628:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;12489:628:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13751:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13751:37:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17399:627;;;:::i;:::-;;14456:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14456:48:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10210:297;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10210:297:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10210:297:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18792:531;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18792:531:0;;;:::i;:::-;;13795:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13795:29:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;13795:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19430:891;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19430:891:0;;;:::i;:::-;;3360:62;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3360:62:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3360:62:0;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3360:62:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3360:62:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3360:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;3360:62:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14540:72;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14540:72:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2311:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2311:115:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2311:115:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3015:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3015:46:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3015:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3015:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14184:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14184:23:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9787:259;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9787:259:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9787:259:0;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;9787:259:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9787:259:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;9787:259:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;9787:259:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14307:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14307:30:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13706:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13706:38:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;13706:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1528:338;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1528:338:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1528:338:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13280:300;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13280:300:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13280:300:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16659:732;;;:::i;:::-;;8354:628;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8354:628:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;8354:628:0;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;8354:628:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8354:628:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;8354:628:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;8354:628:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14619:69;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14619:69:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15872:779;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15872:779:0;;;;;;;;;;;;;;;;;:::i;:::-;;14344:61;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14344:61:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10690:419;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10690:419:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10690:419:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;10690:419:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;10690:419:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;10690:419:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;10690:419:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14268:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14268:32:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9229:230;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9229:230:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9229:230:0;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;9229:230:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9229:230:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;9229:230:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;9229:230:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2656:142;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2656:142:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2656:142:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7223:777;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7223:777:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7223:777:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7223:777:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7223:777:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;7223:777:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;7223:777:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14695:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14695:29:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13654:45;;;;;;;;;;;;;;;;;;;:::o;2434:214::-;2501:12;2558:6;2526:7;:19;2534:10;2526:19;;;;;;;;;;;;;;;:29;2546:8;2526:29;;;;;;;;;;;;;;;:38;;;;2601:8;2580:38;;2589:10;2580:38;;;2611:6;2580:38;;;;;;;;;;;;;;;;;;2636:4;2629:11;;2434:214;;;;:::o;815:26::-;;;;:::o;18157:566::-;14993:5;;;;;;;;;;;14979:19;;:10;:19;;;14957:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18243:14;18260:27;18269:1;18272:14;18260:8;:27::i;:::-;18243:44;;18332:21;18356:28;18364:11;;18377:6;18356:7;:28::i;:::-;18332:52;;18465:13;13786:2;14600;:12;14584:13;:28;18446:32;18442:46;;;18480:8;;;18442:46;18546:13;18532:11;:27;;;;18592:6;18568:8;:20;18577:10;18568:20;;;;;;;;;;;;;;;;:30;;;;;;;;;;;18672:10;18662:29;;;18684:6;18662:29;;;;;;;;;;;;;;;;;;15071:1;;18157:566;:::o;12032:297::-;12142:14;12211:3;12178:6;:11;12185:3;12178:11;;;;;;;;;;;;;;;12190:7;12178:20;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;12178:20:0;;;;;;;;;;;;;;;;;;;;;:29;;;:36;;:69;;;;;12219:6;:11;12226:3;12219:11;;;;;;;;;;;;;;;12231:7;12219:20;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;12219:20:0;;;;;;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;12218:29;12178:69;12174:147;;;12294:6;:11;12301:3;12294:11;;;;;;;;;;;;;;;12306:7;12294:20;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;12294:20:0;;;;;;;;;;;;;;;;;;;;;:27;;;12285:36;;12174:147;12032:297;;;;:::o;11307:470::-;11409:4;11475:1;11439:33;11452:10;11464:7;11439:12;:33::i;:::-;:37;11478:10;;;;;;;;;;;;;;;;;11431:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;11431:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11500:32;11517:4;11524:7;11500:8;:32::i;:::-;;11620:7;11582:6;:18;11589:10;11582:18;;;;;;;;;;;;;;;11601:7;11582:27;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;11582:27:0;;;;;;;;;;;;;;;;;;;;;:34;;;:46;11545:6;:18;11552:10;11545:18;;;;;;;;;;;;;;;11564:7;11545:27;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;11545:27:0;;;;;;;;;;;;;;;;;;;;;:34;;:83;;;;11665:7;11646:101;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;11646:101:0;;;;;;;;;;;;;;;;11653:10;11646:101;;;11674:6;:18;11681:10;11674:18;;;;;;;;;;;;;;;11693:7;11674:27;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;11674:27:0;;;;;;;;;;;;;;;;;;;;;:34;;;11710:6;:18;11717:10;11710:18;;;;;;;;;;;;;;;11729:7;11710:27;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;11710:27:0;;;;;;;;;;;;;;;;;;;;;:36;;;11646:101;;;;;;;;;;;;;;;;;;;;;;;;11765:4;11758:11;;11307:470;;;;:::o;18034:115::-;14993:5;;;;;;;;;;;14979:19;;:10;:19;;;14957:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18134:6;18126:5;:14;18119:3;:22;18102:14;:39;;;;18034:115;:::o;1874:429::-;1956:12;2002:6;1983:8;:15;1992:5;1983:15;;;;;;;;;;;;;;;;:25;;:65;;;;;2042:6;2012:7;:14;2020:5;2012:14;;;;;;;;;;;;;;;:26;2027:10;2012:26;;;;;;;;;;;;;;;;:36;;1983:65;:79;;;;;2061:1;2052:6;:10;1983:79;1979:317;;;2092:6;2075:8;:13;2084:3;2075:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;2128:6;2109:8;:15;2118:5;2109:15;;;;;;;;;;;;;;;;:25;;;;;;;;;;;2175:6;2145:7;:14;2153:5;2145:14;;;;;;;;;;;;;;;:26;2160:10;2145:26;;;;;;;;;;;;;;;;:36;;;;;;;;;;;2213:3;2197:28;;2206:5;2197:28;;;2218:6;2197:28;;;;;;;;;;;;;;;;;;2243:4;2236:11;;;;1979:317;2281:5;2274:12;;1874:429;;;;;;:::o;12489:628::-;12552:24;12594:20;12632:9;12644:1;12632:13;;12627:395;12651:10;:15;12662:3;12651:15;;;;;;;;;;;;;;;:22;;;;12647:1;:26;12627:395;;;12710:41;12727:3;12732:10;:15;12743:3;12732:15;;;;;;;;;;;;;;;12748:1;12732:18;;;;;;;;;;;;;;;12710:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;:41::i;:::-;12695:56;;12785:1;12770:12;:16;12766:245;;;12846:12;12826:16;:33;12807:52;;12920:4;12878:6;:11;12885:3;12878:11;;;;;;;;;;;;;;;12890:10;:15;12901:3;12890:15;;;;;;;;;;;;;;;12906:1;12890:18;;;;;;;;;;;;;;;12878:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:39;;;:46;;;;;;;;;;;;;;;;;;12962:10;:15;12973:3;12962:15;;;;;;;;;;;;;;;12978:1;12962:18;;;;;;;;;;;;;;;12948:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12957:3;12948:47;;;12982:12;12948:47;;;;;;;;;;;;;;;;;;12766:245;12675:3;;;;;;;12627:395;;;;13057:1;13038:16;:20;13034:75;;;13073:4;:13;;;13087:3;13092:16;13073:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13073:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13073:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13073:36:0;;;;;;;;;;;;;;;;;13034:75;12489:628;;;;:::o;13751:37::-;13786:2;13751:37;:::o;17399:627::-;17472:3;17455:14;;:20;17477:13;;;;;;;;;;;;;;;;;17447:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;17447:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17517:1;17504:9;:14;17500:28;;;17520:8;;;17500:28;17537:14;17554:38;17563:9;14500:4;17554:8;:38::i;:::-;17537:55;;17637:21;17661:28;17669:11;;17682:6;17661:7;:28::i;:::-;17637:52;;17770:13;13786:2;14600;:12;14584:13;:28;17751:32;17747:46;;;17785:8;;;17747:46;17851:13;17837:11;:27;;;;17897:6;17873:8;:20;17882:10;17873:20;;;;;;;;;;;;;;;;:30;;;;;;;;;;;17975:10;17967:27;;;17987:6;17967:27;;;;;;;;;;;;;;;;;;17399:627;;:::o;14456:48::-;14500:4;14456:48;:::o;10210:297::-;10295:14;10336;10346:3;10336:9;:14::i;:::-;10327:23;;10368:9;10380:1;10368:13;;10363:137;10387:10;:15;10398:3;10387:15;;;;;;;;;;;;;;;:22;;;;10383:1;:26;10363:137;;;10450:37;10463:3;10468:10;:15;10479:3;10468:15;;;;;;;;;;;;;;;10484:1;10468:18;;;;;;;;;;;;;;;10450:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:12;:37::i;:::-;10440:6;:48;10431:57;;10411:3;;;;;;;10363:137;;;;10210:297;;;:::o;18792:531::-;14993:5;;;;;;;;;;;14979:19;;:10;:19;;;14957:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18843:11;;;;;;;;;;;18839:25;;;18856:8;;;18839:25;18891:14;;;;;;;;;;;18877:28;;:10;:28;;;18873:42;;18907:8;;;18873:42;13786:2;14676;:12;14662:11;:26;18971:11;;:30;18968:43;;;19003:8;;;18968:43;19091:15;;19075:12;:31;;:66;;;;;13786:2;14600;:12;14584:13;:28;19110:11;;:31;;19075:66;19072:79;;;19143:8;;;19072:79;19204:4;19190:11;;:18;;;;;;;;;;;;;;;;;;19221:14;;;;;;;;;;;:19;;:42;19249:4;19241:21;;;19221:42;;;;;;;;;;;;;;;;;;;;;;;19217:56;;19265:8;;;19217:56;18792:531::o;13795:29::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19430:891::-;14993:5;;;;;;;;;;;14979:19;;:10;:19;;;14957:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19478:11;;;;;;;;;;;19475:24;;;19491:8;;;19475:24;19584:15;;19568:12;:31;19564:45;;19601:8;;;19564:45;13786:2;14676;:12;14662:11;:26;19666:11;;:31;19663:44;;19699:8;;;19663:44;19766:14;;;;;;;;;;;19752:28;;:10;:28;;;19749:41;;;19782:8;;;19749:41;19843:14;19860:8;:20;19869:10;19860:20;;;;;;;;;;;;;;;;19843:37;;19903:1;19893:6;:11;19889:25;;;19906:8;;;19889:25;19946:1;19923:8;:20;19932:10;19923:20;;;;;;;;;;;;;;;:24;;;;19970:33;19983:11;;19996:6;19970:12;:33::i;:::-;19956:11;:47;;;;20026:14;14500:4;20043:6;:26;;;;;;20026:43;;20145:10;20135:29;;;20157:6;20135:29;;;;;;;;;;;;;;;;;;20202:10;:15;;:23;20218:6;20202:23;;;;;;;;;;;;;;;;;;;;;;;20197:38;;20227:8;;;20197:38;15071:1;;19430:891::o;3360:62::-;;;;;;;;;;;28:7:-1;22:14;169:4;160:7;156:18;147:7;143:32;204:13;198:20;246:8;231:13;224:31;316:4;307:7;303:18;296:4;287:7;283:18;273:49;350:9;335:13;328:32;378:4;366:16;;0:388;;;;3360:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14540:72::-;13786:2;14600;:12;14584:13;:28;14540:72;:::o;2311:115::-;2367:15;2402:8;:16;2411:6;2402:16;;;;;;;;;;;;;;;;2395:23;;2311:115;;;:::o;3015:46::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14184:23::-;;;;;;;;;;;;;:::o;9787:259::-;9914:14;9982:5;9950:6;:11;9957:3;9950:11;;;;;;;;;;;;;;;9962:7;9950:20;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;9950:20:0;;;;;;;;;;;;;;;;;;;;;:29;;;:37;9946:92;;;10011:6;:11;10018:3;10011:11;;;;;;;;;;;;;;;10023:7;10011:20;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;10011:20:0;;;;;;;;;;;;;;;;;;;;;:27;;;10002:36;;9946:92;9787:259;;;;;:::o;14307:30::-;;;;:::o;13706:38::-;;;;;;;;;;;;;;;;;;;:::o;1528:338::-;1591:12;1642:6;1618:8;:20;1627:10;1618:20;;;;;;;;;;;;;;;;:30;;:44;;;;;1661:1;1652:6;:10;1618:44;1614:245;;;1699:6;1675:8;:20;1684:10;1675:20;;;;;;;;;;;;;;;;:30;;;;;;;;;;;1733:6;1716:8;:13;1725:3;1716:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;1776:3;1755:33;;1764:10;1755:33;;;1781:6;1755:33;;;;;;;;;;;;;;;;;;1806:4;1799:11;;;;1614:245;1844:5;1837:12;;1528:338;;;;;:::o;13280:300::-;13370:24;13417:9;13429:1;13417:13;;13412:161;13436:10;:15;13447:3;13436:15;;;;;;;;;;;;;;;:22;;;;13432:1;:26;13412:161;;;13519:41;13536:3;13541:10;:15;13552:3;13541:15;;;;;;;;;;;;;;;13557:1;13541:18;;;;;;;;;;;;;;;13519:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:16;:41::i;:::-;13499:16;:62;13480:81;;13460:3;;;;;;;13412:161;;;;13280:300;;;:::o;16659:732::-;14993:5;;;;;;;;;;;14979:19;;:10;:19;;;14957:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16723:11;;;;;;;;;;;16719:25;;;16736:8;;;16719:25;16772:17;;16757:12;:32;16753:46;;;16791:8;;;16753:46;16827:15;;16812:12;:30;16808:44;;;16844:8;;;16808:44;16878:1;16865:9;:14;16861:28;;;16881:8;;;16861:28;16900:14;16917:38;16926:9;14500:4;16917:8;:38::i;:::-;16900:55;;17000:21;17024:28;17032:11;;17045:6;17024:7;:28::i;:::-;17000:52;;17133:13;13786:2;14600;:12;14584:13;:28;17114:32;17110:46;;;17148:8;;;17110:46;17214:13;17200:11;:27;;;;17260:6;17236:8;:20;17245:10;17236:20;;;;;;;;;;;;;;;;:30;;;;;;;;;;;17340:10;17330:29;;;17352:6;17330:29;;;;;;;;;;;;;;;;;;15071:1;;16659:732::o;8354:628::-;8482:4;8504:18;8540:6;8532:5;:14;8525:3;:22;8504:43;;8621:1;8591:26;8604:3;8609:7;8591:12;:26::i;:::-;:31;8624:14;;;;;;;;;;;;;;;;;8583:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;8583:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8669:1;8658:7;:12;;8672:11;;;;;;;;;;;;;;;;;8650:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;8650:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8732:1;8701:6;:11;8708:3;8701:11;;;;;;;;;;;;;;;8713:7;8701:20;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;8701:20:0;;;;;;;;;;;;;;;;;;;;;:27;;;:32;8697:80;;;8748:10;:15;8759:3;8748:15;;;;;;;;;;;;;;;8769:7;8748:29;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;8748:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;8697:80;8790:32;8807:4;8814:7;8790:8;:32::i;:::-;;8858:37;;;;;;;;8868:7;8858:37;;;;8877:10;8858:37;;;;8889:5;8858:37;;;;;8835:6;:11;8842:3;8835:11;;;;;;;;;;;;;;;8847:7;8835:20;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;8835:20:0;;;;;;;;;;;;;;;;;;;;;:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8923:7;8911:41;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;8911:41:0;;;;;;;;;;;;;;;;8918:3;8911:41;;;8932:7;8941:10;8911:41;;;;;;;;;;;;;;;;;;;;;;;;8970:4;8963:11;;;8354:628;;;;;;:::o;14619:69::-;13786:2;14676;:12;14662:11;:26;14619:69;:::o;15872:779::-;14993:5;;;;;;;;;;;14979:19;;:10;:19;;;14957:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15977:11;;;;;;;;;;;15973:25;;;15990:8;;;15973:25;16026:17;;16011:12;:32;16007:46;;;16045:8;;;16007:46;16081:15;;16066:12;:30;16062:44;;;16098:8;;;16062:44;16132:1;16119:9;:14;16115:28;;;16135:8;;;16115:28;16154:14;16171:44;16180:9;16191:23;16171:8;:44::i;:::-;16154:61;;16260:21;16284:28;16292:11;;16305:6;16284:7;:28::i;:::-;16260:52;;16393:13;13786:2;14600;:12;14584:13;:28;16374:32;16370:46;;;16408:8;;;16370:46;16474:13;16460:11;:27;;;;16520:6;16496:8;:20;16505:10;16496:20;;;;;;;;;;;;;;;;:30;;;;;;;;;;;16600:10;16590:29;;;16612:6;16590:29;;;;;;;;;;;;;;;;;;15071:1;;15872:779;:::o;14344:61::-;13786:2;14393;:12;14378;:27;14344:61;:::o;10690:419::-;10782:4;10848:1;10812:33;10825:10;10837:7;10812:12;:33::i;:::-;:37;10851:10;;;;;;;;;;;;;;;;;10804:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;10804:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10954:5;10914:6;:18;10921:10;10914:18;;;;;;;;;;;;;;;10933:7;10914:27;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;10914:27:0;;;;;;;;;;;;;;;;;;;;;:36;;;:46;10875:6;:18;10882:10;10875:18;;;;;;;;;;;;;;;10894:7;10875:27;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;10875:27:0;;;;;;;;;;;;;;;;;;;;;:36;;:85;;;;10997:7;10978:101;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;10978:101:0;;;;;;;;;;;;;;;;10985:10;10978:101;;;11006:6;:18;11013:10;11006:18;;;;;;;;;;;;;;;11025:7;11006:27;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;11006:27:0;;;;;;;;;;;;;;;;;;;;;:34;;;11042:6;:18;11049:10;11042:18;;;;;;;;;;;;;;;11061:7;11042:27;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;11042:27:0;;;;;;;;;;;;;;;;;;;;;:36;;;10978:101;;;;;;;;;;;;;;;;;;;;;;;;11097:4;11090:11;;10690:419;;;;:::o;14268:32::-;;;;:::o;9229:230::-;9335:14;9372:6;:11;9379:3;9372:11;;;;;;;;;;;;;;;9384:7;9372:20;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;9372:20:0;;;;;;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;9367:84;;9424:6;:11;9431:3;9424:11;;;;;;;;;;;;;;;9436:7;9424:20;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;9424:20:0;;;;;;;;;;;;;;;;;;;;;:27;;;9415:36;;9367:84;9229:230;;;;:::o;2656:142::-;2730:17;2765:7;:15;2773:6;2765:15;;;;;;;;;;;;;;;:25;2781:8;2765:25;;;;;;;;;;;;;;;;2758:32;;2656:142;;;;:::o;7223:777::-;7326:4;7348:18;7384:6;7376:5;:14;7369:3;:22;7348:43;;7609:1;7572:33;7585:10;7597:7;7572:12;:33::i;:::-;:38;7612:14;;;;;;;;;;;;;;;;;7564:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;7564:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7657:1;7646:7;:12;;7660:11;;;;;;;;;;;;;;;;;7638:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;7638:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7727:1;7689:6;:18;7696:10;7689:18;;;;;;;;;;;;;;;7708:7;7689:27;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7689:27:0;;;;;;;;;;;;;;;;;;;;;:34;;;:39;7685:94;;;7743:10;:22;7754:10;7743:22;;;;;;;;;;;;;;;7771:7;7743:36;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;7743:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;7685:94;7792:32;7809:4;7816:7;7792:8;:32::i;:::-;;7867:37;;;;;;;;7877:7;7867:37;;;;7886:10;7867:37;;;;7898:5;7867:37;;;;;7837:6;:18;7844:10;7837:18;;;;;;;;;;;;;;;7856:7;7837:27;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7837:27:0;;;;;;;;;;;;;;;;;;;;;:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7941:7;7922:48;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7922:48:0;;;;;;;;;;;;;;;;7929:10;7922:48;;;7950:7;7959:10;7922:48;;;;;;;;;;;;;;;;;;;;;;;;7988:4;7981:11;;;7223:777;;;;;:::o;14695:29::-;;;;:::o;624:160::-;687:7;705:9;721:1;717;:5;705:17;;744:1;739;:6;738:20;;;;756:1;751;749;:3;;;;;;:8;738:20;731:28;;;;775:1;768:8;;;624:160;;;;:::o;300:158::-;361:7;379:9;395:1;391;:5;379:17;;418:1;413;:6;;412:20;;;;;430:1;425;:6;;412:20;405:28;;;;449:1;442:8;;;300:158;;;;:::o;466:150::-;533:7;563:1;558;:6;;551:14;;;;574:9;590:1;586;:5;574:17;;607:1;600:8;;;466:150;;;;:::o;13589:6775::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

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