Token ISLAMICOIN

 

Overview ERC-20

Price
$0.00 @ 0.000448 MATIC (-1.47%)
Fully Diluted Market Cap
Total Supply:
20,000,000,000 ISLAMI

Holders:
11,073 addresses

Transfers:
-

 
Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

OVERVIEW

ISLAMICOIN is a cryptocurrency creating a solution to financial independence for the future of the Global Muslim community aiming to assert its presence in the top financial markets.

Market

Volume (24H):$10,869.48
Market Capitalization:$0.00
Circulating Supply:0.00 ISLAMI
Market Data Source: Coinmarketcap


Update? Click here to update the token ICO / general information
# Exchange Pair Price  24H Volume % Volume
1
LBank
ISLAMI-USDT$0.0005
0.0000000 Btc
$10,795.60
21,167,720.000 ISLAMI
99.3284%
2
Dodo (Polygon)
0X9C891326FD8B1A713974F73BB604677E1E63396D-0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174$0.0005
0.0000000 Btc
$71.88
143,133.908 0X9C891326FD8B1A713974F73BB604677E1E63396D
0.6716%
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ISLAMICOIN

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT




/**
 
 كَمَثَلِ حَبَّةٍ أَنبَتَتْ سَبْعَ سَنَابِلَ فِي كُلِّ سُنبُلَةٍ مِّائَةُ حَبَّةٍ ۗ وَاللَّهُ يُضَاعِفُ لِمَن يَشَاءُ (سورة البقرة الأية 261)


/**
 * ISLAMICOIN Official smart contract / Date: 5th of September 2021
 * 
 * Website: https://islamicoin.finance
 * 
 * Official Social Accounts for ISLAMICOIN
 * 
 * 
 * Email: [email protected]
 * Facebook: https://facebook.com/islamicoin
 * Twitter: https://twiter.com/islamicoin
 * Reddit: https://www.reddit.com/r/islamicoin
 * Youtube: https://www.youtube.com/channel/UCPdg9Cx2g9DyTR_xD5S_lXA
 * Discord: https://discord.gg/5Ya8gDwaUr
 * Telegram: https://t.me/islamicoin1
 * Instagram: https://www.instagram.com/islamicoin
 * LinkedIn: https://www.linkedin.com/company/islamicoin
 */
pragma solidity ^0.8.4;

// Start Of Interface

/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IMatic {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * @dev Interface for the optional metadata functions from the ERC20 standard.
 *
 * _Available since v4.1._
 */
interface IMaticMetadata is IMatic {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

// Start of contracts


abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}


abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }
    
    

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }


    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

