ETH Price: $3,484.62 (+0.67%)
Gas: 4 Gwei

Token

CashCowCapital (CCC)
 

Overview

Max Total Supply

1,000,000,000,000 CCC

Holders

50

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
8,600,000,000 CCC

Value
$0.00
0xf2E5e038Ad8190DE889DB9f7ac046C030f8c4274
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:
CashCowCapital

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

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

/**
 
*/
//Cash Cow Capital ($CCC) 🌎

//Cash Cow Capital, here to provide multi-chain solutions to connect different peers together in order to form bridges ranging from different networks such as Solana, Avalanche and Cardano.
//
//
//Telegram: https://t.me/CashCowCapitalETH
//
//


// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.7;

/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

/**
 * BEP20 standard interface.
 */
interface IBEP20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * Allows for contract ownership along with multi-address authorization
 */
abstract contract Auth {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

    /**
     * Function modifier to require caller to be contract deployer
     */
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!Owner"); _;
    }

    /**
     * Check if address is owner
     */
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    /**
     * Transfer ownership to new address. Caller must be deployer. Leaves old deployer authorized
     */
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

interface IDEXFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

interface IDividendDistributor {
    function setShare(address shareholder, uint256 amount) external;
    function deposit() external payable;
    function claimDividend(address shareholder) external;
    function setTreasury(address treasury) external;
    function getDividendsClaimedOf (address shareholder) external returns (uint256);
}

contract DividendDistributor is IDividendDistributor {
    using SafeMath for uint256;

    address public _token;
    address public _owner;
    address public _treasury;

    struct Share {
        uint256 amount;
        uint256 totalExcluded;
        uint256 totalClaimed;
    }

    address[] private shareholders;
    mapping (address => uint256) private shareholderIndexes;

    mapping (address => Share) public shares;

    uint256 public totalShares;
    uint256 public totalDividends;
    uint256 public totalClaimed;
    uint256 public dividendsPerShare;
    uint256 private dividendsPerShareAccuracyFactor = 10 ** 36;

    modifier onlyToken() {
        require(msg.sender == _token); _;
    }
    
    modifier onlyOwner() {
        require(msg.sender == _owner); _;
    }

    constructor (address owner, address treasury) {
        _token = msg.sender;
        _owner = payable(owner);
        _treasury =  payable(treasury);
    }

   // receive() external payable { }

    function setShare(address shareholder, uint256 amount) external override onlyToken {
        if(shares[shareholder].amount > 0){
            distributeDividend(shareholder);
        }

        if(amount > 0 && shares[shareholder].amount == 0){
            addShareholder(shareholder);
        }else if(amount == 0 && shares[shareholder].amount > 0){
            removeShareholder(shareholder);
        }

        totalShares = totalShares.sub(shares[shareholder].amount).add(amount);
        shares[shareholder].amount = amount;
        shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
    }

    function deposit() external payable override {
       
        uint256 amount = msg.value;
        
        totalDividends = totalDividends.add(amount);
        dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares));
    }

    function distributeDividend(address shareholder) internal {
        if(shares[shareholder].amount == 0){ return; }

        uint256 amount = getClaimableDividendOf(shareholder);
        if(amount > 0){
            totalClaimed = totalClaimed.add(amount);
            shares[shareholder].totalClaimed = shares[shareholder].totalClaimed.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
            payable(shareholder).transfer(amount);
        }
    }

    function claimDividend(address shareholder) external override onlyToken {
        distributeDividend(shareholder);
    }

    function getClaimableDividendOf(address shareholder) public view returns (uint256) {
        if(shares[shareholder].amount == 0){ return 0; }

        uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount);
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;

        if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; }

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

    function getCumulativeDividends(uint256 share) internal view returns (uint256) {
        return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor);
    }

    function addShareholder(address shareholder) internal {
        shareholderIndexes[shareholder] = shareholders.length;
        shareholders.push(shareholder);
    }

    function removeShareholder(address shareholder) internal {
        shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1];
        shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder];
        shareholders.pop();
    }
    
    function manualSend(uint256 amount, address holder) external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(holder).transfer(amount > 0 ? amount : contractETHBalance);
    }

    function setTreasury(address treasury) external override onlyToken {
        _treasury = payable(treasury);
    }

    function getDividendsClaimedOf (address shareholder) external override view returns (uint256) {
        require (shares[shareholder].amount > 0, "You're not a CCC shareholder!");
        return shares[shareholder].totalClaimed;
    }

    }