abstract contract IslamiMatic is Ownable, IMatic, IMaticMetadata {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;
    
    mapping(address => bool) AirDropBlacklist;
        event Blacklist(address indexed blackListed, bool value);

    uint256 private _totalSupply;
    uint256 private _finaltotalsupply;
    string private _name;
    string private _symbol;
    
    /**
     * @dev Sets the values for {name} and {symbol}.
     *
     * The default value of {decimals} is 18. To select a different value for
     * {decimals} you should overload it.
     *
     * All two of these values are immutable: they can only be set once during
     * construction.
     */
    constructor(string memory name_, string memory symbol_, uint256 totalsupply_) {
        _name = name_;
        _symbol = symbol_;
        _totalSupply = totalsupply_;
        _finaltotalsupply = 300000000000000000;   // 30 Billion ISLAMI
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Returns the number of decimals used to get its user representation.
     * For example, if `decimals` equals `2`, a balance of `505` tokens should
     * be displayed to a user as `5.05` (`505 / 10 ** 2`).
     *
     * Tokens usually opt for a value of 18, imitating the relationship between
     * Ether and Wei. This is the value {ECR20} uses, unless this function is
     * overridden;
     *
     * NOTE: This information is only used for _display_ purposes: it in
     * no way affects any of the arithmetic of the contract, including
     * {IERC20-balanceOf} and {IERC20-transfer}.
     */
    function decimals() public view virtual override returns (uint8) {
        return 7;
    }
    
    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }
    function maxSupply() public view returns (uint256){
        return _finaltotalsupply;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    /**
     * @dev See {IERC20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    /**
     * @dev See {IERC20-approve}.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     */
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    /**
     * @dev See {IERC20-transferFrom}.
     *
     * Emits an {Approval} event indicating the updated allowance. This is not
     * required by the EIP. See the note at the beginning of {ERC20}.
     *
     * Requirements:
     *
     * - `sender` and `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     * - the caller must have allowance for ``sender``'s tokens of at least
     * `amount`.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

    /**
     * @dev Atomically increases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * 
     * 
     * - `spender` cannot be the zero address.
     */
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    /**
     * @dev Atomically decreases the allowance granted to `spender` by the caller.
     *
     * This is an alternative to {approve} that can be used as a mitigation for
     * problems described in {IERC20-approve}.
     *
     * Emits an {Approval} event indicating the updated allowance.
     *
     * Requirements:
     *
     * - `spender` cannot be the zero address.
     * - `spender` must have allowance for the caller of at least
     * `subtractedValue`.
     */
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    /**
     * @dev Moves `amount` of tokens from `sender` to `recipient`.
     *
     * This internal function is equivalent to {transfer}, and can be used to
     * e.g. implement automatic token fees, slashing mechanisms, etc.
     *
     * Emits a {Transfer} event.
     *
     * Requirements:
     *
     * - `sender` cannot be the zero address.
     * - `recipient` cannot be the zero address.
     * - `sender` must have a balance of at least `amount`.
     */
    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "Cannot transfer ISLAMI from zero address");
        require(recipient != address(0), "Cannot transfer ISLAMI to zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ISLAMI: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    /** @dev Creates `amount` tokens and assigns them to `account`, increasing
     * the total supply.
     *
     * Emits a {Transfer} event with `from` set to the zero address.
     *
     * Requirements:
     *
     * - `account` cannot be the zero address.
     */
    function _mint(address account, uint256 amount) internal {
        require(_totalSupply < _finaltotalsupply, "ISLAMICOIN Total Supply is 30 Billions Only");
        require(account != address(0), "ISLAMI: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

    /**
     * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
     *
     * This internal function is equivalent to `approve`, and can be used to
     * e.g. set automatic allowances for certain subsystems, etc.
     *
     * Emits an {Approval} event.
     *
     * Requirements:
     *
     * - `owner` cannot be the zero address.
     * - `spender` cannot be the zero address.
     */
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ISLAMI: approve from the zero address");
        require(spender != address(0), "ISLAMI: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    /**
     * @dev Hook that is called before any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * will be transferred to `to`.
     * - when `from` is zero, `amount` tokens will be minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens will be burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _beforeTokenTransfer( address from, address to, uint256 amount) internal virtual {}

    /**
     * @dev Hook that is called after any transfer of tokens. This includes
     * minting and burning.
     *
     * Calling conditions:
     *
     * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens
     * has been transferred to `to`.
     * - when `from` is zero, `amount` tokens have been minted for `to`.
     * - when `to` is zero, `amount` of ``from``'s tokens have been burned.
     * - `from` and `to` are never both zero.
     *
     * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
     */
    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
   
   
    
  // Blacklist AirDrop address after one transaction, no more airddrop can be called
  
  function _blackListAirdrop(address _address, bool _isBlackListed) internal returns (bool) {
    require(AirDropBlacklist[_address] != _isBlackListed);
    AirDropBlacklist[_address] = _isBlackListed;
    emit Blacklist(_address, _isBlackListed);
    return true;
  }
}

/**
 * Token constructor, AirDrop & crowdsale
 */
contract ISLAMICOIN is IslamiMatic {
    
    uint256 internal aSBlock;uint256 internal aEBlock;uint256 internal aTot;uint256 internal aAmt; 
    uint256 internal sSBlock;uint256 internal sEBlock;uint256 internal sTot;
    uint256 internal sPrice; uint256 internal Charity;uint256 internal FinalAmount;
    
  
    uint256 internal sonbola = 10** decimals();
    uint256 internal qMint = 7776000;   // 90 Days
    uint256 internal tMint = 1725580799; // After 3 Years / Tuesday, September 5, 2024 11:59:59 PM "Team Mint"
    uint256 internal mintTime = block.timestamp + qMint;
    uint256 internal isMinted = 0;
    
    
    

    address AirDropAD = address(0xfdfF9779b1E996d0c98dFED7b7f21438624e0EA8);   // AirDrop contract    
    address CharityAD = address(0xC315A5Ce1e6330db2836BD3Ed1Fa7228C068cE20); // "Bayt Al-Mal / بيت المال" contract for charity
    
    
    constructor() IslamiMatic("ISLAMICOIN", "ISLAMI", 0) payable {
        
        _mint(msg.sender,     7999999990  * sonbola);    // ISLAMICOIN contract creator 
        _mint(address(this),  11800000000 * sonbola);    // Contract Address for crowdsale feature
        _mint(AirDropAD,      200000000   * sonbola);    // AirDrop 
        _mint(CharityAD,      10          * sonbola);    // Charity Address 2.5% add at each transfer from contract
        
     // No access control mechanism (for minting/pausing) and hence no governance
        
        Charity = 5; // Devided by 2 in Transfer function to represent Zakkat persentage 2.5%
    }
 
    function quarterMint()  public onlyOwner returns (bool success){
        require (block.timestamp >= mintTime, "Minting is not yet");
        _mint (address(this), 100000000 * sonbola);
        mintTime  = block.timestamp + qMint;
       return true;
    }
    function teamMint()  public onlyOwner returns (bool success){
        require (isMinted == 0,"Team minting is one time only");
        require (block.timestamp >= tMint, "Team Minting is not yet");
        _mint (msg.sender, 600000000 * sonbola);
        isMinted = 1;
       return true;
    }
    function getAirdrop(address Brother) public returns (bool success){
        require(block.number <= aEBlock, "Air Drop not started or ended");
        require(AirDropBlacklist[msg.sender] == false, "AirDrop can be claimed only once");
        aTot ++;
         if(msg.sender != Brother && balanceOf(Brother) != 0 && Brother != 0x0000000000000000000000000000000000000000){
          _transfer(AirDropAD, Brother, aAmt/2);
        }
        _transfer(AirDropAD, msg.sender, aAmt);
        super._blackListAirdrop(msg.sender, true);
        return true;
    
      }
      
    receive() external payable {
       require( msg.value > 0 );
   }
  function tokenSale(address) public payable returns (bool success){
    require(balanceOf(address(msg.sender)) <= 30000000 * sonbola , "You reached your public sale limit");  
    require(sSBlock <= block.number && block.number <= sEBlock, "Public Sale has ended or did not start yet");

    uint256 _eth = msg.value;
    uint256 _tkns;
   
    require (_eth >= 1 ether && _eth <= 1000 ether, "Minimum 1 MATIC / Maximum 1000 MATIC");
    _tkns = (sPrice*_eth) / 1 ether;
    sTot ++;
    
    _transfer(address(this), msg.sender, _tkns); 
    
    return true;
  }
  
 

  function viewAirdrop() public view returns(uint256 StartBlock, uint256 EndBlock, uint256 DropCount, uint256 DropAmount){
    return(aSBlock, aEBlock, aTot, aAmt);
  }
  function viewSale() public view returns(uint256 StartBlock, uint256 EndBlock, uint256 SaleCount, uint256 SalePrice){
    return(sSBlock, sEBlock, sTot,  sPrice);
  }
  
  function startAirdrop( uint _aEBlock, uint256 _aAmt) public onlyOwner {
    aEBlock = _aEBlock;aAmt = _aAmt * sonbola;
  }
  function startSale(uint256 _sEBlock, uint256 _sPrice) public onlyOwner{
   sEBlock = _sEBlock; sPrice =_sPrice * sonbola;
  }
  function end_Air_Drop () public onlyOwner{
          aEBlock = block.number;
  }
  function end_Sale () public onlyOwner{
          sEBlock = block.number;
  }
  function _transfer(address sender, address recipient, uint256 amount) internal virtual override {
        uint givecharity = (amount*Charity/2)/100;
        uint transferAmount = amount ;
        
         if(sender == CharityAD || recipient == CharityAD) {        // When donations sent to Bayt Al-Mal                                
            super._transfer(sender,recipient, transferAmount);
        }
        else if(balanceOf(address(this)) > givecharity) {        // if ISLAMICOIN contract is not empty (ISLAMI Tokens)                                 
            super._transfer(sender,recipient, transferAmount);
            super._transfer(address(this),CharityAD,givecharity);
        }
        else {                                                                   
            super._transfer(sender,recipient,transferAmount);
        }
    }
    function claimTokens(uint256 amt) public onlyOwner {
           require (amt > 0);
           address payable _owner = payable(msg.sender);
           _owner.transfer(amt *10** 18);
    }
    function Claim_ERC20(address tokenAddress, uint256 tokenAmount) public onlyOwner {
        IslamiMatic(tokenAddress).transfer(owner(), tokenAmount);
    }
}


/**
 *  NO ONE WILL REAP EXCEPT WHAT THEY SOW" (AL-QURAN, 6:164)
 * 
 * 
 * Edited by: ISLAMICOIN Developers
 */

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"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":"blackListed","type":"address"},{"indexed":false,"internalType":"bool","name":"value","type":"bool"}],"name":"Blacklist","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"Claim_ERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"claimTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"end_Air_Drop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"end_Sale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"Brother","type":"address"}],"name":"getAirdrop","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"quarterMint","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_aEBlock","type":"uint256"},{"internalType":"uint256","name":"_aAmt","type":"uint256"}],"name":"startAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sEBlock","type":"uint256"},{"internalType":"uint256","name":"_sPrice","type":"uint256"}],"name":"startSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teamMint","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokenSale","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"viewAirdrop","outputs":[{"internalType":"uint256","name":"StartBlock","type":"uint256"},{"internalType":"uint256","name":"EndBlock","type":"uint256"},{"internalType":"uint256","name":"DropCount","type":"uint256"},{"internalType":"uint256","name":"DropAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"viewSale","outputs":[{"internalType":"uint256","name":"StartBlock","type":"uint256"},{"internalType":"uint256","name":"EndBlock","type":"uint256"},{"internalType":"uint256","name":"SaleCount","type":"uint256"},{"internalType":"uint256","name":"SalePrice","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000146200034360201b60201c565b600a6200002291906200075a565b6012556276a7006013556366da45ff60145560135442620000449190620006a2565b601555600060165573fdff9779b1e996d0c98dfed7b7f21438624e0ea8601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c315a5ce1e6330db2836bd3ed1fa7228c068ce20601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600a81526020017f49534c414d49434f494e000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f49534c414d490000000000000000000000000000000000000000000000000000815250600080620001756200034c60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35082600690805190602001906200022b92919062000521565b5081600790805190602001906200024492919062000521565b5080600481905550670429d069189e000060058190555050505062000284336012546401dcd64ff662000278919062000897565b6200035460201b60201c565b620002aa306012546402bf55b6006200029e919062000897565b6200035460201b60201c565b620002f1601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601254630bebc200620002e5919062000897565b6200035460201b60201c565b62000335601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601254600a62000329919062000897565b6200035460201b60201c565b600560108190555062000a28565b60006007905090565b600033905090565b600554600454106200039d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003949062000652565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000410576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004079062000630565b60405180910390fd5b62000424600083836200051760201b60201c565b8060046000828254620004389190620006a2565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620004909190620006a2565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620004f7919062000674565b60405180910390a362000513600083836200051c60201b60201c565b5050565b505050565b505050565b8280546200052f906200090f565b90600052602060002090601f0160209004810192826200055357600085556200059f565b82601f106200056e57805160ff19168380011785556200059f565b828001600101855582156200059f579182015b828111156200059e57825182559160200191906001019062000581565b5b509050620005ae9190620005b2565b5090565b5b80821115620005cd576000816000905550600101620005b3565b5090565b6000620005e060208362000691565b9150620005ed82620009b0565b602082019050919050565b600062000607602b8362000691565b91506200061482620009d9565b604082019050919050565b6200062a81620008f8565b82525050565b600060208201905081810360008301526200064b81620005d1565b9050919050565b600060208201905081810360008301526200066d81620005f8565b9050919050565b60006020820190506200068b60008301846200061f565b92915050565b600082825260208201905092915050565b6000620006af82620008f8565b9150620006bc83620008f8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620006f457620006f362000945565b5b828201905092915050565b6000808291508390505b6001851115620007515780860481111562000729576200072862000945565b5b6001851615620007395780820291505b80810290506200074985620009a3565b945062000709565b94509492505050565b60006200076782620008f8565b9150620007748362000902565b9250620007a37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007ab565b905092915050565b600082620007bd576001905062000890565b81620007cd576000905062000890565b8160018114620007e65760028114620007f15762000827565b600191505062000890565b60ff84111562000806576200080562000945565b5b8360020a91508482111562000820576200081f62000945565b5b5062000890565b5060208310610133831016604e8410600b8410161715620008615782820a9050838111156200085b576200085a62000945565b5b62000890565b620008708484846001620006ff565b925090508184048111156200088a576200088962000945565b5b81810290505b9392505050565b6000620008a482620008f8565b9150620008b183620008f8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620008ed57620008ec62000945565b5b828202905092915050565b6000819050919050565b600060ff82169050919050565b600060028204905060018216806200092857607f821691505b602082108114156200093f576200093e62000974565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b7f49534c414d493a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f49534c414d49434f494e20546f74616c20537570706c7920697320333020426960008201527f6c6c696f6e73204f6e6c79000000000000000000000000000000000000000000602082015250565b612f948062000a386000396000f3fe6080604052600436106101855760003560e01c80637b155a8e116100d1578063ba7a86b81161008a578063dd62ed3e11610064578063dd62ed3e146105bf578063e50b4022146105fc578063f2fde38b14610613578063f4f3122e1461063c57610199565b8063ba7a86b81461053b578063d5abeb0114610566578063d69b197f1461059157610199565b80637b155a8e146104295780638da5cb5b1461045457806395d89b411461047f578063a457c2d7146104aa578063a4bdd318146104e7578063a9059cbb146104fe57610199565b806323b872dd1161013e57806346e04a2f1161011857806346e04a2f146103655780634d1d03d11461038e5780636643ef9f146103bc57806370a08231146103ec57610199565b806323b872dd146102c0578063313ce567146102fd578063395093511461032857610199565b8063069f5bdd1461019e57806306fdde03146101db578063095ea7b31461020657806312f69cf51461024357806318160ddd1461026c5780632316463e1461029757610199565b36610199576000341161019757600080fd5b005b600080fd5b3480156101aa57600080fd5b506101c560048036038101906101c09190611fc0565b610665565b6040516101d29190612490565b60405180910390f35b3480156101e757600080fd5b506101f061085a565b6040516101fd91906124ab565b60405180910390f35b34801561021257600080fd5b5061022d60048036038101906102289190612074565b6108ec565b60405161023a9190612490565b60405180910390f35b34801561024f57600080fd5b5061026a60048036038101906102659190612102565b61090a565b005b34801561027857600080fd5b506102816109a5565b60405161028e919061272d565b60405180910390f35b3480156102a357600080fd5b506102be60048036038101906102b99190612074565b6109af565b005b3480156102cc57600080fd5b506102e760048036038101906102e29190612025565b610ac4565b6040516102f49190612490565b60405180910390f35b34801561030957600080fd5b50610312610bbc565b60405161031f919061278d565b60405180910390f35b34801561033457600080fd5b5061034f600480360381019061034a9190612074565b610bc5565b60405161035c9190612490565b60405180910390f35b34801561037157600080fd5b5061038c600480360381019061038791906120d9565b610c71565b005b34801561039a57600080fd5b506103a3610d5d565b6040516103b39493929190612748565b60405180910390f35b6103d660048036038101906103d19190611fc0565b610d7d565b6040516103e39190612490565b60405180910390f35b3480156103f857600080fd5b50610413600480360381019061040e9190611fc0565b610ee6565b604051610420919061272d565b60405180910390f35b34801561043557600080fd5b5061043e610f2f565b60405161044b9190612490565b60405180910390f35b34801561046057600080fd5b50610469611028565b604051610476919061244c565b60405180910390f35b34801561048b57600080fd5b50610494611051565b6040516104a191906124ab565b60405180910390f35b3480156104b657600080fd5b506104d160048036038101906104cc9190612074565b6110e3565b6040516104de9190612490565b60405180910390f35b3480156104f357600080fd5b506104fc6111ce565b005b34801561050a57600080fd5b5061052560048036038101906105209190612074565b611253565b6040516105329190612490565b60405180910390f35b34801561054757600080fd5b50610550611271565b60405161055d9190612490565b60405180910390f35b34801561057257600080fd5b5061057b6113a3565b604051610588919061272d565b60405180910390f35b34801561059d57600080fd5b506105a66113ad565b6040516105b69493929190612748565b60405180910390f35b3480156105cb57600080fd5b506105e660048036038101906105e19190611fe9565b6113cd565b6040516105f3919061272d565b60405180910390f35b34801561060857600080fd5b50610611611454565b005b34801561061f57600080fd5b5061063a60048036038101906106359190611fc0565b6114d9565b005b34801561064857600080fd5b50610663600480360381019061065e9190612102565b611682565b005b60006009544311156106ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a3906126cd565b60405180910390fd5b60001515600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151461073f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107369061256d565b60405180910390fd5b600a60008154809291906107529061295f565b91905055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415801561079c5750600061079983610ee6565b14155b80156107d55750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561081657610815601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836002600b54610810919061281a565b61171d565b5b610845601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1633600b5461171d565b61085033600161186b565b5060019050919050565b6060600680546108699061292d565b80601f01602080910402602001604051908101604052809291908181526020018280546108959061292d565b80156108e25780601f106108b7576101008083540402835291602001916108e2565b820191906000526020600020905b8154815290600101906020018083116108c557829003601f168201915b5050505050905090565b60006109006108f9611979565b8484611981565b6001905092915050565b610912611979565b73ffffffffffffffffffffffffffffffffffffffff16610930611028565b73ffffffffffffffffffffffffffffffffffffffff1614610986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097d906125ed565b60405180910390fd5b816009819055506012548161099b919061284b565b600b819055505050565b6000600454905090565b6109b7611979565b73ffffffffffffffffffffffffffffffffffffffff166109d5611028565b73ffffffffffffffffffffffffffffffffffffffff1614610a2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a22906125ed565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb610a4f611028565b836040518363ffffffff1660e01b8152600401610a6d929190612467565b602060405180830381600087803b158015610a8757600080fd5b505af1158015610a9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abf91906120b0565b505050565b6000610ad184848461171d565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b1c611979565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b93906125cd565b60405180910390fd5b610bb085610ba8611979565b858403611981565b60019150509392505050565b60006007905090565b6000610c67610bd2611979565b848460026000610be0611979565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c6291906127c4565b611981565b6001905092915050565b610c79611979565b73ffffffffffffffffffffffffffffffffffffffff16610c97611028565b73ffffffffffffffffffffffffffffffffffffffff1614610ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce4906125ed565b60405180910390fd5b60008111610cfa57600080fd5b60003390508073ffffffffffffffffffffffffffffffffffffffff166108fc670de0b6b3a764000084610d2d919061284b565b9081150290604051600060405180830381858888f19350505050158015610d58573d6000803e3d6000fd5b505050565b600080600080600c54600d54600e54600f54935093509350935090919293565b60006012546301c9c380610d91919061284b565b610d9a33610ee6565b1115610ddb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd29061266d565b60405180910390fd5b43600c5411158015610def5750600d544311155b610e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e25906126ed565b60405180910390fd5b60003490506000670de0b6b3a76400008210158015610e565750683635c9adc5dea000008211155b610e95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8c9061260d565b60405180910390fd5b670de0b6b3a764000082600f54610eac919061284b565b610eb6919061281a565b9050600e6000815480929190610ecb9061295f565b9190505550610edb30338361171d565b600192505050919050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000610f39611979565b73ffffffffffffffffffffffffffffffffffffffff16610f57611028565b73ffffffffffffffffffffffffffffffffffffffff1614610fad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa4906125ed565b60405180910390fd5b601554421015610ff2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe9906125ad565b60405180910390fd5b61100d306012546305f5e100611008919061284b565b611b4c565b6013544261101b91906127c4565b6015819055506001905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600780546110609061292d565b80601f016020809104026020016040519081016040528092919081815260200182805461108c9061292d565b80156110d95780601f106110ae576101008083540402835291602001916110d9565b820191906000526020600020905b8154815290600101906020018083116110bc57829003601f168201915b5050505050905090565b600080600260006110f2611979565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156111af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a69061270d565b60405180910390fd5b6111c36111ba611979565b85858403611981565b600191505092915050565b6111d6611979565b73ffffffffffffffffffffffffffffffffffffffff166111f4611028565b73ffffffffffffffffffffffffffffffffffffffff161461124a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611241906125ed565b60405180910390fd5b43600d81905550565b6000611267611260611979565b848461171d565b6001905092915050565b600061127b611979565b73ffffffffffffffffffffffffffffffffffffffff16611299611028565b73ffffffffffffffffffffffffffffffffffffffff16146112ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e6906125ed565b60405180910390fd5b600060165414611334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132b906126ad565b60405180910390fd5b601454421015611379576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113709061254d565b60405180910390fd5b611394336012546323c3460061138f919061284b565b611b4c565b60016016819055506001905090565b6000600554905090565b600080600080600854600954600a54600b54935093509350935090919293565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61145c611979565b73ffffffffffffffffffffffffffffffffffffffff1661147a611028565b73ffffffffffffffffffffffffffffffffffffffff16146114d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114c7906125ed565b60405180910390fd5b43600981905550565b6114e1611979565b73ffffffffffffffffffffffffffffffffffffffff166114ff611028565b73ffffffffffffffffffffffffffffffffffffffff1614611555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154c906125ed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115bc906124ed565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61168a611979565b73ffffffffffffffffffffffffffffffffffffffff166116a8611028565b73ffffffffffffffffffffffffffffffffffffffff16146116fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f5906125ed565b60405180910390fd5b81600d8190555060125481611713919061284b565b600f819055505050565b60006064600260105484611731919061284b565b61173b919061281a565b611745919061281a565b90506000829050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806117f55750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b1561180a57611805858583611cf3565b611864565b8161181430610ee6565b111561185757611825858583611cf3565b61185230601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611cf3565b611863565b611862858583611cf3565b5b5b5050505050565b6000811515600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514156118ca57600080fd5b81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508273ffffffffffffffffffffffffffffffffffffffff167ff7e58a63a036e3a7ef7921f83b6ae47930cf5c293dd3bfe7a857c6863409046d836040516119679190612490565b60405180910390a26001905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156119f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e89061268d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a589061262d565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b3f919061272d565b60405180910390a3505050565b60055460045410611b92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b899061258d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf99061250d565b60405180910390fd5b611c0e60008383611f77565b8060046000828254611c2091906127c4565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c7691906127c4565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cdb919061272d565b60405180910390a3611cef60008383611f7c565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5a906124cd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dca9061252d565b60405180910390fd5b611dde838383611f77565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611e65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5c9061264d565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611efa91906127c4565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f5e919061272d565b60405180910390a3611f71848484611f7c565b50505050565b505050565b505050565b600081359050611f9081612f19565b92915050565b600081519050611fa581612f30565b92915050565b600081359050611fba81612f47565b92915050565b600060208284031215611fd257600080fd5b6000611fe084828501611f81565b91505092915050565b60008060408385031215611ffc57600080fd5b600061200a85828601611f81565b925050602061201b85828601611f81565b9150509250929050565b60008060006060848603121561203a57600080fd5b600061204886828701611f81565b935050602061205986828701611f81565b925050604061206a86828701611fab565b9150509250925092565b6000806040838503121561208757600080fd5b600061209585828601611f81565b92505060206120a685828601611fab565b9150509250929050565b6000602082840312156120c257600080fd5b60006120d084828501611f96565b91505092915050565b6000602082840312156120eb57600080fd5b60006120f984828501611fab565b91505092915050565b6000806040838503121561211557600080fd5b600061212385828601611fab565b925050602061213485828601611fab565b9150509250929050565b612147816128a5565b82525050565b612156816128b7565b82525050565b6000612167826127a8565b61217181856127b3565b93506121818185602086016128fa565b61218a81612a35565b840191505092915050565b60006121a26028836127b3565b91506121ad82612a46565b604082019050919050565b60006121c56026836127b3565b91506121d082612a95565b604082019050919050565b60006121e86020836127b3565b91506121f382612ae4565b602082019050919050565b600061220b6026836127b3565b915061221682612b0d565b604082019050919050565b600061222e6017836127b3565b915061223982612b5c565b602082019050919050565b60006122516020836127b3565b915061225c82612b85565b602082019050919050565b6000612274602b836127b3565b915061227f82612bae565b604082019050919050565b60006122976012836127b3565b91506122a282612bfd565b602082019050919050565b60006122ba6028836127b3565b91506122c582612c26565b604082019050919050565b60006122dd6020836127b3565b91506122e882612c75565b602082019050919050565b60006123006024836127b3565b915061230b82612c9e565b604082019050919050565b60006123236023836127b3565b915061232e82612ced565b604082019050919050565b60006123466027836127b3565b915061235182612d3c565b604082019050919050565b60006123696022836127b3565b915061237482612d8b565b604082019050919050565b600061238c6025836127b3565b915061239782612dda565b604082019050919050565b60006123af601d836127b3565b91506123ba82612e29565b602082019050919050565b60006123d2601d836127b3565b91506123dd82612e52565b602082019050919050565b60006123f5602a836127b3565b915061240082612e7b565b604082019050919050565b60006124186025836127b3565b915061242382612eca565b604082019050919050565b612437816128e3565b82525050565b612446816128ed565b82525050565b6000602082019050612461600083018461213e565b92915050565b600060408201905061247c600083018561213e565b612489602083018461242e565b9392505050565b60006020820190506124a5600083018461214d565b92915050565b600060208201905081810360008301526124c5818461215c565b905092915050565b600060208201905081810360008301526124e681612195565b9050919050565b60006020820190508181036000830152612506816121b8565b9050919050565b60006020820190508181036000830152612526816121db565b9050919050565b60006020820190508181036000830152612546816121fe565b9050919050565b6000602082019050818103600083015261256681612221565b9050919050565b6000602082019050818103600083015261258681612244565b9050919050565b600060208201905081810360008301526125a681612267565b9050919050565b600060208201905081810360008301526125c68161228a565b9050919050565b600060208201905081810360008301526125e6816122ad565b9050919050565b60006020820190508181036000830152612606816122d0565b9050919050565b60006020820190508181036000830152612626816122f3565b9050919050565b6000602082019050818103600083015261264681612316565b9050919050565b6000602082019050818103600083015261266681612339565b9050919050565b600060208201905081810360008301526126868161235c565b9050919050565b600060208201905081810360008301526126a68161237f565b9050919050565b600060208201905081810360008301526126c6816123a2565b9050919050565b600060208201905081810360008301526126e6816123c5565b9050919050565b60006020820190508181036000830152612706816123e8565b9050919050565b600060208201905081810360008301526127268161240b565b9050919050565b6000602082019050612742600083018461242e565b92915050565b600060808201905061275d600083018761242e565b61276a602083018661242e565b612777604083018561242e565b612784606083018461242e565b95945050505050565b60006020820190506127a2600083018461243d565b92915050565b600081519050919050565b600082825260208201905092915050565b60006127cf826128e3565b91506127da836128e3565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561280f5761280e6129a8565b5b828201905092915050565b6000612825826128e3565b9150612830836128e3565b9250826128405761283f6129d7565b5b828204905092915050565b6000612856826128e3565b9150612861836128e3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561289a576128996129a8565b5b828202905092915050565b60006128b0826128c3565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156129185780820151818401526020810190506128fd565b83811115612927576000848401525b50505050565b6000600282049050600182168061294557607f821691505b6020821081141561295957612958612a06565b5b50919050565b600061296a826128e3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561299d5761299c6129a8565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f43616e6e6f74207472616e736665722049534c414d492066726f6d207a65726f60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f49534c414d493a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f43616e6e6f74207472616e736665722049534c414d4920746f207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f5465616d204d696e74696e67206973206e6f7420796574000000000000000000600082015250565b7f41697244726f702063616e20626520636c61696d6564206f6e6c79206f6e6365600082015250565b7f49534c414d49434f494e20546f74616c20537570706c7920697320333020426960008201527f6c6c696f6e73204f6e6c79000000000000000000000000000000000000000000602082015250565b7f4d696e74696e67206973206e6f74207965740000000000000000000000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4d696e696d756d2031204d41544943202f204d6178696d756d2031303030204d60008201527f4154494300000000000000000000000000000000000000000000000000000000602082015250565b7f49534c414d493a20617070726f766520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f49534c414d493a207472616e7366657220616d6f756e7420657863656564732060008201527f62616c616e636500000000000000000000000000000000000000000000000000602082015250565b7f596f75207265616368656420796f7572207075626c69632073616c65206c696d60008201527f6974000000000000000000000000000000000000000000000000000000000000602082015250565b7f49534c414d493a20617070726f76652066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f5465616d206d696e74696e67206973206f6e652074696d65206f6e6c79000000600082015250565b7f4169722044726f70206e6f742073746172746564206f7220656e646564000000600082015250565b7f5075626c69632053616c652068617320656e646564206f7220646964206e6f7460008201527f2073746172742079657400000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b612f22816128a5565b8114612f2d57600080fd5b50565b612f39816128b7565b8114612f4457600080fd5b50565b612f50816128e3565b8114612f5b57600080fd5b5056fea26469706673582212207840363b2f18c570a1d8b364ddae7155e8a7cc58a2311ad3029bff287011f14664736f6c63430008040033

Deployed ByteCode Sourcemap

16419:5396:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19202:1;19190:9;:13;19181:24;;;;;;16419:5396;;;;;18556:574;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6862:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9131:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20153:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7985:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21656:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9782:492;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7824:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10701:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21459:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19978:167;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;19216:577;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8255:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17983:261;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5052:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7081:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11419:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20498:78;;;;;;;;;;;;;:::i;:::-;;8595:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18250:300;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8099:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19806:168;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;8833:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20412:82;;;;;;;;;;;;;:::i;:::-;;5521:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20281:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18556:574;18609:12;18657:7;;18641:12;:23;;18633:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;18749:5;18717:37;;:16;:28;18734:10;18717:28;;;;;;;;;;;;;;;;;;;;;;;;;:37;;;18709:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;18802:4;;:7;;;;;;;;;:::i;:::-;;;;;;18838;18824:21;;:10;:21;;;;:48;;;;;18871:1;18849:18;18859:7;18849:9;:18::i;:::-;:23;;18824:48;:105;;;;;18887:42;18876:53;;:7;:53;;;;18824:105;18821:171;;;18943:37;18953:9;;;;;;;;;;;18964:7;18978:1;18973:4;;:6;;;;:::i;:::-;18943:9;:37::i;:::-;18821:171;19002:38;19012:9;;;;;;;;;;;19023:10;19035:4;;19002:9;:38::i;:::-;19051:41;19075:10;19087:4;19051:23;:41::i;:::-;;19110:4;19103:11;;18556:574;;;:::o;6862:100::-;6916:13;6949:5;6942:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6862:100;:::o;9131:169::-;9214:4;9231:39;9240:12;:10;:12::i;:::-;9254:7;9263:6;9231:8;:39::i;:::-;9288:4;9281:11;;9131:169;;;;:::o;20153:124::-;5295:12;:10;:12::i;:::-;5284:23;;:7;:5;:7::i;:::-;:23;;;5276:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20240:8:::1;20230:7;:18;;;;20264:7;;20256:5;:15;;;;:::i;:::-;20249:4;:22;;;;20153:124:::0;;:::o;7985:108::-;8046:7;8073:12;;8066:19;;7985:108;:::o;21656:156::-;5295:12;:10;:12::i;:::-;5284:23;;:7;:5;:7::i;:::-;:23;;;5276:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21760:12:::1;21748:34;;;21783:7;:5;:7::i;:::-;21792:11;21748:56;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21656:156:::0;;:::o;9782:492::-;9922:4;9939:36;9949:6;9957:9;9968:6;9939:9;:36::i;:::-;9988:24;10015:11;:19;10027:6;10015:19;;;;;;;;;;;;;;;:33;10035:12;:10;:12::i;:::-;10015:33;;;;;;;;;;;;;;;;9988:60;;10087:6;10067:16;:26;;10059:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;10174:57;10183:6;10191:12;:10;:12::i;:::-;10224:6;10205:16;:25;10174:8;:57::i;:::-;10262:4;10255:11;;;9782:492;;;;;:::o;7824:92::-;7882:5;7907:1;7900:8;;7824:92;:::o;10701:215::-;10789:4;10806:80;10815:12;:10;:12::i;:::-;10829:7;10875:10;10838:11;:25;10850:12;:10;:12::i;:::-;10838:25;;;;;;;;;;;;;;;:34;10864:7;10838:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;10806:8;:80::i;:::-;10904:4;10897:11;;10701:215;;;;:::o;21459:191::-;5295:12;:10;:12::i;:::-;5284:23;;:7;:5;:7::i;:::-;:23;;;5276:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21539:1:::1;21533:3;:7;21524:17;;;::::0;::::1;;21555:22;21588:10;21555:44;;21613:6;:15;;:29;21634:7;21629:3;:12;;;;:::i;:::-;21613:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;5355:1;21459:191:::0;:::o;19978:167::-;20018:18;20038:16;20056:17;20075;20107:7;;20116;;20125:4;;20132:6;;20100:39;;;;;;;;19978:167;;;;:::o;19216:577::-;19268:12;19341:7;;19330:8;:18;;;;:::i;:::-;19296:30;19314:10;19296:9;:30::i;:::-;:52;;19288:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;19416:12;19405:7;;:23;;:50;;;;;19448:7;;19432:12;:23;;19405:50;19397:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;19511:12;19526:9;19511:24;;19542:13;19584:7;19576:4;:15;;:37;;;;;19603:10;19595:4;:18;;19576:37;19567:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;19685:7;19677:4;19670:6;;:11;;;;:::i;:::-;19669:23;;;;:::i;:::-;19661:31;;19699:4;;:7;;;;;;;;;:::i;:::-;;;;;;19719:43;19737:4;19744:10;19756:5;19719:9;:43::i;:::-;19783:4;19776:11;;;;19216:577;;;:::o;8255:127::-;8329:7;8356:9;:18;8366:7;8356:18;;;;;;;;;;;;;;;;8349:25;;8255:127;;;:::o;17983:261::-;18033:12;5295;:10;:12::i;:::-;5284:23;;:7;:5;:7::i;:::-;:23;;;5276:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18085:8:::1;;18066:15;:27;;18057:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;18127:42;18142:4;18161:7;;18149:9;:19;;;;:::i;:::-;18127:5;:42::i;:::-;18210:5;;18192:15;:23;;;;:::i;:::-;18180:8;:35;;;;18232:4;18225:11;;17983:261:::0;:::o;5052:87::-;5098:7;5125:6;;;;;;;;;;;5118:13;;5052:87;:::o;7081:104::-;7137:13;7170:7;7163:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7081:104;:::o;11419:413::-;11512:4;11529:24;11556:11;:25;11568:12;:10;:12::i;:::-;11556:25;;;;;;;;;;;;;;;:34;11582:7;11556:34;;;;;;;;;;;;;;;;11529:61;;11629:15;11609:16;:35;;11601:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11722:67;11731:12;:10;:12::i;:::-;11745:7;11773:15;11754:16;:34;11722:8;:67::i;:::-;11820:4;11813:11;;;11419:413;;;;:::o;20498:78::-;5295:12;:10;:12::i;:::-;5284:23;;:7;:5;:7::i;:::-;:23;;;5276:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20558:12:::1;20548:7;:22;;;;20498:78::o:0;8595:175::-;8681:4;8698:42;8708:12;:10;:12::i;:::-;8722:9;8733:6;8698:9;:42::i;:::-;8758:4;8751:11;;8595:175;;;;:::o;18250:300::-;18297:12;5295;:10;:12::i;:::-;5284:23;;:7;:5;:7::i;:::-;:23;;;5276:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18342:1:::1;18330:8;;:13;18321:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;18415:5;;18396:15;:24;;18387:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;18459:39;18466:10;18490:7;;18478:9;:19;;;;:::i;:::-;18459:5;:39::i;:::-;18520:1;18509:8;:12;;;;18538:4;18531:11;;18250:300:::0;:::o;8099:93::-;8141:7;8167:17;;8160:24;;8099:93;:::o;19806:168::-;19849:18;19869:16;19887:17;19906:18;19939:7;;19948;;19957:4;;19963;;19932:36;;;;;;;;19806:168;;;;:::o;8833:151::-;8922:7;8949:11;:18;8961:5;8949:18;;;;;;;;;;;;;;;:27;8968:7;8949:27;;;;;;;;;;;;;;;;8942:34;;8833:151;;;;:::o;20412:82::-;5295:12;:10;:12::i;:::-;5284:23;;:7;:5;:7::i;:::-;:23;;;5276:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20476:12:::1;20466:7;:22;;;;20412:82::o:0;5521:244::-;5295:12;:10;:12::i;:::-;5284:23;;:7;:5;:7::i;:::-;:23;;;5276:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5630:1:::1;5610:22;;:8;:22;;;;5602:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;5720:8;5691:38;;5712:6;::::0;::::1;;;;;;;;5691:38;;;;;;;;;;;;5749:8;5740:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5521:244:::0;:::o;20281:127::-;5295:12;:10;:12::i;:::-;5284:23;;:7;:5;:7::i;:::-;:23;;;5276:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20367:8:::1;20357:7;:18;;;;20395:7;;20385;:17;;;;:::i;:::-;20377:6;:25;;;;20281:127:::0;;:::o;20580:873::-;20687:16;20725:3;20722:1;20714:7;;20707:6;:14;;;;:::i;:::-;:16;;;;:::i;:::-;20706:22;;;;:::i;:::-;20687:41;;20739:19;20761:6;20739:28;;20803:9;;;;;;;;;;;20793:19;;:6;:19;;;:45;;;;20829:9;;;;;;;;;;;20816:22;;:9;:22;;;20793:45;20790:656;;;20932:49;20948:6;20955:9;20966:14;20932:15;:49::i;:::-;20790:656;;;21038:11;21011:24;21029:4;21011:9;:24::i;:::-;:38;21008:438;;;21161:49;21177:6;21184:9;21195:14;21161:15;:49::i;:::-;21225:52;21249:4;21255:9;;;;;;;;;;;21265:11;21225:15;:52::i;:::-;21008:438;;;21386:48;21402:6;21409:9;21419:14;21386:15;:48::i;:::-;21008:438;20790:656;20580:873;;;;;:::o;16088:271::-;16172:4;16223:14;16193:44;;:16;:26;16210:8;16193:26;;;;;;;;;;;;;;;;;;;;;;;;;:44;;;;16185:53;;;;;;16274:14;16245:16;:26;16262:8;16245:26;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;16310:8;16300:35;;;16320:14;16300:35;;;;;;:::i;:::-;;;;;;;;16349:4;16342:11;;16088:271;;;;:::o;4335:98::-;4388:7;4415:10;4408:17;;4335:98;:::o;14244:348::-;14363:1;14346:19;;:5;:19;;;;14338:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;14445:1;14426:21;;:7;:21;;;;14418:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;14530:6;14500:11;:18;14512:5;14500:18;;;;;;;;;;;;;;;:27;14519:7;14500:27;;;;;;;;;;;;;;;:36;;;;14568:7;14552:32;;14561:5;14552:32;;;14577:6;14552:32;;;;;;:::i;:::-;;;;;;;;14244:348;;;:::o;13315:491::-;13406:17;;13391:12;;:32;13383:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;13509:1;13490:21;;:7;:21;;;;13482:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;13561:49;13590:1;13594:7;13603:6;13561:20;:49::i;:::-;13639:6;13623:12;;:22;;;;;;;:::i;:::-;;;;;;;;13678:6;13656:9;:18;13666:7;13656:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;13721:7;13700:37;;13717:1;13700:37;;;13730:6;13700:37;;;;;;:::i;:::-;;;;;;;;13750:48;13778:1;13782:7;13791:6;13750:19;:48::i;:::-;13315:491;;:::o;12322:706::-;12446:1;12428:20;;:6;:20;;;;12420:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12533:1;12512:23;;:9;:23;;;;12504:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12591:47;12612:6;12620:9;12631:6;12591:20;:47::i;:::-;12651:21;12675:9;:17;12685:6;12675:17;;;;;;;;;;;;;;;;12651:41;;12728:6;12711:13;:23;;12703:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;12850:6;12834:13;:22;12814:9;:17;12824:6;12814:17;;;;;;;;;;;;;;;:42;;;;12902:6;12878:9;:20;12888:9;12878:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;12943:9;12926:35;;12935:6;12926:35;;;12954:6;12926:35;;;;;;:::i;:::-;;;;;;;;12974:46;12994:6;13002:9;13013:6;12974:19;:46::i;:::-;12322:706;;;;:::o;15192:92::-;;;;:::o;15888:90::-;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:137::-;206:5;237:6;231:13;222:22;;253:30;277:5;253:30;:::i;:::-;212:77;;;;:::o;295:139::-;341:5;379:6;366:20;357:29;;395:33;422:5;395:33;:::i;:::-;347:87;;;;:::o;440:262::-;499:6;548:2;536:9;527:7;523:23;519:32;516:2;;;564:1;561;554:12;516:2;607:1;632:53;677:7;668:6;657:9;653:22;632:53;:::i;:::-;622:63;;578:117;506:196;;;;:::o;708:407::-;776:6;784;833:2;821:9;812:7;808:23;804:32;801:2;;;849:1;846;839:12;801:2;892:1;917:53;962:7;953:6;942:9;938:22;917:53;:::i;:::-;907:63;;863:117;1019:2;1045:53;1090:7;1081:6;1070:9;1066:22;1045:53;:::i;:::-;1035:63;;990:118;791:324;;;;;:::o;1121:552::-;1198:6;1206;1214;1263:2;1251:9;1242:7;1238:23;1234:32;1231:2;;;1279:1;1276;1269:12;1231:2;1322:1;1347:53;1392:7;1383:6;1372:9;1368:22;1347:53;:::i;:::-;1337:63;;1293:117;1449:2;1475:53;1520:7;1511:6;1500:9;1496:22;1475:53;:::i;:::-;1465:63;;1420:118;1577:2;1603:53;1648:7;1639:6;1628:9;1624:22;1603:53;:::i;:::-;1593:63;;1548:118;1221:452;;;;;:::o;1679:407::-;1747:6;1755;1804:2;1792:9;1783:7;1779:23;1775:32;1772:2;;;1820:1;1817;1810:12;1772:2;1863:1;1888:53;1933:7;1924:6;1913:9;1909:22;1888:53;:::i;:::-;1878:63;;1834:117;1990:2;2016:53;2061:7;2052:6;2041:9;2037:22;2016:53;:::i;:::-;2006:63;;1961:118;1762:324;;;;;:::o;2092:278::-;2159:6;2208:2;2196:9;2187:7;2183:23;2179:32;2176:2;;;2224:1;2221;2214:12;2176:2;2267:1;2292:61;2345:7;2336:6;2325:9;2321:22;2292:61;:::i;:::-;2282:71;;2238:125;2166:204;;;;:::o;2376:262::-;2435:6;2484:2;2472:9;2463:7;2459:23;2455:32;2452:2;;;2500:1;2497;2490:12;2452:2;2543:1;2568:53;2613:7;2604:6;2593:9;2589:22;2568:53;:::i;:::-;2558:63;;2514:117;2442:196;;;;:::o;2644:407::-;2712:6;2720;2769:2;2757:9;2748:7;2744:23;2740:32;2737:2;;;2785:1;2782;2775:12;2737:2;2828:1;2853:53;2898:7;2889:6;2878:9;2874:22;2853:53;:::i;:::-;2843:63;;2799:117;2955:2;2981:53;3026:7;3017:6;3006:9;3002:22;2981:53;:::i;:::-;2971:63;;2926:118;2727:324;;;;;:::o;3057:118::-;3144:24;3162:5;3144:24;:::i;:::-;3139:3;3132:37;3122:53;;:::o;3181:109::-;3262:21;3277:5;3262:21;:::i;:::-;3257:3;3250:34;3240:50;;:::o;3296:364::-;3384:3;3412:39;3445:5;3412:39;:::i;:::-;3467:71;3531:6;3526:3;3467:71;:::i;:::-;3460:78;;3547:52;3592:6;3587:3;3580:4;3573:5;3569:16;3547:52;:::i;:::-;3624:29;3646:6;3624:29;:::i;:::-;3619:3;3615:39;3608:46;;3388:272;;;;;:::o;3666:366::-;3808:3;3829:67;3893:2;3888:3;3829:67;:::i;:::-;3822:74;;3905:93;3994:3;3905:93;:::i;:::-;4023:2;4018:3;4014:12;4007:19;;3812:220;;;:::o;4038:366::-;4180:3;4201:67;4265:2;4260:3;4201:67;:::i;:::-;4194:74;;4277:93;4366:3;4277:93;:::i;:::-;4395:2;4390:3;4386:12;4379:19;;4184:220;;;:::o;4410:366::-;4552:3;4573:67;4637:2;4632:3;4573:67;:::i;:::-;4566:74;;4649:93;4738:3;4649:93;:::i;:::-;4767:2;4762:3;4758:12;4751:19;;4556:220;;;:::o;4782:366::-;4924:3;4945:67;5009:2;5004:3;4945:67;:::i;:::-;4938:74;;5021:93;5110:3;5021:93;:::i;:::-;5139:2;5134:3;5130:12;5123:19;;4928:220;;;:::o;5154:366::-;5296:3;5317:67;5381:2;5376:3;5317:67;:::i;:::-;5310:74;;5393:93;5482:3;5393:93;:::i;:::-;5511:2;5506:3;5502:12;5495:19;;5300:220;;;:::o;5526:366::-;5668:3;5689:67;5753:2;5748:3;5689:67;:::i;:::-;5682:74;;5765:93;5854:3;5765:93;:::i;:::-;5883:2;5878:3;5874:12;5867:19;;5672:220;;;:::o;5898:366::-;6040:3;6061:67;6125:2;6120:3;6061:67;:::i;:::-;6054:74;;6137:93;6226:3;6137:93;:::i;:::-;6255:2;6250:3;6246:12;6239:19;;6044:220;;;:::o;6270:366::-;6412:3;6433:67;6497:2;6492:3;6433:67;:::i;:::-;6426:74;;6509:93;6598:3;6509:93;:::i;:::-;6627:2;6622:3;6618:12;6611:19;;6416:220;;;:::o;6642:366::-;6784:3;6805:67;6869:2;6864:3;6805:67;:::i;:::-;6798:74;;6881:93;6970:3;6881:93;:::i;:::-;6999:2;6994:3;6990:12;6983:19;;6788:220;;;:::o;7014:366::-;7156:3;7177:67;7241:2;7236:3;7177:67;:::i;:::-;7170:74;;7253:93;7342:3;7253:93;:::i;:::-;7371:2;7366:3;7362:12;7355:19;;7160:220;;;:::o;7386:366::-;7528:3;7549:67;7613:2;7608:3;7549:67;:::i;:::-;7542:74;;7625:93;7714:3;7625:93;:::i;:::-;7743:2;7738:3;7734:12;7727:19;;7532:220;;;:::o;7758:366::-;7900:3;7921:67;7985:2;7980:3;7921:67;:::i;:::-;7914:74;;7997:93;8086:3;7997:93;:::i;:::-;8115:2;8110:3;8106:12;8099:19;;7904:220;;;:::o;8130:366::-;8272:3;8293:67;8357:2;8352:3;8293:67;:::i;:::-;8286:74;;8369:93;8458:3;8369:93;:::i;:::-;8487:2;8482:3;8478:12;8471:19;;8276:220;;;:::o;8502:366::-;8644:3;8665:67;8729:2;8724:3;8665:67;:::i;:::-;8658:74;;8741:93;8830:3;8741:93;:::i;:::-;8859:2;8854:3;8850:12;8843:19;;8648:220;;;:::o;8874:366::-;9016:3;9037:67;9101:2;9096:3;9037:67;:::i;:::-;9030:74;;9113:93;9202:3;9113:93;:::i;:::-;9231:2;9226:3;9222:12;9215:19;;9020:220;;;:::o;9246:366::-;9388:3;9409:67;9473:2;9468:3;9409:67;:::i;:::-;9402:74;;9485:93;9574:3;9485:93;:::i;:::-;9603:2;9598:3;9594:12;9587:19;;9392:220;;;:::o;9618:366::-;9760:3;9781:67;9845:2;9840:3;9781:67;:::i;:::-;9774:74;;9857:93;9946:3;9857:93;:::i;:::-;9975:2;9970:3;9966:12;9959:19;;9764:220;;;:::o;9990:366::-;10132:3;10153:67;10217:2;10212:3;10153:67;:::i;:::-;10146:74;;10229:93;10318:3;10229:93;:::i;:::-;10347:2;10342:3;10338:12;10331:19;;10136:220;;;:::o;10362:366::-;10504:3;10525:67;10589:2;10584:3;10525:67;:::i;:::-;10518:74;;10601:93;10690:3;10601:93;:::i;:::-;10719:2;10714:3;10710:12;10703:19;;10508:220;;;:::o;10734:118::-;10821:24;10839:5;10821:24;:::i;:::-;10816:3;10809:37;10799:53;;:::o;10858:112::-;10941:22;10957:5;10941:22;:::i;:::-;10936:3;10929:35;10919:51;;:::o;10976:222::-;11069:4;11107:2;11096:9;11092:18;11084:26;;11120:71;11188:1;11177:9;11173:17;11164:6;11120:71;:::i;:::-;11074:124;;;;:::o;11204:332::-;11325:4;11363:2;11352:9;11348:18;11340:26;;11376:71;11444:1;11433:9;11429:17;11420:6;11376:71;:::i;:::-;11457:72;11525:2;11514:9;11510:18;11501:6;11457:72;:::i;:::-;11330:206;;;;;:::o;11542:210::-;11629:4;11667:2;11656:9;11652:18;11644:26;;11680:65;11742:1;11731:9;11727:17;11718:6;11680:65;:::i;:::-;11634:118;;;;:::o;11758:313::-;11871:4;11909:2;11898:9;11894:18;11886:26;;11958:9;11952:4;11948:20;11944:1;11933:9;11929:17;11922:47;11986:78;12059:4;12050:6;11986:78;:::i;:::-;11978:86;;11876:195;;;;:::o;12077:419::-;12243:4;12281:2;12270:9;12266:18;12258:26;;12330:9;12324:4;12320:20;12316:1;12305:9;12301:17;12294:47;12358:131;12484:4;12358:131;:::i;:::-;12350:139;;12248:248;;;:::o;12502:419::-;12668:4;12706:2;12695:9;12691:18;12683:26;;12755:9;12749:4;12745:20;12741:1;12730:9;12726:17;12719:47;12783:131;12909:4;12783:131;:::i;:::-;12775:139;;12673:248;;;:::o;12927:419::-;13093:4;13131:2;13120:9;13116:18;13108:26;;13180:9;13174:4;13170:20;13166:1;13155:9;13151:17;13144:47;13208:131;13334:4;13208:131;:::i;:::-;13200:139;;13098:248;;;:::o;13352:419::-;13518:4;13556:2;13545:9;13541:18;13533:26;;13605:9;13599:4;13595:20;13591:1;13580:9;13576:17;13569:47;13633:131;13759:4;13633:131;:::i;:::-;13625:139;;13523:248;;;:::o;13777:419::-;13943:4;13981:2;13970:9;13966:18;13958:26;;14030:9;14024:4;14020:20;14016:1;14005:9;14001:17;13994:47;14058:131;14184:4;14058:131;:::i;:::-;14050:139;;13948:248;;;:::o;14202:419::-;14368:4;14406:2;14395:9;14391:18;14383:26;;14455:9;14449:4;14445:20;14441:1;14430:9;14426:17;14419:47;14483:131;14609:4;14483:131;:::i;:::-;14475:139;;14373:248;;;:::o;14627:419::-;14793:4;14831:2;14820:9;14816:18;14808:26;;14880:9;14874:4;14870:20;14866:1;14855:9;14851:17;14844:47;14908:131;15034:4;14908:131;:::i;:::-;14900:139;;14798:248;;;:::o;15052:419::-;15218:4;15256:2;15245:9;15241:18;15233:26;;15305:9;15299:4;15295:20;15291:1;15280:9;15276:17;15269:47;15333:131;15459:4;15333:131;:::i;:::-;15325:139;;15223:248;;;:::o;15477:419::-;15643:4;15681:2;15670:9;15666:18;15658:26;;15730:9;15724:4;15720:20;15716:1;15705:9;15701:17;15694:47;15758:131;15884:4;15758:131;:::i;:::-;15750:139;;15648:248;;;:::o;15902:419::-;16068:4;16106:2;16095:9;16091:18;16083:26;;16155:9;16149:4;16145:20;16141:1;16130:9;16126:17;16119:47;16183:131;16309:4;16183:131;:::i;:::-;16175:139;;16073:248;;;:::o;16327:419::-;16493:4;16531:2;16520:9;16516:18;16508:26;;16580:9;16574:4;16570:20;16566:1;16555:9;16551:17;16544:47;16608:131;16734:4;16608:131;:::i;:::-;16600:139;;16498:248;;;:::o;16752:419::-;16918:4;16956:2;16945:9;16941:18;16933:26;;17005:9;16999:4;16995:20;16991:1;16980:9;16976:17;16969:47;17033:131;17159:4;17033:131;:::i;:::-;17025:139;;16923:248;;;:::o;17177:419::-;17343:4;17381:2;17370:9;17366:18;17358:26;;17430:9;17424:4;17420:20;17416:1;17405:9;17401:17;17394:47;17458:131;17584:4;17458:131;:::i;:::-;17450:139;;17348:248;;;:::o;17602:419::-;17768:4;17806:2;17795:9;17791:18;17783:26;;17855:9;17849:4;17845:20;17841:1;17830:9;17826:17;17819:47;17883:131;18009:4;17883:131;:::i;:::-;17875:139;;17773:248;;;:::o;18027:419::-;18193:4;18231:2;18220:9;18216:18;18208:26;;18280:9;18274:4;18270:20;18266:1;18255:9;18251:17;18244:47;18308:131;18434:4;18308:131;:::i;:::-;18300:139;;18198:248;;;:::o;18452:419::-;18618:4;18656:2;18645:9;18641:18;18633:26;;18705:9;18699:4;18695:20;18691:1;18680:9;18676:17;18669:47;18733:131;18859:4;18733:131;:::i;:::-;18725:139;;18623:248;;;:::o;18877:419::-;19043:4;19081:2;19070:9;19066:18;19058:26;;19130:9;19124:4;19120:20;19116:1;19105:9;19101:17;19094:47;19158:131;19284:4;19158:131;:::i;:::-;19150:139;;19048:248;;;:::o;19302:419::-;19468:4;19506:2;19495:9;19491:18;19483:26;;19555:9;19549:4;19545:20;19541:1;19530:9;19526:17;19519:47;19583:131;19709:4;19583:131;:::i;:::-;19575:139;;19473:248;;;:::o;19727:419::-;19893:4;19931:2;19920:9;19916:18;19908:26;;19980:9;19974:4;19970:20;19966:1;19955:9;19951:17;19944:47;20008:131;20134:4;20008:131;:::i;:::-;20000:139;;19898:248;;;:::o;20152:222::-;20245:4;20283:2;20272:9;20268:18;20260:26;;20296:71;20364:1;20353:9;20349:17;20340:6;20296:71;:::i;:::-;20250:124;;;;:::o;20380:553::-;20557:4;20595:3;20584:9;20580:19;20572:27;;20609:71;20677:1;20666:9;20662:17;20653:6;20609:71;:::i;:::-;20690:72;20758:2;20747:9;20743:18;20734:6;20690:72;:::i;:::-;20772;20840:2;20829:9;20825:18;20816:6;20772:72;:::i;:::-;20854;20922:2;20911:9;20907:18;20898:6;20854:72;:::i;:::-;20562:371;;;;;;;:::o;20939:214::-;21028:4;21066:2;21055:9;21051:18;21043:26;;21079:67;21143:1;21132:9;21128:17;21119:6;21079:67;:::i;:::-;21033:120;;;;:::o;21159:99::-;21211:6;21245:5;21239:12;21229:22;;21218:40;;;:::o;21264:169::-;21348:11;21382:6;21377:3;21370:19;21422:4;21417:3;21413:14;21398:29;;21360:73;;;;:::o;21439:305::-;21479:3;21498:20;21516:1;21498:20;:::i;:::-;21493:25;;21532:20;21550:1;21532:20;:::i;:::-;21527:25;;21686:1;21618:66;21614:74;21611:1;21608:81;21605:2;;;21692:18;;:::i;:::-;21605:2;21736:1;21733;21729:9;21722:16;;21483:261;;;;:::o;21750:185::-;21790:1;21807:20;21825:1;21807:20;:::i;:::-;21802:25;;21841:20;21859:1;21841:20;:::i;:::-;21836:25;;21880:1;21870:2;;21885:18;;:::i;:::-;21870:2;21927:1;21924;21920:9;21915:14;;21792:143;;;;:::o;21941:348::-;21981:7;22004:20;22022:1;22004:20;:::i;:::-;21999:25;;22038:20;22056:1;22038:20;:::i;:::-;22033:25;;22226:1;22158:66;22154:74;22151:1;22148:81;22143:1;22136:9;22129:17;22125:105;22122:2;;;22233:18;;:::i;:::-;22122:2;22281:1;22278;22274:9;22263:20;;21989:300;;;;:::o;22295:96::-;22332:7;22361:24;22379:5;22361:24;:::i;:::-;22350:35;;22340:51;;;:::o;22397:90::-;22431:7;22474:5;22467:13;22460:21;22449:32;;22439:48;;;:::o;22493:126::-;22530:7;22570:42;22563:5;22559:54;22548:65;;22538:81;;;:::o;22625:77::-;22662:7;22691:5;22680:16;;22670:32;;;:::o;22708:86::-;22743:7;22783:4;22776:5;22772:16;22761:27;;22751:43;;;:::o;22800:307::-;22868:1;22878:113;22892:6;22889:1;22886:13;22878:113;;;22977:1;22972:3;22968:11;22962:18;22958:1;22953:3;22949:11;22942:39;22914:2;22911:1;22907:10;22902:15;;22878:113;;;23009:6;23006:1;23003:13;23000:2;;;23089:1;23080:6;23075:3;23071:16;23064:27;23000:2;22849:258;;;;:::o;23113:320::-;23157:6;23194:1;23188:4;23184:12;23174:22;;23241:1;23235:4;23231:12;23262:18;23252:2;;23318:4;23310:6;23306:17;23296:27;;23252:2;23380;23372:6;23369:14;23349:18;23346:38;23343:2;;;23399:18;;:::i;:::-;23343:2;23164:269;;;;:::o;23439:233::-;23478:3;23501:24;23519:5;23501:24;:::i;:::-;23492:33;;23547:66;23540:5;23537:77;23534:2;;;23617:18;;:::i;:::-;23534:2;23664:1;23657:5;23653:13;23646:20;;23482:190;;;:::o;23678:180::-;23726:77;23723:1;23716:88;23823:4;23820:1;23813:15;23847:4;23844:1;23837:15;23864:180;23912:77;23909:1;23902:88;24009:4;24006:1;23999:15;24033:4;24030:1;24023:15;24050:180;24098:77;24095:1;24088:88;24195:4;24192:1;24185:15;24219:4;24216:1;24209:15;24236:102;24277:6;24328:2;24324:7;24319:2;24312:5;24308:14;24304:28;24294:38;;24284:54;;;:::o;24344:227::-;24484:34;24480:1;24472:6;24468:14;24461:58;24553:10;24548:2;24540:6;24536:15;24529:35;24450:121;:::o;24577:225::-;24717:34;24713:1;24705:6;24701:14;24694:58;24786:8;24781:2;24773:6;24769:15;24762:33;24683:119;:::o;24808:182::-;24948:34;24944:1;24936:6;24932:14;24925:58;24914:76;:::o;24996:225::-;25136:34;25132:1;25124:6;25120:14;25113:58;25205:8;25200:2;25192:6;25188:15;25181:33;25102:119;:::o;25227:173::-;25367:25;25363:1;25355:6;25351:14;25344:49;25333:67;:::o;25406:182::-;25546:34;25542:1;25534:6;25530:14;25523:58;25512:76;:::o;25594:230::-;25734:34;25730:1;25722:6;25718:14;25711:58;25803:13;25798:2;25790:6;25786:15;25779:38;25700:124;:::o;25830:168::-;25970:20;25966:1;25958:6;25954:14;25947:44;25936:62;:::o;26004:227::-;26144:34;26140:1;26132:6;26128:14;26121:58;26213:10;26208:2;26200:6;26196:15;26189:35;26110:121;:::o;26237:182::-;26377:34;26373:1;26365:6;26361:14;26354:58;26343:76;:::o;26425:223::-;26565:34;26561:1;26553:6;26549:14;26542:58;26634:6;26629:2;26621:6;26617:15;26610:31;26531:117;:::o;26654:222::-;26794:34;26790:1;26782:6;26778:14;26771:58;26863:5;26858:2;26850:6;26846:15;26839:30;26760:116;:::o;26882:226::-;27022:34;27018:1;27010:6;27006:14;26999:58;27091:9;27086:2;27078:6;27074:15;27067:34;26988:120;:::o;27114:221::-;27254:34;27250:1;27242:6;27238:14;27231:58;27323:4;27318:2;27310:6;27306:15;27299:29;27220:115;:::o;27341:224::-;27481:34;27477:1;27469:6;27465:14;27458:58;27550:7;27545:2;27537:6;27533:15;27526:32;27447:118;:::o;27571:179::-;27711:31;27707:1;27699:6;27695:14;27688:55;27677:73;:::o;27756:179::-;27896:31;27892:1;27884:6;27880:14;27873:55;27862:73;:::o;27941:229::-;28081:34;28077:1;28069:6;28065:14;28058:58;28150:12;28145:2;28137:6;28133:15;28126:37;28047:123;:::o;28176:224::-;28316:34;28312:1;28304:6;28300:14;28293:58;28385:7;28380:2;28372:6;28368:15;28361:32;28282:118;:::o;28406:122::-;28479:24;28497:5;28479:24;:::i;:::-;28472:5;28469:35;28459:2;;28518:1;28515;28508:12;28459:2;28449:79;:::o;28534:116::-;28604:21;28619:5;28604:21;:::i;:::-;28597:5;28594:32;28584:2;;28640:1;28637;28630:12;28584:2;28574:76;:::o;28656:122::-;28729:24;28747:5;28729:24;:::i;:::-;28722:5;28719:35;28709:2;;28768:1;28765;28758:12;28709:2;28699:79;:::o

Swarm Source

ipfs://7840363b2f18c570a1d8b364ddae7155e8a7cc58a2311ad3029bff287011f146
Loading