contract CashCowCapital is IBEP20, Auth {
    using SafeMath for uint256;

    address private WETH;
    address private DEAD = 0x000000000000000000000000000000000000dEaD;
    address private ZERO = 0x0000000000000000000000000000000000000000;

    string private constant  _name = "CashCowCapital";
    string private constant _symbol = "CCC";
    uint8 private constant _decimals = 9;

    uint256 private _totalSupply = 1000000000000 * (10 ** _decimals);
    uint256 private _maxTxAmountBuy = _totalSupply;
    

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) private isFeeExempt;
    mapping (address => bool) private isDividendExempt;
    mapping (address => bool) private isBot;
    

        
    uint256 private totalFee = 14;
    uint256 private feeDenominator = 100;

    address payable public marketingWallet = payable(0xdfa94459DCBcf0f9a205a3297Da1A81dCb4dBE70);
    address payable public treasury = payable(0xdfa94459DCBcf0f9a205a3297Da1A81dCb4dBE70);

    IDEXRouter public router;
    address public pair;

    uint256 public launchedAt;
    bool private tradingOpen;
    bool private buyLimit = true;
    uint256 private maxBuy = 10000000000 * (10 ** _decimals);

    DividendDistributor private distributor;

    
    
    
    bool private inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor (    ) Auth(0xB4ED1D71932778131b014a6285dFf6aF0447Fe3C) {
        address _owner = 0xB4ED1D71932778131b014a6285dFf6aF0447Fe3C;
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            
        WETH = router.WETH();
        
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        
        _allowances[address(this)][address(router)] = type(uint256).max;

        distributor = new DividendDistributor(_owner, treasury);

        isFeeExempt[_owner] = true;
        isFeeExempt[marketingWallet] = true;
        isFeeExempt[treasury] = true;        
              
        isDividendExempt[pair] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;        

        _balances[_owner] = _totalSupply;
    
        emit Transfer(address(0), _owner, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (sender!= owner && recipient!= owner) require(tradingOpen, "Trading not yet enabled."); //transfers disabled before openTrading
        require (!isBot[sender] && !isBot[recipient], "Nice try");
        if (buyLimit) { 
            if (sender!=owner && recipient!= owner) require (amount<=maxBuy, "Too much sir");        
        }
        if (block.number <= (launchedAt + 1)) { 
            isBot[recipient] = false;
            isDividendExempt[recipient] = false; 
        }
       
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }      
    
        bool shouldSwapBack = /*!inSwap &&*/ (recipient==pair && balanceOf(address(this)) > 0);
        if(shouldSwapBack){ swapBack(); }

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, amount) : amount;
        
        _balances[recipient] = _balances[recipient].add(amountReceived);

        if(sender != pair && !isDividendExempt[sender]){ try distributor.setShare(sender, _balances[sender]) {} catch {} }
        if(recipient != pair && !isDividendExempt[recipient]){ try distributor.setShare(recipient, _balances[recipient]) {} catch {} }

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

 
    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return ( !(isFeeExempt[sender] || isFeeExempt[recipient]) &&  (sender == pair || recipient == pair) );
   }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount;
        feeAmount = amount.mul(totalFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);   

        return amount.sub(feeAmount);
    }

   
    function swapBack() internal swapping {
        uint256 amountToSwap = balanceOf(address(this));

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        
        uint256 amountTreasury = (address(this).balance).div(2);
        uint256 amountMarketing = (address(this).balance).div(2);

             
        payable(marketingWallet).transfer(amountMarketing);
        payable(treasury).transfer(amountTreasury);
    }

    
    function openTrading() external onlyOwner {
        launchedAt = block.number;
        tradingOpen = true;
    }    
  
    
    function setBot(address _address) external onlyOwner {
        isBot[_address] = true;
        _setIsDividendExempt(_address, true);
    }
    
    function setBulkBots(address[] memory bots_) external onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
        isBot[bots_[i]] = true;
        _setIsDividendExempt(bots_[i], true);

        }
    }


    function delBulkBots(address[] memory bots_) external onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
        isBot[bots_[i]] = false;
        _setIsDividendExempt(bots_[i], false);

        }
    }

    function isInBot(address _address) external view onlyOwner returns (bool) {
        return isBot[_address];
    }
    
    function _setIsDividendExempt(address holder, bool exempt) internal {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;
        if(exempt){
            distributor.setShare(holder, 0);
        }else{
            distributor.setShare(holder, _balances[holder]);
        }
    }

    function setIsDividendExempt(address holder, bool exempt) external onlyOwner {
        _setIsDividendExempt(holder, exempt);
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function setFee (uint256 _fee) external onlyOwner {
        require (_fee <= 14, "Fee can't exceed 14%");
        totalFee = _fee;
    }

  
    function manualSend() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(marketingWallet).transfer(contractETHBalance);
    }

    function claimDividend() external {
        distributor.claimDividend(msg.sender);
    }
    
    function claimDividend(address holder) external onlyOwner {
        distributor.claimDividend(holder);
    }
    
    function getClaimableDividendOf(address shareholder) public view returns (uint256) {
        return distributor.getClaimableDividendOf(shareholder);
    }
    
    function manualBurn(uint256 amount) external onlyOwner returns (bool) {
        return _basicTransfer(address(this), DEAD, amount);
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function setMarketingWallet(address _marketingWallet) external onlyOwner {
        marketingWallet = payable(_marketingWallet);
    }

    function setTreasury(address _treasury) external onlyOwner {
        treasury = payable(_treasury);
        distributor.setTreasury(_treasury);
    }

    function getTotalDividends() external view returns (uint256) {
        return distributor.totalDividends();
    }    

    function getTotalClaimed() external view returns (uint256) {
        return distributor.totalClaimed();
    }

     function getDividendsClaimedOf (address shareholder) external view returns (uint256) {
        return distributor.getDividendsClaimedOf(shareholder);
    }

    function removeBuyLimit() external onlyOwner {
        buyLimit = false;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","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":false,"internalType":"address","name":"owner","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":"holder","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":"spender","type":"address"}],"name":"approveMax","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":"address","name":"holder","type":"address"}],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimDividend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"delBulkBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getClaimableDividendOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"shareholder","type":"address"}],"name":"getDividendsClaimedOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isInBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualBurn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeBuyLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBulkBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_treasury","type":"address"}],"name":"setTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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 payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405261dead600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000099919062000b01565b64e8d4a51000620000ab919062000c3e565b600455600454600555600e600b556064600c5573dfa94459dcbcf0f9a205a3297da1a81dcb4dbe70600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073dfa94459dcbcf0f9a205a3297da1a81dcb4dbe70600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601260016101000a81548160ff0219169083151502179055506009600a62000193919062000b01565b6402540be400620001a5919062000c3e565b601355348015620001b557600080fd5b5073b4ed1d71932778131b014a6285dff6af0447fe3c806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050600073b4ed1d71932778131b014a6285dff6af0447fe3c9050737a250d5630b4cf539739df2c5dacb4c659f2488d600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002e357600080fd5b505afa158015620002f8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031e9190620009ca565b600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003c757600080fd5b505afa158015620003dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004029190620009ca565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b81526004016200046092919062000a2f565b602060405180830381600087803b1580156200047b57600080fd5b505af115801562000490573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004b69190620009ca565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051620005eb90620009a5565b620005f892919062000a5c565b604051809103906000f08015801562000615573d6000803e3d6000fd5b50601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600454600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60045460405162000996919062000a89565b60405180910390a35062000d81565b6119e48062004ced83390190565b600081519050620009c48162000d67565b92915050565b600060208284031215620009e357620009e262000d55565b5b6000620009f384828501620009b3565b91505092915050565b62000a078162000cea565b82525050565b62000a188162000c9f565b82525050565b62000a298162000cd3565b82525050565b600060408201905062000a46600083018562000a0d565b62000a55602083018462000a0d565b9392505050565b600060408201905062000a73600083018562000a0d565b62000a826020830184620009fc565b9392505050565b600060208201905062000aa0600083018462000a1e565b92915050565b6000808291508390505b600185111562000af85780860481111562000ad05762000acf62000d26565b5b600185161562000ae05780820291505b808102905062000af08562000d5a565b945062000ab0565b94509492505050565b600062000b0e8262000cd3565b915062000b1b8362000cdd565b925062000b4a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000b52565b905092915050565b60008262000b64576001905062000c37565b8162000b74576000905062000c37565b816001811462000b8d576002811462000b985762000bce565b600191505062000c37565b60ff84111562000bad5762000bac62000d26565b5b8360020a91508482111562000bc75762000bc662000d26565b5b5062000c37565b5060208310610133831016604e8410600b841016171562000c085782820a90508381111562000c025762000c0162000d26565b5b62000c37565b62000c17848484600162000aa6565b9250905081840481111562000c315762000c3062000d26565b5b81810290505b9392505050565b600062000c4b8262000cd3565b915062000c588362000cd3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c945762000c9362000d26565b5b828202905092915050565b600062000cac8262000cb3565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600062000cf78262000cfe565b9050919050565b600062000d0b8262000d12565b9050919050565b600062000d1f8262000cb3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600080fd5b60008160011c9050919050565b62000d728162000c9f565b811462000d7e57600080fd5b50565b613f5c8062000d916000396000f3fe6080604052600436106102295760003560e01c80636b5caec411610123578063b89402a0116100ab578063f0fc6bca1161006f578063f0fc6bca1461084e578063f2fde38b14610865578063f42938901461088e578063f708a64f146108a5578063f887ea40146108ce57610230565b8063b89402a01461077d578063bf56b371146107a6578063c9567bf9146107d1578063dd62ed3e146107e8578063f0f442601461082557610230565b8063893d20e8116100f2578063893d20e8146106825780638ecc37fb146106ad57806395d89b41146106ea578063a8aa1b3114610715578063a9059cbb1461074057610230565b80636b5caec4146105c657806370a08231146105ef578063736a83a11461062c57806375f0a8741461065757610230565b8063350fcdf9116101b15780635d098b38116101755780635d098b38146104f557806361d027b31461051e578063658d4b7f1461054957806367ee5f091461057257806369fe0e2d1461059d57610230565b8063350fcdf9146103fe5780633e07ce5b14610427578063416501c81461043e578063571ac8b01461047b5780635cc33f74146104b857610230565b806323b63585116101f857806323b63585146102f157806323b872dd1461032e5780632b112e491461036b5780632f54bf6e14610396578063313ce567146103d357610230565b806306fdde0314610235578063095ea7b31461026057806315f7e05e1461029d57806318160ddd146102c657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108f9565b60405161025791906137e9565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190613402565b610936565b60405161029491906137b3565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf91906132d5565b610a28565b005b3480156102d257600080fd5b506102db610b00565b6040516102e891906138eb565b60405180910390f35b3480156102fd57600080fd5b506103186004803603810190610313919061348b565b610b0a565b60405161032591906137b3565b60405180910390f35b34801561033a57600080fd5b506103556004803603810190610350919061336f565b610b88565b60405161036291906137b3565b60405180910390f35b34801561037757600080fd5b50610380610d88565b60405161038d91906138eb565b60405180910390f35b3480156103a257600080fd5b506103bd60048036038101906103b891906132d5565b610e0a565b6040516103ca91906137b3565b60405180910390f35b3480156103df57600080fd5b506103e8610e63565b6040516103f59190613960565b60405180910390f35b34801561040a57600080fd5b5061042560048036038101906104209190613442565b610e6c565b005b34801561043357600080fd5b5061043c610f6e565b005b34801561044a57600080fd5b50610465600480360381019061046091906132d5565b610fd3565b60405161047291906137b3565b60405180910390f35b34801561048757600080fd5b506104a2600480360381019061049d91906132d5565b611071565b6040516104af91906137b3565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da91906132d5565b6110a4565b6040516104ec91906138eb565b60405180910390f35b34801561050157600080fd5b5061051c600480360381019061051791906132d5565b611158565b005b34801561052a57600080fd5b506105336111e4565b6040516105409190613746565b60405180910390f35b34801561055557600080fd5b50610570600480360381019061056b91906133c2565b61120a565b005b34801561057e57600080fd5b506105876112ad565b60405161059491906138eb565b60405180910390f35b3480156105a957600080fd5b506105c460048036038101906105bf919061348b565b611354565b005b3480156105d257600080fd5b506105ed60048036038101906105e891906132d5565b6113ea565b005b3480156105fb57600080fd5b50610616600480360381019061061191906132d5565b611498565b60405161062391906138eb565b60405180910390f35b34801561063857600080fd5b506106416114e1565b60405161064e91906138eb565b60405180910390f35b34801561066357600080fd5b5061066c611588565b6040516106799190613746565b60405180910390f35b34801561068e57600080fd5b506106976115ae565b6040516106a49190613710565b60405180910390f35b3480156106b957600080fd5b506106d460048036038101906106cf91906132d5565b6115d7565b6040516106e191906138eb565b60405180910390f35b3480156106f657600080fd5b506106ff61168b565b60405161070c91906137e9565b60405180910390f35b34801561072157600080fd5b5061072a6116c8565b6040516107379190613710565b60405180910390f35b34801561074c57600080fd5b5061076760048036038101906107629190613402565b6116ee565b60405161077491906137b3565b60405180910390f35b34801561078957600080fd5b506107a4600480360381019061079f9190613442565b611703565b005b3480156107b257600080fd5b506107bb611805565b6040516107c891906138eb565b60405180910390f35b3480156107dd57600080fd5b506107e661180b565b005b3480156107f457600080fd5b5061080f600480360381019061080a919061332f565b611877565b60405161081c91906138eb565b60405180910390f35b34801561083157600080fd5b5061084c600480360381019061084791906132d5565b6118fe565b005b34801561085a57600080fd5b50610863611a17565b005b34801561087157600080fd5b5061088c60048036038101906108879190613302565b611aa6565b005b34801561089a57600080fd5b506108a3611b68565b005b3480156108b157600080fd5b506108cc60048036038101906108c791906133c2565b611c21565b005b3480156108da57600080fd5b506108e3611c77565b6040516108f091906137ce565b60405180910390f35b60606040518060400160405280600e81526020017f43617368436f774361706974616c000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a1691906138eb565b60405180910390a36001905092915050565b610a3133610e0a565b610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a679061380b565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e826040518263ffffffff1660e01b8152600401610acb9190613710565b600060405180830381600087803b158015610ae557600080fd5b505af1158015610af9573d6000803e3d6000fd5b5050505050565b6000600454905090565b6000610b1533610e0a565b610b54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4b9061380b565b60405180910390fd5b610b8130600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c9d565b9050919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d7457610cf3826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e709092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610d7f848484611ed4565b90509392505050565b6000610e05610db8600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611498565b610df7610de6600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611498565b60045461281890919063ffffffff16565b61281890919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b610e7533610e0a565b610eb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eab9061380b565b60405180910390fd5b60005b8151811015610f6a576000600a6000848481518110610ed957610ed8613d02565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610f57828281518110610f4857610f47613d02565b5b60200260200101516000612862565b8080610f6290613c5b565b915050610eb7565b5050565b610f7733610e0a565b610fb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fad9061380b565b60405180910390fd5b6000601260016101000a81548160ff021916908315150217905550565b6000610fde33610e0a565b61101d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110149061380b565b60405180910390fd5b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600061109d827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610936565b9050919050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635cc33f74836040518263ffffffff1660e01b81526004016111019190613710565b60206040518083038186803b15801561111957600080fd5b505afa15801561112d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115191906134b8565b9050919050565b61116133610e0a565b6111a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111979061380b565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61121333610e0a565b611252576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112499061380b565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663997664d76040518163ffffffff1660e01b815260040160206040518083038186803b15801561131757600080fd5b505afa15801561132b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134f91906134b8565b905090565b61135d33610e0a565b61139c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113939061380b565b60405180910390fd5b600e8111156113e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d79061382b565b60405180910390fd5b80600b8190555050565b6113f333610e0a565b611432576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114299061380b565b60405180910390fd5b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611495816001612862565b50565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d54ad2a16040518163ffffffff1660e01b815260040160206040518083038186803b15801561154b57600080fd5b505afa15801561155f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158391906134b8565b905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638ecc37fb836040518263ffffffff1660e01b81526004016116349190613710565b60206040518083038186803b15801561164c57600080fd5b505afa158015611660573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168491906134b8565b9050919050565b60606040518060400160405280600381526020017f4343430000000000000000000000000000000000000000000000000000000000815250905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006116fb338484611ed4565b905092915050565b61170c33610e0a565b61174b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117429061380b565b60405180910390fd5b60005b8151811015611801576001600a60008484815181106117705761176f613d02565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506117ee8282815181106117df576117de613d02565b5b60200260200101516001612862565b80806117f990613c5b565b91505061174e565b5050565b60115481565b61181433610e0a565b611853576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184a9061380b565b60405180910390fd5b436011819055506001601260006101000a81548160ff021916908315150217905550565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61190733610e0a565b611946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193d9061380b565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0f44260826040518263ffffffff1660e01b81526004016119e29190613710565b600060405180830381600087803b1580156119fc57600080fd5b505af1158015611a10573d6000803e3d6000fd5b5050505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b8152600401611a729190613710565b600060405180830381600087803b158015611a8c57600080fd5b505af1158015611aa0573d6000803e3d6000fd5b50505050565b611aaf33610e0a565b611aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae59061380b565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611b5d919061372b565b60405180910390a150565b611b7133610e0a565b611bb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba79061380b565b60405180910390fd5b6000479050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c1d573d6000803e3d6000fd5b5050565b611c2a33610e0a565b611c69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c609061380b565b60405180910390fd5b611c738282612862565b5050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611d28826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e709092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dbd82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aba90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e5d91906138eb565b60405180910390a3600190509392505050565b6000838311158290611eb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eaf91906137e9565b60405180910390fd5b5060008385611ec79190613b02565b9050809150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f7f575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fd457601260009054906101000a900460ff16611fd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fca906138cb565b60405180910390fd5b5b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120785750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6120b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ae9061384b565b60405180910390fd5b601260019054906101000a900460ff16156121c05760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612174575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156121bf576013548211156121be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b59061388b565b60405180910390fd5b5b5b60016011546121cf9190613a21565b4311612286576000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b60148054906101000a900460ff16156122ab576122a4848484611c9d565b9050612811565b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156123125750600061231030611498565b115b9050801561232357612322612b18565b5b6123ac836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e709092919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006123fb8686612e05565b6124055783612410565b61240f8685612f62565b5b905061246481600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aba90919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561254f5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561262657601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9687600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016125f092919061378a565b600060405180830381600087803b15801561260a57600080fd5b505af192505050801561261b575060015b61262457612625565b5b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156126ce5750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127a557601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b815260040161276f92919061378a565b600060405180830381600087803b15801561278957600080fd5b505af192505050801561279a575060015b6127a3576127a4565b5b5b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161280291906138eb565b60405180910390a36001925050505b9392505050565b600061285a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e70565b905092915050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156128ec5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6128f557600080fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156129e757601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b81526004016129b0929190613761565b600060405180830381600087803b1580156129ca57600080fd5b505af11580156129de573d6000803e3d6000fd5b50505050612ab6565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612a8392919061378a565b600060405180830381600087803b158015612a9d57600080fd5b505af1158015612ab1573d6000803e3d6000fd5b505050505b5050565b6000808284612ac99190613a21565b905083811015612b0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b059061386b565b60405180910390fd5b8091505092915050565b60016014806101000a81548160ff0219169083151502179055506000612b3d30611498565b90506000600267ffffffffffffffff811115612b5c57612b5b613d31565b5b604051908082528060200260200182016040528015612b8a5781602001602082028036833780820191505090505b5090503081600081518110612ba257612ba1613d02565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612c1357612c12613d02565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612cb1959493929190613906565b600060405180830381600087803b158015612ccb57600080fd5b505af1158015612cdf573d6000803e3d6000fd5b505050506000612cf96002476130a690919063ffffffff16565b90506000612d116002476130a690919063ffffffff16565b9050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612d7b573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612de4573d6000803e3d6000fd5b505050505060006014806101000a81548160ff021916908315150217905550565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ea85750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b158015612f5a5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612f595750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b905092915050565b600080612f8e600c54612f80600b54866130f090919063ffffffff16565b6130a690919063ffffffff16565b9050612fe281600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aba90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161308291906138eb565b60405180910390a361309d818461281890919063ffffffff16565b91505092915050565b60006130e883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061316b565b905092915050565b6000808314156131035760009050613165565b600082846131119190613aa8565b90508284826131209190613a77565b14613160576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613157906138ab565b60405180910390fd5b809150505b92915050565b600080831182906131b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131a991906137e9565b60405180910390fd5b50600083856131c19190613a77565b9050809150509392505050565b60006131e16131dc846139a0565b61397b565b9050808382526020820190508285602086028201111561320457613203613d65565b5b60005b85811015613234578161321a888261323e565b845260208401935060208301925050600181019050613207565b5050509392505050565b60008135905061324d81613eca565b92915050565b60008135905061326281613ee1565b92915050565b600082601f83011261327d5761327c613d60565b5b813561328d8482602086016131ce565b91505092915050565b6000813590506132a581613ef8565b92915050565b6000813590506132ba81613f0f565b92915050565b6000815190506132cf81613f0f565b92915050565b6000602082840312156132eb576132ea613d6f565b5b60006132f98482850161323e565b91505092915050565b60006020828403121561331857613317613d6f565b5b600061332684828501613253565b91505092915050565b6000806040838503121561334657613345613d6f565b5b60006133548582860161323e565b92505060206133658582860161323e565b9150509250929050565b60008060006060848603121561338857613387613d6f565b5b60006133968682870161323e565b93505060206133a78682870161323e565b92505060406133b8868287016132ab565b9150509250925092565b600080604083850312156133d9576133d8613d6f565b5b60006133e78582860161323e565b92505060206133f885828601613296565b9150509250929050565b6000806040838503121561341957613418613d6f565b5b60006134278582860161323e565b9250506020613438858286016132ab565b9150509250929050565b60006020828403121561345857613457613d6f565b5b600082013567ffffffffffffffff81111561347657613475613d6a565b5b61348284828501613268565b91505092915050565b6000602082840312156134a1576134a0613d6f565b5b60006134af848285016132ab565b91505092915050565b6000602082840312156134ce576134cd613d6f565b5b60006134dc848285016132c0565b91505092915050565b60006134f1838361351b565b60208301905092915050565b61350681613b9d565b82525050565b61351581613b48565b82525050565b61352481613b36565b82525050565b61353381613b36565b82525050565b6000613544826139dc565b61354e81856139ff565b9350613559836139cc565b8060005b8381101561358a57815161357188826134e5565b975061357c836139f2565b92505060018101905061355d565b5085935050505092915050565b6135a081613b5a565b82525050565b6135af81613baf565b82525050565b6135be81613bc1565b82525050565b60006135cf826139e7565b6135d98185613a10565b93506135e9818560208601613bf7565b6135f281613d74565b840191505092915050565b600061360a600683613a10565b915061361582613d85565b602082019050919050565b600061362d601483613a10565b915061363882613dae565b602082019050919050565b6000613650600883613a10565b915061365b82613dd7565b602082019050919050565b6000613673601b83613a10565b915061367e82613e00565b602082019050919050565b6000613696600c83613a10565b91506136a182613e29565b602082019050919050565b60006136b9602183613a10565b91506136c482613e52565b604082019050919050565b60006136dc601883613a10565b91506136e782613ea1565b602082019050919050565b6136fb81613b86565b82525050565b61370a81613b90565b82525050565b6000602082019050613725600083018461352a565b92915050565b600060208201905061374060008301846134fd565b92915050565b600060208201905061375b600083018461350c565b92915050565b6000604082019050613776600083018561352a565b61378360208301846135b5565b9392505050565b600060408201905061379f600083018561352a565b6137ac60208301846136f2565b9392505050565b60006020820190506137c86000830184613597565b92915050565b60006020820190506137e360008301846135a6565b92915050565b6000602082019050818103600083015261380381846135c4565b905092915050565b60006020820190508181036000830152613824816135fd565b9050919050565b6000602082019050818103600083015261384481613620565b9050919050565b6000602082019050818103600083015261386481613643565b9050919050565b6000602082019050818103600083015261388481613666565b9050919050565b600060208201905081810360008301526138a481613689565b9050919050565b600060208201905081810360008301526138c4816136ac565b9050919050565b600060208201905081810360008301526138e4816136cf565b9050919050565b600060208201905061390060008301846136f2565b92915050565b600060a08201905061391b60008301886136f2565b61392860208301876135b5565b818103604083015261393a8186613539565b9050613949606083018561352a565b61395660808301846136f2565b9695505050505050565b60006020820190506139756000830184613701565b92915050565b6000613985613996565b90506139918282613c2a565b919050565b6000604051905090565b600067ffffffffffffffff8211156139bb576139ba613d31565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613a2c82613b86565b9150613a3783613b86565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a6c57613a6b613ca4565b5b828201905092915050565b6000613a8282613b86565b9150613a8d83613b86565b925082613a9d57613a9c613cd3565b5b828204905092915050565b6000613ab382613b86565b9150613abe83613b86565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613af757613af6613ca4565b5b828202905092915050565b6000613b0d82613b86565b9150613b1883613b86565b925082821015613b2b57613b2a613ca4565b5b828203905092915050565b6000613b4182613b66565b9050919050565b6000613b5382613b66565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613ba882613bd3565b9050919050565b6000613bba82613bd3565b9050919050565b6000613bcc82613b86565b9050919050565b6000613bde82613be5565b9050919050565b6000613bf082613b66565b9050919050565b60005b83811015613c15578082015181840152602081019050613bfa565b83811115613c24576000848401525b50505050565b613c3382613d74565b810181811067ffffffffffffffff82111715613c5257613c51613d31565b5b80604052505050565b6000613c6682613b86565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613c9957613c98613ca4565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b7f4665652063616e27742065786365656420313425000000000000000000000000600082015250565b7f4e69636520747279000000000000000000000000000000000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f546f6f206d756368207369720000000000000000000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b613ed381613b36565b8114613ede57600080fd5b50565b613eea81613b48565b8114613ef557600080fd5b50565b613f0181613b5a565b8114613f0c57600080fd5b50565b613f1881613b86565b8114613f2357600080fd5b5056fea264697066735822122030d383475b91b19c8615b933f205df500474e53ca1141072945ad12be3eefbdc64736f6c6343000807003360806040526ec097ce7bc90715b34b9f1000000000600a553480156200002457600080fd5b50604051620019e4380380620019e483398181016040528101906200004a91906200012b565b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050620001c5565b6000815190506200012581620001ab565b92915050565b60008060408385031215620001455762000144620001a6565b5b6000620001558582860162000114565b9250506020620001688582860162000114565b9150509250929050565b60006200017f8262000186565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600080fd5b620001b68162000172565b8114620001c257600080fd5b50565b61180f80620001d56000396000f3fe6080604052600436106100e85760003560e01c8063b2bdfa7b1161008a578063e2d2e21911610059578063e2d2e219146102d7578063e319a3d914610302578063ecd0c0c31461032d578063f0f4426014610358576100e8565b8063b2bdfa7b14610238578063ce7c2ac214610263578063d0e30db0146102a2578063d54ad2a1146102ac576100e8565b80633a98ef39116100c65780633a98ef39146101685780635cc33f74146101935780638ecc37fb146101d0578063997664d71461020d576100e8565b80631014edf5146100ed57806314b6ca961461011657806315f7e05e1461013f575b600080fd5b3480156100f957600080fd5b50610114600480360381019061010f91906112a9565b610381565b005b34801561012257600080fd5b5061013d60048036038101906101389190611269565b61043b565b005b34801561014b57600080fd5b506101666004803603810190610161919061123c565b6106fa565b005b34801561017457600080fd5b5061017d61075e565b60405161018a9190611446565b60405180910390f35b34801561019f57600080fd5b506101ba60048036038101906101b5919061123c565b610764565b6040516101c79190611446565b60405180910390f35b3480156101dc57600080fd5b506101f760048036038101906101f2919061123c565b610834565b6040516102049190611446565b60405180910390f35b34801561021957600080fd5b5061022261094e565b60405161022f9190611446565b60405180910390f35b34801561024457600080fd5b5061024d610954565b60405161025a91906113a9565b60405180910390f35b34801561026f57600080fd5b5061028a6004803603810190610285919061123c565b61097a565b60405161029993929190611461565b60405180910390f35b6102aa6109a4565b005b3480156102b857600080fd5b506102c1610a0a565b6040516102ce9190611446565b60405180910390f35b3480156102e357600080fd5b506102ec610a10565b6040516102f99190611446565b60405180910390f35b34801561030e57600080fd5b50610317610a16565b60405161032491906113a9565b60405180910390f35b34801561033957600080fd5b50610342610a3c565b60405161034f91906113a9565b60405180910390f35b34801561036457600080fd5b5061037f600480360381019061037a919061123c565b610a60565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103db57600080fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc60008511610408578261040a565b845b9081150290604051600060405180830381858888f19350505050158015610435573d6000803e3d6000fd5b50505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461049357600080fd5b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411156104e8576104e782610afc565b5b60008111801561053a57506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154145b1561054d5761054882610cf6565b6105af565b60008114801561059f57506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154115b156105ae576105ad82610da5565b5b5b6106188161060a600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600654610fac90919063ffffffff16565b610ff690919063ffffffff16565b60068190555080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506106b0600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611054565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461075257600080fd5b61075b81610afc565b50565b60065481565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154116107ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e190611426565b60405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201549050919050565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156108895760009050610949565b60006108d6600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611054565b90506000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154905080821161093157600092505050610949565b6109448183610fac90919063ffffffff16565b925050505b919050565b60075481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915090508060000154908060010154908060020154905083565b60003490506109be81600754610ff690919063ffffffff16565b600781905550610a016109f06006546109e284600a5461108690919063ffffffff16565b61110190919063ffffffff16565b600954610ff690919063ffffffff16565b60098190555050565b60085481565b60095481565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ab857600080fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001541415610b4c57610cf3565b6000610b5782610834565b90506000811115610cf157610b7781600854610ff690919063ffffffff16565b600881905550610bd281600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154610ff690919063ffffffff16565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020181905550610c63600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154611054565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610cef573d6000803e3d6000fd5b505b505b50565b600380549050600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506003819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60036001600380549050610db99190611595565b81548110610dca57610dc96116c5565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166003600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481548110610e4857610e476116c5565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546004600060036001600380549050610ee89190611595565b81548110610ef957610ef86116c5565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506003805480610f7457610f73611696565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905550565b6000610fee83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061114b565b905092915050565b600080828461100591906114b4565b90508381101561104a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611041906113e6565b60405180910390fd5b8091505092915050565b600061107f600a546110716009548561108690919063ffffffff16565b61110190919063ffffffff16565b9050919050565b60008083141561109957600090506110fb565b600082846110a7919061153b565b90508284826110b6919061150a565b146110f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ed90611406565b60405180910390fd5b809150505b92915050565b600061114383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506111af565b905092915050565b6000838311158290611193576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118a91906113c4565b60405180910390fd5b50600083856111a29190611595565b9050809150509392505050565b600080831182906111f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ed91906113c4565b60405180910390fd5b5060008385611205919061150a565b9050809150509392505050565b600081359050611221816117ab565b92915050565b600081359050611236816117c2565b92915050565b600060208284031215611252576112516116f4565b5b600061126084828501611212565b91505092915050565b600080604083850312156112805761127f6116f4565b5b600061128e85828601611212565b925050602061129f85828601611227565b9150509250929050565b600080604083850312156112c0576112bf6116f4565b5b60006112ce85828601611227565b92505060206112df85828601611212565b9150509250929050565b6112f2816115c9565b82525050565b600061130382611498565b61130d81856114a3565b935061131d818560208601611605565b611326816116f9565b840191505092915050565b600061133e601b836114a3565b91506113498261170a565b602082019050919050565b60006113616021836114a3565b915061136c82611733565b604082019050919050565b6000611384601d836114a3565b915061138f82611782565b602082019050919050565b6113a3816115fb565b82525050565b60006020820190506113be60008301846112e9565b92915050565b600060208201905081810360008301526113de81846112f8565b905092915050565b600060208201905081810360008301526113ff81611331565b9050919050565b6000602082019050818103600083015261141f81611354565b9050919050565b6000602082019050818103600083015261143f81611377565b9050919050565b600060208201905061145b600083018461139a565b92915050565b6000606082019050611476600083018661139a565b611483602083018561139a565b611490604083018461139a565b949350505050565b600081519050919050565b600082825260208201905092915050565b60006114bf826115fb565b91506114ca836115fb565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156114ff576114fe611638565b5b828201905092915050565b6000611515826115fb565b9150611520836115fb565b9250826115305761152f611667565b5b828204905092915050565b6000611546826115fb565b9150611551836115fb565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561158a57611589611638565b5b828202905092915050565b60006115a0826115fb565b91506115ab836115fb565b9250828210156115be576115bd611638565b5b828203905092915050565b60006115d4826115db565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015611623578082015181840152602081019050611608565b83811115611632576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f596f75277265206e6f74206120434343207368617265686f6c64657221000000600082015250565b6117b4816115c9565b81146117bf57600080fd5b50565b6117cb816115fb565b81146117d657600080fd5b5056fea2646970667358221220595d0301a67f5dabe6978569fd55a6900215c6421e408d898c2a3701503af9b064736f6c63430008070033

Deployed Bytecode

0x6080604052600436106102295760003560e01c80636b5caec411610123578063b89402a0116100ab578063f0fc6bca1161006f578063f0fc6bca1461084e578063f2fde38b14610865578063f42938901461088e578063f708a64f146108a5578063f887ea40146108ce57610230565b8063b89402a01461077d578063bf56b371146107a6578063c9567bf9146107d1578063dd62ed3e146107e8578063f0f442601461082557610230565b8063893d20e8116100f2578063893d20e8146106825780638ecc37fb146106ad57806395d89b41146106ea578063a8aa1b3114610715578063a9059cbb1461074057610230565b80636b5caec4146105c657806370a08231146105ef578063736a83a11461062c57806375f0a8741461065757610230565b8063350fcdf9116101b15780635d098b38116101755780635d098b38146104f557806361d027b31461051e578063658d4b7f1461054957806367ee5f091461057257806369fe0e2d1461059d57610230565b8063350fcdf9146103fe5780633e07ce5b14610427578063416501c81461043e578063571ac8b01461047b5780635cc33f74146104b857610230565b806323b63585116101f857806323b63585146102f157806323b872dd1461032e5780632b112e491461036b5780632f54bf6e14610396578063313ce567146103d357610230565b806306fdde0314610235578063095ea7b31461026057806315f7e05e1461029d57806318160ddd146102c657610230565b3661023057005b600080fd5b34801561024157600080fd5b5061024a6108f9565b60405161025791906137e9565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190613402565b610936565b60405161029491906137b3565b60405180910390f35b3480156102a957600080fd5b506102c460048036038101906102bf91906132d5565b610a28565b005b3480156102d257600080fd5b506102db610b00565b6040516102e891906138eb565b60405180910390f35b3480156102fd57600080fd5b506103186004803603810190610313919061348b565b610b0a565b60405161032591906137b3565b60405180910390f35b34801561033a57600080fd5b506103556004803603810190610350919061336f565b610b88565b60405161036291906137b3565b60405180910390f35b34801561037757600080fd5b50610380610d88565b60405161038d91906138eb565b60405180910390f35b3480156103a257600080fd5b506103bd60048036038101906103b891906132d5565b610e0a565b6040516103ca91906137b3565b60405180910390f35b3480156103df57600080fd5b506103e8610e63565b6040516103f59190613960565b60405180910390f35b34801561040a57600080fd5b5061042560048036038101906104209190613442565b610e6c565b005b34801561043357600080fd5b5061043c610f6e565b005b34801561044a57600080fd5b50610465600480360381019061046091906132d5565b610fd3565b60405161047291906137b3565b60405180910390f35b34801561048757600080fd5b506104a2600480360381019061049d91906132d5565b611071565b6040516104af91906137b3565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da91906132d5565b6110a4565b6040516104ec91906138eb565b60405180910390f35b34801561050157600080fd5b5061051c600480360381019061051791906132d5565b611158565b005b34801561052a57600080fd5b506105336111e4565b6040516105409190613746565b60405180910390f35b34801561055557600080fd5b50610570600480360381019061056b91906133c2565b61120a565b005b34801561057e57600080fd5b506105876112ad565b60405161059491906138eb565b60405180910390f35b3480156105a957600080fd5b506105c460048036038101906105bf919061348b565b611354565b005b3480156105d257600080fd5b506105ed60048036038101906105e891906132d5565b6113ea565b005b3480156105fb57600080fd5b50610616600480360381019061061191906132d5565b611498565b60405161062391906138eb565b60405180910390f35b34801561063857600080fd5b506106416114e1565b60405161064e91906138eb565b60405180910390f35b34801561066357600080fd5b5061066c611588565b6040516106799190613746565b60405180910390f35b34801561068e57600080fd5b506106976115ae565b6040516106a49190613710565b60405180910390f35b3480156106b957600080fd5b506106d460048036038101906106cf91906132d5565b6115d7565b6040516106e191906138eb565b60405180910390f35b3480156106f657600080fd5b506106ff61168b565b60405161070c91906137e9565b60405180910390f35b34801561072157600080fd5b5061072a6116c8565b6040516107379190613710565b60405180910390f35b34801561074c57600080fd5b5061076760048036038101906107629190613402565b6116ee565b60405161077491906137b3565b60405180910390f35b34801561078957600080fd5b506107a4600480360381019061079f9190613442565b611703565b005b3480156107b257600080fd5b506107bb611805565b6040516107c891906138eb565b60405180910390f35b3480156107dd57600080fd5b506107e661180b565b005b3480156107f457600080fd5b5061080f600480360381019061080a919061332f565b611877565b60405161081c91906138eb565b60405180910390f35b34801561083157600080fd5b5061084c600480360381019061084791906132d5565b6118fe565b005b34801561085a57600080fd5b50610863611a17565b005b34801561087157600080fd5b5061088c60048036038101906108879190613302565b611aa6565b005b34801561089a57600080fd5b506108a3611b68565b005b3480156108b157600080fd5b506108cc60048036038101906108c791906133c2565b611c21565b005b3480156108da57600080fd5b506108e3611c77565b6040516108f091906137ce565b60405180910390f35b60606040518060400160405280600e81526020017f43617368436f774361706974616c000000000000000000000000000000000000815250905090565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a1691906138eb565b60405180910390a36001905092915050565b610a3133610e0a565b610a70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a679061380b565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e826040518263ffffffff1660e01b8152600401610acb9190613710565b600060405180830381600087803b158015610ae557600080fd5b505af1158015610af9573d6000803e3d6000fd5b5050505050565b6000600454905090565b6000610b1533610e0a565b610b54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4b9061380b565b60405180910390fd5b610b8130600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c9d565b9050919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d7457610cf3826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e709092919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610d7f848484611ed4565b90509392505050565b6000610e05610db8600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611498565b610df7610de6600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611498565b60045461281890919063ffffffff16565b61281890919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b610e7533610e0a565b610eb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eab9061380b565b60405180910390fd5b60005b8151811015610f6a576000600a6000848481518110610ed957610ed8613d02565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610f57828281518110610f4857610f47613d02565b5b60200260200101516000612862565b8080610f6290613c5b565b915050610eb7565b5050565b610f7733610e0a565b610fb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fad9061380b565b60405180910390fd5b6000601260016101000a81548160ff021916908315150217905550565b6000610fde33610e0a565b61101d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110149061380b565b60405180910390fd5b600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600061109d827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610936565b9050919050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635cc33f74836040518263ffffffff1660e01b81526004016111019190613710565b60206040518083038186803b15801561111957600080fd5b505afa15801561112d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115191906134b8565b9050919050565b61116133610e0a565b6111a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111979061380b565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61121333610e0a565b611252576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112499061380b565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663997664d76040518163ffffffff1660e01b815260040160206040518083038186803b15801561131757600080fd5b505afa15801561132b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134f91906134b8565b905090565b61135d33610e0a565b61139c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113939061380b565b60405180910390fd5b600e8111156113e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d79061382b565b60405180910390fd5b80600b8190555050565b6113f333610e0a565b611432576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114299061380b565b60405180910390fd5b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611495816001612862565b50565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d54ad2a16040518163ffffffff1660e01b815260040160206040518083038186803b15801561154b57600080fd5b505afa15801561155f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158391906134b8565b905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638ecc37fb836040518263ffffffff1660e01b81526004016116349190613710565b60206040518083038186803b15801561164c57600080fd5b505afa158015611660573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168491906134b8565b9050919050565b60606040518060400160405280600381526020017f4343430000000000000000000000000000000000000000000000000000000000815250905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006116fb338484611ed4565b905092915050565b61170c33610e0a565b61174b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117429061380b565b60405180910390fd5b60005b8151811015611801576001600a60008484815181106117705761176f613d02565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506117ee8282815181106117df576117de613d02565b5b60200260200101516001612862565b80806117f990613c5b565b91505061174e565b5050565b60115481565b61181433610e0a565b611853576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184a9061380b565b60405180910390fd5b436011819055506001601260006101000a81548160ff021916908315150217905550565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61190733610e0a565b611946576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193d9061380b565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f0f44260826040518263ffffffff1660e01b81526004016119e29190613710565b600060405180830381600087803b1580156119fc57600080fd5b505af1158015611a10573d6000803e3d6000fd5b5050505050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166315f7e05e336040518263ffffffff1660e01b8152600401611a729190613710565b600060405180830381600087803b158015611a8c57600080fd5b505af1158015611aa0573d6000803e3d6000fd5b50505050565b611aaf33610e0a565b611aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae59061380b565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611b5d919061372b565b60405180910390a150565b611b7133610e0a565b611bb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba79061380b565b60405180910390fd5b6000479050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c1d573d6000803e3d6000fd5b5050565b611c2a33610e0a565b611c69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c609061380b565b60405180910390fd5b611c738282612862565b5050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611d28826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e709092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dbd82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aba90919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e5d91906138eb565b60405180910390a3600190509392505050565b6000838311158290611eb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eaf91906137e9565b60405180910390fd5b5060008385611ec79190613b02565b9050809150509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f7f575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fd457601260009054906101000a900460ff16611fd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fca906138cb565b60405180910390fd5b5b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156120785750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6120b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ae9061384b565b60405180910390fd5b601260019054906101000a900460ff16156121c05760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612174575060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156121bf576013548211156121be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b59061388b565b60405180910390fd5b5b5b60016011546121cf9190613a21565b4311612286576000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b60148054906101000a900460ff16156122ab576122a4848484611c9d565b9050612811565b6000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156123125750600061231030611498565b115b9050801561232357612322612b18565b5b6123ac836040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e709092919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006123fb8686612e05565b6124055783612410565b61240f8685612f62565b5b905061246481600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aba90919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561254f5750600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561262657601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9687600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b81526004016125f092919061378a565b600060405180830381600087803b15801561260a57600080fd5b505af192505050801561261b575060015b61262457612625565b5b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156126ce5750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156127a557601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9686600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b815260040161276f92919061378a565b600060405180830381600087803b15801561278957600080fd5b505af192505050801561279a575060015b6127a3576127a4565b5b5b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161280291906138eb565b60405180910390a36001925050505b9392505050565b600061285a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e70565b905092915050565b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156128ec5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b6128f557600080fd5b80600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080156129e757601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca968360006040518363ffffffff1660e01b81526004016129b0929190613761565b600060405180830381600087803b1580156129ca57600080fd5b505af11580156129de573d6000803e3d6000fd5b50505050612ab6565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314b6ca9683600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518363ffffffff1660e01b8152600401612a8392919061378a565b600060405180830381600087803b158015612a9d57600080fd5b505af1158015612ab1573d6000803e3d6000fd5b505050505b5050565b6000808284612ac99190613a21565b905083811015612b0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b059061386b565b60405180910390fd5b8091505092915050565b60016014806101000a81548160ff0219169083151502179055506000612b3d30611498565b90506000600267ffffffffffffffff811115612b5c57612b5b613d31565b5b604051908082528060200260200182016040528015612b8a5781602001602082028036833780820191505090505b5090503081600081518110612ba257612ba1613d02565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110612c1357612c12613d02565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612cb1959493929190613906565b600060405180830381600087803b158015612ccb57600080fd5b505af1158015612cdf573d6000803e3d6000fd5b505050506000612cf96002476130a690919063ffffffff16565b90506000612d116002476130a690919063ffffffff16565b9050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612d7b573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612de4573d6000803e3d6000fd5b505050505060006014806101000a81548160ff021916908315150217905550565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612ea85750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b158015612f5a5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480612f595750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b5b905092915050565b600080612f8e600c54612f80600b54866130f090919063ffffffff16565b6130a690919063ffffffff16565b9050612fe281600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aba90919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161308291906138eb565b60405180910390a361309d818461281890919063ffffffff16565b91505092915050565b60006130e883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061316b565b905092915050565b6000808314156131035760009050613165565b600082846131119190613aa8565b90508284826131209190613a77565b14613160576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613157906138ab565b60405180910390fd5b809150505b92915050565b600080831182906131b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131a991906137e9565b60405180910390fd5b50600083856131c19190613a77565b9050809150509392505050565b60006131e16131dc846139a0565b61397b565b9050808382526020820190508285602086028201111561320457613203613d65565b5b60005b85811015613234578161321a888261323e565b845260208401935060208301925050600181019050613207565b5050509392505050565b60008135905061324d81613eca565b92915050565b60008135905061326281613ee1565b92915050565b600082601f83011261327d5761327c613d60565b5b813561328d8482602086016131ce565b91505092915050565b6000813590506132a581613ef8565b92915050565b6000813590506132ba81613f0f565b92915050565b6000815190506132cf81613f0f565b92915050565b6000602082840312156132eb576132ea613d6f565b5b60006132f98482850161323e565b91505092915050565b60006020828403121561331857613317613d6f565b5b600061332684828501613253565b91505092915050565b6000806040838503121561334657613345613d6f565b5b60006133548582860161323e565b92505060206133658582860161323e565b9150509250929050565b60008060006060848603121561338857613387613d6f565b5b60006133968682870161323e565b93505060206133a78682870161323e565b92505060406133b8868287016132ab565b9150509250925092565b600080604083850312156133d9576133d8613d6f565b5b60006133e78582860161323e565b92505060206133f885828601613296565b9150509250929050565b6000806040838503121561341957613418613d6f565b5b60006134278582860161323e565b9250506020613438858286016132ab565b9150509250929050565b60006020828403121561345857613457613d6f565b5b600082013567ffffffffffffffff81111561347657613475613d6a565b5b61348284828501613268565b91505092915050565b6000602082840312156134a1576134a0613d6f565b5b60006134af848285016132ab565b91505092915050565b6000602082840312156134ce576134cd613d6f565b5b60006134dc848285016132c0565b91505092915050565b60006134f1838361351b565b60208301905092915050565b61350681613b9d565b82525050565b61351581613b48565b82525050565b61352481613b36565b82525050565b61353381613b36565b82525050565b6000613544826139dc565b61354e81856139ff565b9350613559836139cc565b8060005b8381101561358a57815161357188826134e5565b975061357c836139f2565b92505060018101905061355d565b5085935050505092915050565b6135a081613b5a565b82525050565b6135af81613baf565b82525050565b6135be81613bc1565b82525050565b60006135cf826139e7565b6135d98185613a10565b93506135e9818560208601613bf7565b6135f281613d74565b840191505092915050565b600061360a600683613a10565b915061361582613d85565b602082019050919050565b600061362d601483613a10565b915061363882613dae565b602082019050919050565b6000613650600883613a10565b915061365b82613dd7565b602082019050919050565b6000613673601b83613a10565b915061367e82613e00565b602082019050919050565b6000613696600c83613a10565b91506136a182613e29565b602082019050919050565b60006136b9602183613a10565b91506136c482613e52565b604082019050919050565b60006136dc601883613a10565b91506136e782613ea1565b602082019050919050565b6136fb81613b86565b82525050565b61370a81613b90565b82525050565b6000602082019050613725600083018461352a565b92915050565b600060208201905061374060008301846134fd565b92915050565b600060208201905061375b600083018461350c565b92915050565b6000604082019050613776600083018561352a565b61378360208301846135b5565b9392505050565b600060408201905061379f600083018561352a565b6137ac60208301846136f2565b9392505050565b60006020820190506137c86000830184613597565b92915050565b60006020820190506137e360008301846135a6565b92915050565b6000602082019050818103600083015261380381846135c4565b905092915050565b60006020820190508181036000830152613824816135fd565b9050919050565b6000602082019050818103600083015261384481613620565b9050919050565b6000602082019050818103600083015261386481613643565b9050919050565b6000602082019050818103600083015261388481613666565b9050919050565b600060208201905081810360008301526138a481613689565b9050919050565b600060208201905081810360008301526138c4816136ac565b9050919050565b600060208201905081810360008301526138e4816136cf565b9050919050565b600060208201905061390060008301846136f2565b92915050565b600060a08201905061391b60008301886136f2565b61392860208301876135b5565b818103604083015261393a8186613539565b9050613949606083018561352a565b61395660808301846136f2565b9695505050505050565b60006020820190506139756000830184613701565b92915050565b6000613985613996565b90506139918282613c2a565b919050565b6000604051905090565b600067ffffffffffffffff8211156139bb576139ba613d31565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613a2c82613b86565b9150613a3783613b86565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613a6c57613a6b613ca4565b5b828201905092915050565b6000613a8282613b86565b9150613a8d83613b86565b925082613a9d57613a9c613cd3565b5b828204905092915050565b6000613ab382613b86565b9150613abe83613b86565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613af757613af6613ca4565b5b828202905092915050565b6000613b0d82613b86565b9150613b1883613b86565b925082821015613b2b57613b2a613ca4565b5b828203905092915050565b6000613b4182613b66565b9050919050565b6000613b5382613b66565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613ba882613bd3565b9050919050565b6000613bba82613bd3565b9050919050565b6000613bcc82613b86565b9050919050565b6000613bde82613be5565b9050919050565b6000613bf082613b66565b9050919050565b60005b83811015613c15578082015181840152602081019050613bfa565b83811115613c24576000848401525b50505050565b613c3382613d74565b810181811067ffffffffffffffff82111715613c5257613c51613d31565b5b80604052505050565b6000613c6682613b86565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613c9957613c98613ca4565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f214f776e65720000000000000000000000000000000000000000000000000000600082015250565b7f4665652063616e27742065786365656420313425000000000000000000000000600082015250565b7f4e69636520747279000000000000000000000000000000000000000000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f546f6f206d756368207369720000000000000000000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b613ed381613b36565b8114613ede57600080fd5b50565b613eea81613b48565b8114613ef557600080fd5b50565b613f0181613b5a565b8114613f0c57600080fd5b50565b613f1881613b86565b8114613f2357600080fd5b5056fea264697066735822122030d383475b91b19c8615b933f205df500474e53ca1141072945ad12be3eefbdc64736f6c63430008070033

Deployed Bytecode Sourcemap

9821:10436:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12528:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12950:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18868:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12258:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19158:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13468:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19309:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3203:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12352:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17468:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20174:80;;;;;;;;;;;;;:::i;:::-;;17694:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13174:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20009:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19459:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10839:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18306:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19762:115;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18433:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17089:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12698:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19889:111;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10740:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12614:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18990:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12438:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10964:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13304:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17242:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10992:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16954:115;;;;;;;;;;;;;:::i;:::-;;12809:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19602:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18766:90;;;;;;;;;;;;;:::i;:::-;;3431:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18584:174;;;;;;;;;;;;;:::i;:::-;;18166:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10933:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12528:80;12576:13;12600:5;;;;;;;;;;;;;;;;;12593:12;;12528:80;:::o;12950:216::-;13025:4;13077:6;13042:11;:23;13054:10;13042:23;;;;;;;;;;;;;;;:32;13066:7;13042:32;;;;;;;;;;;;;;;:41;;;;13120:7;13099:37;;13108:10;13099:37;;;13129:6;13099:37;;;;;;:::i;:::-;;;;;;;;13154:4;13147:11;;12950:216;;;;:::o;18868:110::-;3102:19;3110:10;3102:7;:19::i;:::-;3094:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;18937:11:::1;;;;;;;;;;;:25;;;18963:6;18937:33;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;18868:110:::0;:::o;12258:88::-;12313:7;12331:12;;12324:19;;12258:88;:::o;19158:139::-;19222:4;3102:19;3110:10;3102:7;:19::i;:::-;3094:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19246:43:::1;19269:4;19276;;;;;;;;;;;19282:6;19246:14;:43::i;:::-;19239:50;;19158:139:::0;;;:::o;13468:370::-;13568:4;13623:17;13588:11;:19;13600:6;13588:19;;;;;;;;;;;;;;;:31;13608:10;13588:31;;;;;;;;;;;;;;;;:52;13585:186;;13690:69;13726:6;13690:69;;;;;;;;;;;;;;;;;:11;:19;13702:6;13690:19;;;;;;;;;;;;;;;:31;13710:10;13690:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;13656:11;:19;13668:6;13656:19;;;;;;;;;;;;;;;:31;13676:10;13656:31;;;;;;;;;;;;;;;:103;;;;13585:186;13790:40;13804:6;13812:9;13823:6;13790:13;:40::i;:::-;13783:47;;13468:370;;;;;:::o;19309:142::-;19362:7;19389:54;19427:15;19437:4;;;;;;;;;;;19427:9;:15::i;:::-;19389:33;19406:15;19416:4;;;;;;;;;;;19406:9;:15::i;:::-;19389:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;19382:61;;19309:142;:::o;3203:103::-;3258:4;3293:5;;;;;;;;;;;3282:16;;:7;:16;;;3275:23;;3203:103;;;:::o;12352:80::-;12404:5;10213:1;12413:16;;12352:80;:::o;17468:218::-;3102:19;3110:10;3102:7;:19::i;:::-;3094:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;17548:6:::1;17543:136;17564:5;:12;17560:1;:16;17543:136;;;17612:5;17594;:15;17600:5;17606:1;17600:8;;;;;;;;:::i;:::-;;;;;;;;17594:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;17628:37;17649:5;17655:1;17649:8;;;;;;;;:::i;:::-;;;;;;;;17659:5;17628:20;:37::i;:::-;17578:3;;;;;:::i;:::-;;;;17543:136;;;;17468:218:::0;:::o;20174:80::-;3102:19;3110:10;3102:7;:19::i;:::-;3094:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;20241:5:::1;20230:8;;:16;;;;;;;;;;;;;;;;;;20174:80::o:0;17694:115::-;17762:4;3102:19;3110:10;3102:7;:19::i;:::-;3094:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;17786:5:::1;:15;17792:8;17786:15;;;;;;;;;;;;;;;;;;;;;;;;;17779:22;;17694:115:::0;;;:::o;13174:122::-;13229:4;13253:35;13261:7;13270:17;13253:7;:35::i;:::-;13246:42;;13174:122;;;:::o;20009:157::-;20085:7;20112:11;;;;;;;;;;;:33;;;20146:11;20112:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20105:53;;20009:157;;;:::o;19459:135::-;3102:19;3110:10;3102:7;:19::i;:::-;3094:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19569:16:::1;19543:15;;:43;;;;;;;;;;;;;;;;;;19459:135:::0;:::o;10839:85::-;;;;;;;;;;;;;:::o;18306:119::-;3102:19;3110:10;3102:7;:19::i;:::-;3094:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;18411:6:::1;18389:11;:19;18401:6;18389:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;18306:119:::0;;:::o;19762:115::-;19814:7;19841:11;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19834:35;;19762:115;:::o;18433:139::-;3102:19;3110:10;3102:7;:19::i;:::-;3094:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;18511:2:::1;18503:4;:10;;18494:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;18560:4;18549:8;:15;;;;18433:139:::0;:::o;17089:141::-;3102:19;3110:10;3102:7;:19::i;:::-;3094:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;17171:4:::1;17153:5;:15;17159:8;17153:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;17186:36;17207:8;17217:4;17186:20;:36::i;:::-;17089:141:::0;:::o;12698:105::-;12764:7;12782:9;:18;12792:7;12782:18;;;;;;;;;;;;;;;;12775:25;;12698:105;;;:::o;19889:111::-;19939:7;19966:11;;;;;;;;;;;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19959:33;;19889:111;:::o;10740:92::-;;;;;;;;;;;;;:::o;12614:78::-;12666:7;12684:5;;;;;;;;;;;12677:12;;12614:78;:::o;18990:156::-;19064:7;19091:11;;;;;;;;;;;:34;;;19126:11;19091:47;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19084:54;;18990:156;;;:::o;12438:84::-;12488:13;12512:7;;;;;;;;;;;;;;;;;12505:14;;12438:84;:::o;10964:19::-;;;;;;;;;;;;;:::o;13304:156::-;13384:4;13408:44;13422:10;13434:9;13445:6;13408:13;:44::i;:::-;13401:51;;13304:156;;;;:::o;17242:216::-;3102:19;3110:10;3102:7;:19::i;:::-;3094:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;17322:6:::1;17317:134;17338:5;:12;17334:1;:16;17317:134;;;17386:4;17368:5;:15;17374:5;17380:1;17374:8;;;;;;;;:::i;:::-;;;;;;;;17368:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;17401:36;17422:5;17428:1;17422:8;;;;;;;;:::i;:::-;;;;;;;;17432:4;17401:20;:36::i;:::-;17352:3;;;;;:::i;:::-;;;;17317:134;;;;17242:216:::0;:::o;10992:25::-;;;;:::o;16954:115::-;3102:19;3110:10;3102:7;:19::i;:::-;3094:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;17020:12:::1;17007:10;:25;;;;17057:4;17043:11;;:18;;;;;;;;;;;;;;;;;;16954:115::o:0;12809:133::-;12893:7;12911:11;:19;12923:6;12911:19;;;;;;;;;;;;;;;:28;12931:7;12911:28;;;;;;;;;;;;;;;;12904:35;;12809:133;;;;:::o;19602:152::-;3102:19;3110:10;3102:7;:19::i;:::-;3094:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19691:9:::1;19672:8;;:29;;;;;;;;;;;;;;;;;;19712:11;;;;;;;;;;;:23;;;19736:9;19712:34;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;19602:152:::0;:::o;18766:90::-;18811:11;;;;;;;;;;;:25;;;18837:10;18811:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18766:90::o;3431:136::-;3102:19;3110:10;3102:7;:19::i;:::-;3094:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3515:3:::1;3507:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3534:25;3555:3;3534:25;;;;;;:::i;:::-;;;;;;;;3431:136:::0;:::o;18584:174::-;3102:19;3110:10;3102:7;:19::i;:::-;3094:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;18636:26:::1;18665:21;18636:50;;18705:15;;;;;;;;;;;18697:33;;:53;18731:18;18697:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;18625:133;18584:174::o:0;18166:132::-;3102:19;3110:10;3102:7;:19::i;:::-;3094:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;18254:36:::1;18275:6;18283;18254:20;:36::i;:::-;18166:132:::0;;:::o;10933:24::-;;;;;;;;;;;;;:::o;15317:330::-;15410:4;15447:53;15469:6;15447:53;;;;;;;;;;;;;;;;;:9;:17;15457:6;15447:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;15427:9;:17;15437:6;15427:17;;;;;;;;;;;;;;;:73;;;;15534:32;15559:6;15534:9;:20;15544:9;15534:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15511:9;:20;15521:9;15511:20;;;;;;;;;;;;;;;:55;;;;15599:9;15582:35;;15591:6;15582:35;;;15610:6;15582:35;;;;;;:::i;:::-;;;;;;;;15635:4;15628:11;;15317:330;;;;;:::o;865:192::-;951:7;984:1;979;:6;;987:12;971:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1011:9;1027:1;1023;:5;;;;:::i;:::-;1011:17;;1048:1;1041:8;;;865:192;;;;;:::o;13846:1459::-;13938:4;13968:5;;;;;;;;;;;13959:14;;:6;:14;;;;:35;;;;;13989:5;;;;;;;;;;13977:17;;:9;:17;;;;13959:35;13955:89;;;14004:11;;;;;;;;;;;13996:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;13955:89;14105:5;:13;14111:6;14105:13;;;;;;;;;;;;;;;;;;;;;;;;;14104:14;:35;;;;;14123:5;:16;14129:9;14123:16;;;;;;;;;;;;;;;;;;;;;;;;;14122:17;14104:35;14095:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;14167:8;;;;;;;;;;;14163:130;;;14205:5;;;;;;;;;;14197:13;;:6;:13;;;;:34;;;;;14226:5;;;;;;;;;;14214:17;;:9;:17;;;;14197:34;14193:80;;;14250:6;;14242;:14;;14233:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;14193:80;14163:130;14337:1;14324:10;;:14;;;;:::i;:::-;14307:12;:32;14303:141;;14376:5;14357;:16;14363:9;14357:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;14426:5;14396:16;:27;14413:9;14396:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;14303:141;14466:6;;;;;;;;;;14463:63;;;14482:41;14497:6;14505:9;14516:6;14482:14;:41::i;:::-;14475:48;;;;14463:63;14548:19;14597:4;;;;;;;;;;;14586:15;;:9;:15;;;:47;;;;;14632:1;14605:24;14623:4;14605:9;:24::i;:::-;:28;14586:47;14548:86;;14648:14;14645:33;;;14665:10;:8;:10::i;:::-;14645:33;14710:53;14732:6;14710:53;;;;;;;;;;;;;;;;;:9;:17;14720:6;14710:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;14690:9;:17;14700:6;14690:17;;;;;;;;;;;;;;;:73;;;;14776:22;14801:32;14815:6;14823:9;14801:13;:32::i;:::-;:67;;14862:6;14801:67;;;14836:23;14844:6;14852;14836:7;:23::i;:::-;14801:67;14776:92;;14912:40;14937:14;14912:9;:20;14922:9;14912:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;14889:9;:20;14899:9;14889:20;;;;;;;;;;;;;;;:63;;;;14978:4;;;;;;;;;;;14968:14;;:6;:14;;;;:43;;;;;14987:16;:24;15004:6;14987:24;;;;;;;;;;;;;;;;;;;;;;;;;14986:25;14968:43;14965:114;;;15018:11;;;;;;;;;;;:20;;;15039:6;15047:9;:17;15057:6;15047:17;;;;;;;;;;;;;;;;15018:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15014:63;;;;;;14965:114;15105:4;;;;;;;;;;;15092:17;;:9;:17;;;;:49;;;;;15114:16;:27;15131:9;15114:27;;;;;;;;;;;;;;;;;;;;;;;;;15113:28;15092:49;15089:126;;;15148:11;;;;;;;;;;;:20;;;15169:9;15180;:20;15190:9;15180:20;;;;;;;;;;;;;;;;15148:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15144:69;;;;;;15089:126;15249:9;15232:43;;15241:6;15232:43;;;15260:14;15232:43;;;;;;:::i;:::-;;;;;;;;15293:4;15286:11;;;;13846:1459;;;;;;:::o;723:136::-;781:7;808:43;812:1;815;808:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;801:50;;723:136;;;;:::o;17821:337::-;17926:4;17908:23;;:6;:23;;;;:41;;;;;17945:4;;;;;;;;;;;17935:14;;:6;:14;;;;17908:41;17900:50;;;;;;17988:6;17961:16;:24;17978:6;17961:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;18008:6;18005:146;;;18030:11;;;;;;;;;;;:20;;;18051:6;18059:1;18030:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18005:146;;;18092:11;;;;;;;;;;;:20;;;18113:6;18121:9;:17;18131:6;18121:17;;;;;;;;;;;;;;;;18092:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18005:146;17821:337;;:::o;536:181::-;594:7;614:9;630:1;626;:5;;;;:::i;:::-;614:17;;655:1;650;:6;;642:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;708:1;701:8;;;536:181;;;;:::o;16239:701::-;11278:4;11269:6;;:13;;;;;;;;;;;;;;;;;;16288:20:::1;16311:24;16329:4;16311:9;:24::i;:::-;16288:47;;16348:21;16386:1;16372:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16348:40;;16417:4;16399;16404:1;16399:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;16443:4;;;;;;;;;;;16433;16438:1;16433:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;16470:6;;;;;;;;;;;:57;;;16542:12;16569:1;16585:4;16612;16632:15;16470:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16679:22;16704:30;16732:1;16705:21;16704:27;;:30;;;;:::i;:::-;16679:55;;16745:23;16771:30;16799:1;16772:21;16771:27;;:30;;;;:::i;:::-;16745:56;;16837:15;;;;;;;;;;;16829:33;;:50;16863:15;16829:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;16898:8;;;;;;;;;;;16890:26;;:42;16917:14;16890:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;16277:663;;;;11296:5:::0;11287:6;;:14;;;;;;;;;;;;;;;;;;16239:701::o;15658:206::-;15739:4;15767:11;:19;15779:6;15767:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;15790:11;:22;15802:9;15790:22;;;;;;;;;;;;;;;;;;;;;;;;;15767:45;15765:48;:90;;;;;15829:4;;;;;;;;;;;15819:14;;:6;:14;;;:35;;;;15850:4;;;;;;;;;;;15837:17;;:9;:17;;;15819:35;15765:90;15756:101;;15658:206;;;;:::o;15872:354::-;15939:7;15959:17;15999:40;16024:14;;15999:20;16010:8;;15999:6;:10;;:20;;;;:::i;:::-;:24;;:40;;;;:::i;:::-;15987:52;;16077:39;16106:9;16077;:24;16095:4;16077:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;16050:9;:24;16068:4;16050:24;;;;;;;;;;;;;;;:66;;;;16157:4;16132:42;;16141:6;16132:42;;;16164:9;16132:42;;;;;;:::i;:::-;;;;;;;;16197:21;16208:9;16197:6;:10;;:21;;;;:::i;:::-;16190:28;;;15872:354;;;;:::o;1319:132::-;1377:7;1404:39;1408:1;1411;1404:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1397:46;;1319:132;;;;:::o;1063:250::-;1121:7;1150:1;1145;:6;1141:47;;;1175:1;1168:8;;;;1141:47;1200:9;1216:1;1212;:5;;;;:::i;:::-;1200:17;;1245:1;1240;1236;:5;;;;:::i;:::-;:10;1228:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1304:1;1297:8;;;1063:250;;;;;:::o;1457:345::-;1543:7;1642:1;1638;:5;1645:12;1630:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1669:9;1685:1;1681;:5;;;;:::i;:::-;1669:17;;1793:1;1786:8;;;1457:345;;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;752:139;;;;:::o;897:155::-;951:5;989:6;976:20;967:29;;1005:41;1040:5;1005:41;:::i;:::-;897:155;;;;:::o;1075:370::-;1146:5;1195:3;1188:4;1180:6;1176:17;1172:27;1162:122;;1203:79;;:::i;:::-;1162:122;1320:6;1307:20;1345:94;1435:3;1427:6;1420:4;1412:6;1408:17;1345:94;:::i;:::-;1336:103;;1152:293;1075:370;;;;:::o;1451:133::-;1494:5;1532:6;1519:20;1510:29;;1548:30;1572:5;1548:30;:::i;:::-;1451:133;;;;:::o;1590:139::-;1636:5;1674:6;1661:20;1652:29;;1690:33;1717:5;1690:33;:::i;:::-;1590:139;;;;:::o;1735:143::-;1792:5;1823:6;1817:13;1808:22;;1839:33;1866:5;1839:33;:::i;:::-;1735:143;;;;:::o;1884:329::-;1943:6;1992:2;1980:9;1971:7;1967:23;1963:32;1960:119;;;1998:79;;:::i;:::-;1960:119;2118:1;2143:53;2188:7;2179:6;2168:9;2164:22;2143:53;:::i;:::-;2133:63;;2089:117;1884:329;;;;:::o;2219:345::-;2286:6;2335:2;2323:9;2314:7;2310:23;2306:32;2303:119;;;2341:79;;:::i;:::-;2303:119;2461:1;2486:61;2539:7;2530:6;2519:9;2515:22;2486:61;:::i;:::-;2476:71;;2432:125;2219:345;;;;:::o;2570:474::-;2638:6;2646;2695:2;2683:9;2674:7;2670:23;2666:32;2663:119;;;2701:79;;:::i;:::-;2663:119;2821:1;2846:53;2891:7;2882:6;2871:9;2867:22;2846:53;:::i;:::-;2836:63;;2792:117;2948:2;2974:53;3019:7;3010:6;2999:9;2995:22;2974:53;:::i;:::-;2964:63;;2919:118;2570:474;;;;;:::o;3050:619::-;3127:6;3135;3143;3192:2;3180:9;3171:7;3167:23;3163:32;3160:119;;;3198:79;;:::i;:::-;3160:119;3318:1;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3289:117;3445:2;3471:53;3516:7;3507:6;3496:9;3492:22;3471:53;:::i;:::-;3461:63;;3416:118;3573:2;3599:53;3644:7;3635:6;3624:9;3620:22;3599:53;:::i;:::-;3589:63;;3544:118;3050:619;;;;;:::o;3675:468::-;3740:6;3748;3797:2;3785:9;3776:7;3772:23;3768:32;3765:119;;;3803:79;;:::i;:::-;3765:119;3923:1;3948:53;3993:7;3984:6;3973:9;3969:22;3948:53;:::i;:::-;3938:63;;3894:117;4050:2;4076:50;4118:7;4109:6;4098:9;4094:22;4076:50;:::i;:::-;4066:60;;4021:115;3675:468;;;;;:::o;4149:474::-;4217:6;4225;4274:2;4262:9;4253:7;4249:23;4245:32;4242:119;;;4280:79;;:::i;:::-;4242:119;4400:1;4425:53;4470:7;4461:6;4450:9;4446:22;4425:53;:::i;:::-;4415:63;;4371:117;4527:2;4553:53;4598:7;4589:6;4578:9;4574:22;4553:53;:::i;:::-;4543:63;;4498:118;4149:474;;;;;:::o;4629:539::-;4713:6;4762:2;4750:9;4741:7;4737:23;4733:32;4730:119;;;4768:79;;:::i;:::-;4730:119;4916:1;4905:9;4901:17;4888:31;4946:18;4938:6;4935:30;4932:117;;;4968:79;;:::i;:::-;4932:117;5073:78;5143:7;5134:6;5123:9;5119:22;5073:78;:::i;:::-;5063:88;;4859:302;4629:539;;;;:::o;5174:329::-;5233:6;5282:2;5270:9;5261:7;5257:23;5253:32;5250:119;;;5288:79;;:::i;:::-;5250:119;5408:1;5433:53;5478:7;5469:6;5458:9;5454:22;5433:53;:::i;:::-;5423:63;;5379:117;5174:329;;;;:::o;5509:351::-;5579:6;5628:2;5616:9;5607:7;5603:23;5599:32;5596:119;;;5634:79;;:::i;:::-;5596:119;5754:1;5779:64;5835:7;5826:6;5815:9;5811:22;5779:64;:::i;:::-;5769:74;;5725:128;5509:351;;;;:::o;5866:179::-;5935:10;5956:46;5998:3;5990:6;5956:46;:::i;:::-;6034:4;6029:3;6025:14;6011:28;;5866:179;;;;:::o;6051:147::-;6146:45;6185:5;6146:45;:::i;:::-;6141:3;6134:58;6051:147;;:::o;6204:142::-;6307:32;6333:5;6307:32;:::i;:::-;6302:3;6295:45;6204:142;;:::o;6352:108::-;6429:24;6447:5;6429:24;:::i;:::-;6424:3;6417:37;6352:108;;:::o;6466:118::-;6553:24;6571:5;6553:24;:::i;:::-;6548:3;6541:37;6466:118;;:::o;6620:732::-;6739:3;6768:54;6816:5;6768:54;:::i;:::-;6838:86;6917:6;6912:3;6838:86;:::i;:::-;6831:93;;6948:56;6998:5;6948:56;:::i;:::-;7027:7;7058:1;7043:284;7068:6;7065:1;7062:13;7043:284;;;7144:6;7138:13;7171:63;7230:3;7215:13;7171:63;:::i;:::-;7164:70;;7257:60;7310:6;7257:60;:::i;:::-;7247:70;;7103:224;7090:1;7087;7083:9;7078:14;;7043:284;;;7047:14;7343:3;7336:10;;6744:608;;;6620:732;;;;:::o;7358:109::-;7439:21;7454:5;7439:21;:::i;:::-;7434:3;7427:34;7358:109;;:::o;7473:167::-;7578:55;7627:5;7578:55;:::i;:::-;7573:3;7566:68;7473:167;;:::o;7646:147::-;7741:45;7780:5;7741:45;:::i;:::-;7736:3;7729:58;7646:147;;:::o;7799:364::-;7887:3;7915:39;7948:5;7915:39;:::i;:::-;7970:71;8034:6;8029:3;7970:71;:::i;:::-;7963:78;;8050:52;8095:6;8090:3;8083:4;8076:5;8072:16;8050:52;:::i;:::-;8127:29;8149:6;8127:29;:::i;:::-;8122:3;8118:39;8111:46;;7891:272;7799:364;;;;:::o;8169:365::-;8311:3;8332:66;8396:1;8391:3;8332:66;:::i;:::-;8325:73;;8407:93;8496:3;8407:93;:::i;:::-;8525:2;8520:3;8516:12;8509:19;;8169:365;;;:::o;8540:366::-;8682:3;8703:67;8767:2;8762:3;8703:67;:::i;:::-;8696:74;;8779:93;8868:3;8779:93;:::i;:::-;8897:2;8892:3;8888:12;8881:19;;8540:366;;;:::o;8912:365::-;9054:3;9075:66;9139:1;9134:3;9075:66;:::i;:::-;9068:73;;9150:93;9239:3;9150:93;:::i;:::-;9268:2;9263:3;9259:12;9252:19;;8912:365;;;:::o;9283:366::-;9425:3;9446:67;9510:2;9505:3;9446:67;:::i;:::-;9439:74;;9522:93;9611:3;9522:93;:::i;:::-;9640:2;9635:3;9631:12;9624:19;;9283:366;;;:::o;9655:::-;9797:3;9818:67;9882:2;9877:3;9818:67;:::i;:::-;9811:74;;9894:93;9983:3;9894:93;:::i;:::-;10012:2;10007:3;10003:12;9996:19;;9655:366;;;:::o;10027:::-;10169:3;10190:67;10254:2;10249:3;10190:67;:::i;:::-;10183:74;;10266:93;10355:3;10266:93;:::i;:::-;10384:2;10379:3;10375:12;10368:19;;10027:366;;;:::o;10399:::-;10541:3;10562:67;10626:2;10621:3;10562:67;:::i;:::-;10555:74;;10638:93;10727:3;10638:93;:::i;:::-;10756:2;10751:3;10747:12;10740:19;;10399:366;;;:::o;10771:118::-;10858:24;10876:5;10858:24;:::i;:::-;10853:3;10846:37;10771:118;;:::o;10895:112::-;10978:22;10994:5;10978:22;:::i;:::-;10973:3;10966:35;10895:112;;:::o;11013:222::-;11106:4;11144:2;11133:9;11129:18;11121:26;;11157:71;11225:1;11214:9;11210:17;11201:6;11157:71;:::i;:::-;11013:222;;;;:::o;11241:238::-;11342:4;11380:2;11369:9;11365:18;11357:26;;11393:79;11469:1;11458:9;11454:17;11445:6;11393:79;:::i;:::-;11241:238;;;;:::o;11485:254::-;11594:4;11632:2;11621:9;11617:18;11609:26;;11645:87;11729:1;11718:9;11714:17;11705:6;11645:87;:::i;:::-;11485:254;;;;:::o;11745:348::-;11874:4;11912:2;11901:9;11897:18;11889:26;;11925:71;11993:1;11982:9;11978:17;11969:6;11925:71;:::i;:::-;12006:80;12082:2;12071:9;12067:18;12058:6;12006:80;:::i;:::-;11745:348;;;;;:::o;12099:332::-;12220:4;12258:2;12247:9;12243:18;12235:26;;12271:71;12339:1;12328:9;12324:17;12315:6;12271:71;:::i;:::-;12352:72;12420:2;12409:9;12405:18;12396:6;12352:72;:::i;:::-;12099:332;;;;;:::o;12437:210::-;12524:4;12562:2;12551:9;12547:18;12539:26;;12575:65;12637:1;12626:9;12622:17;12613:6;12575:65;:::i;:::-;12437:210;;;;:::o;12653:258::-;12764:4;12802:2;12791:9;12787:18;12779:26;;12815:89;12901:1;12890:9;12886:17;12877:6;12815:89;:::i;:::-;12653:258;;;;:::o;12917:313::-;13030:4;13068:2;13057:9;13053:18;13045:26;;13117:9;13111:4;13107:20;13103:1;13092:9;13088:17;13081:47;13145:78;13218:4;13209:6;13145:78;:::i;:::-;13137:86;;12917:313;;;;:::o;13236:419::-;13402:4;13440:2;13429:9;13425:18;13417:26;;13489:9;13483:4;13479:20;13475:1;13464:9;13460:17;13453:47;13517:131;13643:4;13517:131;:::i;:::-;13509:139;;13236:419;;;:::o;13661:::-;13827:4;13865:2;13854:9;13850:18;13842:26;;13914:9;13908:4;13904:20;13900:1;13889:9;13885:17;13878:47;13942:131;14068:4;13942:131;:::i;:::-;13934:139;;13661:419;;;:::o;14086:::-;14252:4;14290:2;14279:9;14275:18;14267:26;;14339:9;14333:4;14329:20;14325:1;14314:9;14310:17;14303:47;14367:131;14493:4;14367:131;:::i;:::-;14359:139;;14086:419;;;:::o;14511:::-;14677:4;14715:2;14704:9;14700:18;14692:26;;14764:9;14758:4;14754:20;14750:1;14739:9;14735:17;14728:47;14792:131;14918:4;14792:131;:::i;:::-;14784:139;;14511:419;;;:::o;14936:::-;15102:4;15140:2;15129:9;15125:18;15117:26;;15189:9;15183:4;15179:20;15175:1;15164:9;15160:17;15153:47;15217:131;15343:4;15217:131;:::i;:::-;15209:139;;14936:419;;;:::o;15361:::-;15527:4;15565:2;15554:9;15550:18;15542:26;;15614:9;15608:4;15604:20;15600:1;15589:9;15585:17;15578:47;15642:131;15768:4;15642:131;:::i;:::-;15634:139;;15361:419;;;:::o;15786:::-;15952:4;15990:2;15979:9;15975:18;15967:26;;16039:9;16033:4;16029:20;16025:1;16014:9;16010:17;16003:47;16067:131;16193:4;16067:131;:::i;:::-;16059:139;;15786:419;;;:::o;16211:222::-;16304:4;16342:2;16331:9;16327:18;16319:26;;16355:71;16423:1;16412:9;16408:17;16399:6;16355:71;:::i;:::-;16211:222;;;;:::o;16439:831::-;16702:4;16740:3;16729:9;16725:19;16717:27;;16754:71;16822:1;16811:9;16807:17;16798:6;16754:71;:::i;:::-;16835:80;16911:2;16900:9;16896:18;16887:6;16835:80;:::i;:::-;16962:9;16956:4;16952:20;16947:2;16936:9;16932:18;16925:48;16990:108;17093:4;17084:6;16990:108;:::i;:::-;16982:116;;17108:72;17176:2;17165:9;17161:18;17152:6;17108:72;:::i;:::-;17190:73;17258:3;17247:9;17243:19;17234:6;17190:73;:::i;:::-;16439:831;;;;;;;;:::o;17276:214::-;17365:4;17403:2;17392:9;17388:18;17380:26;;17416:67;17480:1;17469:9;17465:17;17456:6;17416:67;:::i;:::-;17276:214;;;;:::o;17496:129::-;17530:6;17557:20;;:::i;:::-;17547:30;;17586:33;17614:4;17606:6;17586:33;:::i;:::-;17496:129;;;:::o;17631:75::-;17664:6;17697:2;17691:9;17681:19;;17631:75;:::o;17712:311::-;17789:4;17879:18;17871:6;17868:30;17865:56;;;17901:18;;:::i;:::-;17865:56;17951:4;17943:6;17939:17;17931:25;;18011:4;18005;18001:15;17993:23;;17712:311;;;:::o;18029:132::-;18096:4;18119:3;18111:11;;18149:4;18144:3;18140:14;18132:22;;18029:132;;;:::o;18167:114::-;18234:6;18268:5;18262:12;18252:22;;18167:114;;;:::o;18287:99::-;18339:6;18373:5;18367:12;18357:22;;18287:99;;;:::o;18392:113::-;18462:4;18494;18489:3;18485:14;18477:22;;18392:113;;;:::o;18511:184::-;18610:11;18644:6;18639:3;18632:19;18684:4;18679:3;18675:14;18660:29;;18511:184;;;;:::o;18701:169::-;18785:11;18819:6;18814:3;18807:19;18859:4;18854:3;18850:14;18835:29;;18701:169;;;;:::o;18876:305::-;18916:3;18935:20;18953:1;18935:20;:::i;:::-;18930:25;;18969:20;18987:1;18969:20;:::i;:::-;18964:25;;19123:1;19055:66;19051:74;19048:1;19045:81;19042:107;;;19129:18;;:::i;:::-;19042:107;19173:1;19170;19166:9;19159:16;;18876:305;;;;:::o;19187:185::-;19227:1;19244:20;19262:1;19244:20;:::i;:::-;19239:25;;19278:20;19296:1;19278:20;:::i;:::-;19273:25;;19317:1;19307:35;;19322:18;;:::i;:::-;19307:35;19364:1;19361;19357:9;19352:14;;19187:185;;;;:::o;19378:348::-;19418:7;19441:20;19459:1;19441:20;:::i;:::-;19436:25;;19475:20;19493:1;19475:20;:::i;:::-;19470:25;;19663:1;19595:66;19591:74;19588:1;19585:81;19580:1;19573:9;19566:17;19562:105;19559:131;;;19670:18;;:::i;:::-;19559:131;19718:1;19715;19711:9;19700:20;;19378:348;;;;:::o;19732:191::-;19772:4;19792:20;19810:1;19792:20;:::i;:::-;19787:25;;19826:20;19844:1;19826:20;:::i;:::-;19821:25;;19865:1;19862;19859:8;19856:34;;;19870:18;;:::i;:::-;19856:34;19915:1;19912;19908:9;19900:17;;19732:191;;;;:::o;19929:96::-;19966:7;19995:24;20013:5;19995:24;:::i;:::-;19984:35;;19929:96;;;:::o;20031:104::-;20076:7;20105:24;20123:5;20105:24;:::i;:::-;20094:35;;20031:104;;;:::o;20141:90::-;20175:7;20218:5;20211:13;20204:21;20193:32;;20141:90;;;:::o;20237:126::-;20274:7;20314:42;20307:5;20303:54;20292:65;;20237:126;;;:::o;20369:77::-;20406:7;20435:5;20424:16;;20369:77;;;:::o;20452:86::-;20487:7;20527:4;20520:5;20516:16;20505:27;;20452:86;;;:::o;20544:134::-;20602:9;20635:37;20666:5;20635:37;:::i;:::-;20622:50;;20544:134;;;:::o;20684:144::-;20752:9;20785:37;20816:5;20785:37;:::i;:::-;20772:50;;20684:144;;;:::o;20834:121::-;20892:9;20925:24;20943:5;20925:24;:::i;:::-;20912:37;;20834:121;;;:::o;20961:126::-;21011:9;21044:37;21075:5;21044:37;:::i;:::-;21031:50;;20961:126;;;:::o;21093:113::-;21143:9;21176:24;21194:5;21176:24;:::i;:::-;21163:37;;21093:113;;;:::o;21212:307::-;21280:1;21290:113;21304:6;21301:1;21298:13;21290:113;;;21389:1;21384:3;21380:11;21374:18;21370:1;21365:3;21361:11;21354:39;21326:2;21323:1;21319:10;21314:15;;21290:113;;;21421:6;21418:1;21415:13;21412:101;;;21501:1;21492:6;21487:3;21483:16;21476:27;21412:101;21261:258;21212:307;;;:::o;21525:281::-;21608:27;21630:4;21608:27;:::i;:::-;21600:6;21596:40;21738:6;21726:10;21723:22;21702:18;21690:10;21687:34;21684:62;21681:88;;;21749:18;;:::i;:::-;21681:88;21789:10;21785:2;21778:22;21568:238;21525:281;;:::o;21812:233::-;21851:3;21874:24;21892:5;21874:24;:::i;:::-;21865:33;;21920:66;21913:5;21910:77;21907:103;;;21990:18;;:::i;:::-;21907:103;22037:1;22030:5;22026:13;22019:20;;21812:233;;;:::o;22051:180::-;22099:77;22096:1;22089:88;22196:4;22193:1;22186:15;22220:4;22217:1;22210:15;22237:180;22285:77;22282:1;22275:88;22382:4;22379:1;22372:15;22406:4;22403:1;22396:15;22423:180;22471:77;22468:1;22461:88;22568:4;22565:1;22558:15;22592:4;22589:1;22582:15;22609:180;22657:77;22654:1;22647:88;22754:4;22751:1;22744:15;22778:4;22775:1;22768:15;22795:117;22904:1;22901;22894:12;22918:117;23027:1;23024;23017:12;23041:117;23150:1;23147;23140:12;23164:117;23273:1;23270;23263:12;23287:102;23328:6;23379:2;23375:7;23370:2;23363:5;23359:14;23355:28;23345:38;;23287:102;;;:::o;23395:156::-;23535:8;23531:1;23523:6;23519:14;23512:32;23395:156;:::o;23557:170::-;23697:22;23693:1;23685:6;23681:14;23674:46;23557:170;:::o;23733:158::-;23873:10;23869:1;23861:6;23857:14;23850:34;23733:158;:::o;23897:177::-;24037:29;24033:1;24025:6;24021:14;24014:53;23897:177;:::o;24080:162::-;24220:14;24216:1;24208:6;24204:14;24197:38;24080:162;:::o;24248:220::-;24388:34;24384:1;24376:6;24372:14;24365:58;24457:3;24452:2;24444:6;24440:15;24433:28;24248:220;:::o;24474:174::-;24614:26;24610:1;24602:6;24598:14;24591:50;24474:174;:::o;24654:122::-;24727:24;24745:5;24727:24;:::i;:::-;24720:5;24717:35;24707:63;;24766:1;24763;24756:12;24707:63;24654:122;:::o;24782:138::-;24863:32;24889:5;24863:32;:::i;:::-;24856:5;24853:43;24843:71;;24910:1;24907;24900:12;24843:71;24782:138;:::o;24926:116::-;24996:21;25011:5;24996:21;:::i;:::-;24989:5;24986:32;24976:60;;25032:1;25029;25022:12;24976:60;24926:116;:::o;25048:122::-;25121:24;25139:5;25121:24;:::i;:::-;25114:5;25111:35;25101:63;;25160:1;25157;25150:12;25101:63;25048:122;:::o

Swarm Source

ipfs://595d0301a67f5dabe6978569fd55a6900215c6421e408d898c2a3701503af9b0
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.