ETH Price: $3,487.00 (-1.36%)
Gas: 2 Gwei

Token

MultiGenCapital (MGC)
 

Overview

Max Total Supply

1,000,000,000,000 MGC

Holders

391

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
665,823.911288211 MGC

Value
$0.00
0x6B6B1C0a3e5Ae34BAc162296A9E2cea4a0a00E60
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

MultiGenCapital is now an enhanced contract that is completely custom and has been thoroughly tested. It is like a MCC fork that actually works how it’s supposed to but that also has additional improvements on top of that.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
MultiGenCapital

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/**
Multi-Gen Capital: $MGC
-You buy on Ethereum, we farm on multiple chains and return the profits to $MGC holders.

Tokenomics:
10% of tax goes to existing holders.
15% of tax goes into multi-chain farming to add to the treasury and buy back MGC tokens.

Telegram:
https://t.me/MGCOFFICIAL

Website:
https://multigencapital.io/

Twitter: 
https://twitter.com/multigencap

Medium: 
https://medium.com/@MultiGenCapital?p=54e1dca1c385

*/

/** 
 * The contracts crafted by Ultraman Contracts are not liable for the actions of the acting dev (client).
 * PLEASE MAKE SURE LIQUIDITY IS LOCKED BEFORE BUYING
 * The contract created below is safu as the following is true:
 * There is not a pause contract button.
 * You cannot disable sells.
 * Sell taxes cannot be raised higher than a designated percent written into the contract and noted as such.
 * In this case, sells cannot exceed 25%
 * All info pertaining to the contract will be listed above the disclaimer message. 
 * For further inquiry contact t.me/UltramanContracts
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    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
    );
}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
    
}

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) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract MultiGenCapital is Context, IERC20, Ownable {
    
    using SafeMath for uint256;

    string private constant _name = "MultiGenCapital";
    string private constant _symbol = "MGC";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping (address => bool) public _isExcludedMaxTxAmount;
    mapping(address => bool) private _isExcludedFromReflection;
    address[] private _excludedFromReflection;

    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000 * 1e9 * 1e9; //1,000,000,000,000
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    mapping(address => bool) public bots;
    
   
    uint256 private _reflectionFeeOnBuy = 10;
    uint256 private _taxFeeOnBuy = 15;
    
    
    uint256 private _reflectionFeeOnSell = 10;
    uint256 private _taxFeeOnSell = 15;
    
    //Original Fee
    uint256 private _reflectionFee = _reflectionFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
    
    uint256 private _previousReflectionFee = _reflectionFee;
    uint256 private _previousTaxFee = _taxFee;
    
    //change these addresses or you will burn your dev tax
    address payable public _mgcAddress = payable(0xC96f450784B294153a9f8D41A0235758c1adc9e7); //this is the multichain investment wallet
    address payable public _mktgAddress = payable(0x6FBbDfD6b8358b82a2daEDfa0fF3B09AE3C9147f); //token support wallet
    
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    
    bool private inSwap = false;
    bool private swapEnabled = true;
    bool public tradingActive = false;
    
    uint256 public _maxTxAmount = 4500 * 1e7 * 1e9; //max transaction set to 4.5%
    uint256 public _maxWalletSize = 4500 * 1e7 * 1e9; //max wallet set to 4.5%
    uint256 public _swapTokensAtAmount = 5000 * 1e6 * 1e9; //amount of tokens to swap for eth 0.5%

    event ExcludeFromReflection(address excludedAddress);
    event IncludeInReflection(address includedAddress);

    event ExcludeFromFee(address excludedAddress);
    event IncludeInFee(address includedAddress);

    event UpdatedMktgAddress(address mktg); //team support wallet
    event UpdatedMgcAddress(address mgc); //investment wallet

    event SetBuyFee(uint256 buyMktgFee, uint256 buyReflectionFee);
    event SetSellFee(uint256 sellMktgFee, uint256 sellReflectionFee);
    
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    
    constructor () {
               
        _rOwned[_msgSender()] = _rTotal;
        
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_mgcAddress] = true;
        _isExcludedFromFee[_mktgAddress] = true;

        excludeFromMaxTxAmount(owner(), true);
        excludeFromMaxTxAmount(address(this), true);
        excludeFromMaxTxAmount(address(_mgcAddress), true);
        excludeFromMaxTxAmount(address(_mktgAddress), true);
        
        emit Transfer(address(0), _msgSender(), _tTotal);

    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }

    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function excludeFromFee(address account) external onlyOwner {
        _isExcludedFromFee[account] = true;
        emit ExcludeFromFee(account);
    }

    function includeInFee(address account) external onlyOwner {
        _isExcludedFromFee[account] = false;
        emit IncludeInFee(account);
    }

    function excludeFromReflection(address account) public onlyOwner {
        require(!_isExcludedFromReflection[account], "Account is already excluded");
        require(_excludedFromReflection.length + 1 <= 50, "Cannot exclude more than 50 accounts.  Include a previously excluded address.");
        if (_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcludedFromReflection[account] = true;
        _excludedFromReflection.push(account);
    }

    function includeInReflection(address account) public onlyOwner {
        require(_isExcludedFromReflection[account], "Account is not excluded from reflection");
        for (uint256 i = 0; i < _excludedFromReflection.length; i++) {
            if (_excludedFromReflection[i] == account) {
                _excludedFromReflection[i] = _excludedFromReflection[_excludedFromReflection.length - 1];
                _tOwned[account] = 0;
                _isExcludedFromReflection[account] = false;
                _excludedFromReflection.pop();
                break;
            }
        }
    }

    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_reflectionFee == 0 && _taxFee == 0) return;
    
        _previousReflectionFee = _reflectionFee;
        _previousTaxFee = _taxFee;
        
        _reflectionFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _reflectionFee = _previousReflectionFee;
        _taxFee = _previousTaxFee;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (from != owner() && to != owner()) {
            
            //Trade start check
            if (!tradingActive) 
              
            if(to != uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to]) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
                require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
                require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
            }
            
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
            
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        
        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
            
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _reflectionFee = _reflectionFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
    
            //Set Fee for Sells
            if (!_isExcludedFromFee[from]) {
                        require(amount <= _maxTxAmount, "Sell transfer amount exceeds the maxTransactionAmount.");
                }
                
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _reflectionFee = _reflectionFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
            
        }

        _tokenTransfer(from, to, amount, takeFee);
    }  

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function sendETHToFee(uint256 amount) private {
        _mgcAddress.transfer(amount.div(2));
        _mktgAddress.transfer(amount.div(2));
    }

    function manualSwap() external {
        require(_msgSender() == _mgcAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualSend() external {
        require(_msgSender() == _mgcAddress || _msgSender() == _mktgAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    
    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _reflectionFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 reflectionFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(reflectionFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);

        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);

        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();

        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
    
        return (rSupply, tSupply);
    }
    
    function setFee(uint256 reflectionFeeOnBuy, uint256 reflectionFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _reflectionFeeOnBuy = reflectionFeeOnBuy;
        _taxFeeOnBuy = taxFeeOnBuy;
        
        _reflectionFeeOnSell = reflectionFeeOnSell;
        _taxFeeOnSell = taxFeeOnSell;
        
        require(_reflectionFeeOnBuy + _taxFeeOnBuy <= 25, "Must keep buy taxes below 25%"); //wont allow taxes to go above 10%
        require(_reflectionFeeOnSell + _taxFeeOnSell <= 25, "Must keep buy taxes below 25%"); //wont allow taxes to go above 10%
    }

      // once enabled, can never be turned off
    function enableTrading() internal onlyOwner {
        tradingActive = true;        
    }
    
    function airdrop(address[] memory airdropWallets, uint256[] memory amounts) external onlyOwner returns (bool){
        require(!tradingActive, "Trading is already active, cannot relaunch.");
        require(airdropWallets.length < 200, "Can only airdrop 200 wallets per txn due to gas limits"); // allows for airdrop
        for(uint256 i = 0; i < airdropWallets.length; i++){
            address wallet = airdropWallets[i];
            uint256 amount = amounts[i];
            _transfer(msg.sender, wallet, amount);
        }
        enableTrading();
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        excludeFromMaxTxAmount(address(_uniswapV2Router), true);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        excludeFromMaxTxAmount(address(uniswapV2Pair), true);
        return true;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
    
    //Set max transaction
    function setMaxTxAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function excludeFromMaxTxAmount(address updAds, bool isEx) public onlyOwner {
        _isExcludedMaxTxAmount[updAds] = isEx;
    }
    
    //set max wallet
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

     //set wallet address
    function _setMGCAddress(address mgcAddress) external onlyOwner {
        require(_mgcAddress != address(0), "_mgcAddress cannot be 0");
        _isExcludedFromFee[mgcAddress] = false;
        mgcAddress = payable(_mgcAddress);
        _isExcludedFromFee[mgcAddress] = true;
        emit UpdatedMgcAddress(_mgcAddress);
    }

     //set wallet address
    function _setMktgAddress(address mktgAddress) external onlyOwner {
        require(_mktgAddress != address(0), "_mktgAddress cannot be 0");
        _isExcludedFromFee[mktgAddress] = false;
        mktgAddress = payable(_mktgAddress);
        _isExcludedFromFee[mktgAddress] = true;
        emit UpdatedMktgAddress(_mktgAddress);
    }
}

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":"excludedAddress","type":"address"}],"name":"ExcludeFromFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"excludedAddress","type":"address"}],"name":"ExcludeFromReflection","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"includedAddress","type":"address"}],"name":"IncludeInFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"includedAddress","type":"address"}],"name":"IncludeInReflection","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buyMktgFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"buyReflectionFee","type":"uint256"}],"name":"SetBuyFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"sellMktgFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellReflectionFee","type":"uint256"}],"name":"SetSellFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"mgc","type":"address"}],"name":"UpdatedMgcAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"mktg","type":"address"}],"name":"UpdatedMktgAddress","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTxAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mgcAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mktgAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"mgcAddress","type":"address"}],"name":"_setMGCAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"mktgAddress","type":"address"}],"name":"_setMktgAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"airdropWallets","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReflection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReflection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"reflectionFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"reflectionFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","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":"pure","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001b683635c9adc5dea00000600019620002d4565b6200002990600019620002b0565b600955600a600c819055600f600d819055600e82905580805560108290556011819055601291909155601355601480546001600160a01b031990811673c96f450784b294153a9f8d41a0235758c1adc9e71790915560158054909116736fbbdfd6b8358b82a2daedfa0ff3b09ae3c9147f1790556017805462ffffff60a01b1916600160a81b179055680270801d946c9400006018819055601955674563918244f40000601a55348015620000dd57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506009543360009081526002602090815260408083209390935581546001600160a01b03908116835260059091528282208054600160ff19918216811790925530845284842080548216831790556014548316845284842080548216831790556015548316845293832080549094161790925554620001a09116600162000226565b620001ad30600162000226565b601454620001c6906001600160a01b0316600162000226565b601554620001df906001600160a01b0316600162000226565b604051683635c9adc5dea00000815233906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3620002f5565b6000546001600160a01b03163314620002855760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640160405180910390fd5b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b600082821015620002cf57634e487b7160e01b81526011600452602481fd5b500390565b600082620002f057634e487b7160e01b81526012600452602481fd5b500690565b6129f780620003056000396000f3fe60806040526004361061021c5760003560e01c80636724348211610123578063a9059cbb116100ab578063ea1644d51161006f578063ea1644d5146106a2578063ea2f0b37146106c2578063ec28438a146106e2578063f2fde38b14610702578063f42938901461072257600080fd5b8063a9059cbb146105cb578063bbc0c742146105eb578063bfd792841461060c578063dd62ed3e1461063c578063e755d0cf1461068257600080fd5b80638da5cb5b116100f25780638da5cb5b1461052b5780638f9a55c01461054957806395d89b411461055f57806398a5c3151461058b578063a2a957bb146105ab57600080fd5b806367243482146104b55780636b999053146104d557806370a08231146104f55780637d1db4a51461051557600080fd5b806327334a08116101a6578063437823ec11610175578063437823ec1461041057806349bd5a5e1461043057806351bc3c8514610450578063563912bd14610465578063595cc84f1461049557600080fd5b806327334a081461039e5780632cf2dd64146103be5780632fd689e3146103de578063313ce567146103f457600080fd5b8063095ea7b3116101ed578063095ea7b3146102e85780631694505e1461031857806318160ddd146103385780631b7861ef1461035e57806323b872dd1461037e57600080fd5b806286803414610228578062b8cf2a1461026557806305f82a451461028757806306fdde03146102a757600080fd5b3661022357005b600080fd5b34801561023457600080fd5b50601554610248906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561027157600080fd5b50610285610280366004612642565b610737565b005b34801561029357600080fd5b506102856102a2366004612536565b6107e4565b3480156102b357600080fd5b5060408051808201909152600f81526e135d5b1d1a51d95b90d85c1a5d185b608a1b60208201525b60405161025c9190612782565b3480156102f457600080fd5b50610308610303366004612617565b6109df565b604051901515815260200161025c565b34801561032457600080fd5b50601654610248906001600160a01b031681565b34801561034457600080fd5b50683635c9adc5dea000005b60405190815260200161025c565b34801561036a57600080fd5b50601454610248906001600160a01b031681565b34801561038a57600080fd5b506103086103993660046125a6565b6109f6565b3480156103aa57600080fd5b506102856103b9366004612536565b610a5f565b3480156103ca57600080fd5b506102856103d9366004612536565b610c4d565b3480156103ea57600080fd5b50610350601a5481565b34801561040057600080fd5b506040516009815260200161025c565b34801561041c57600080fd5b5061028561042b366004612536565b610d46565b34801561043c57600080fd5b50601754610248906001600160a01b031681565b34801561045c57600080fd5b50610285610dc4565b34801561047157600080fd5b50610308610480366004612536565b60066020526000908152604090205460ff1681565b3480156104a157600080fd5b506102856104b03660046125e6565b610dfd565b3480156104c157600080fd5b506103086104d036600461267d565b610e52565b3480156104e157600080fd5b506102856104f0366004612536565b6111d6565b34801561050157600080fd5b50610350610510366004612536565b611221565b34801561052157600080fd5b5061035060185481565b34801561053757600080fd5b506000546001600160a01b0316610248565b34801561055557600080fd5b5061035060195481565b34801561056b57600080fd5b506040805180820190915260038152624d474360e81b60208201526102db565b34801561059757600080fd5b506102856105a6366004612739565b611243565b3480156105b757600080fd5b506102856105c6366004612751565b611272565b3480156105d757600080fd5b506103086105e6366004612617565b611370565b3480156105f757600080fd5b5060175461030890600160b01b900460ff1681565b34801561061857600080fd5b50610308610627366004612536565b600b6020526000908152604090205460ff1681565b34801561064857600080fd5b5061035061065736600461256e565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561068e57600080fd5b5061028561069d366004612536565b61137d565b3480156106ae57600080fd5b506102856106bd366004612739565b61146f565b3480156106ce57600080fd5b506102856106dd366004612536565b61149e565b3480156106ee57600080fd5b506102856106fd366004612739565b611519565b34801561070e57600080fd5b5061028561071d366004612536565b611548565b34801561072e57600080fd5b50610285611632565b6000546001600160a01b0316331461076a5760405162461bcd60e51b8152600401610761906127d5565b60405180910390fd5b60005b81518110156107e0576001600b600084848151811061079c57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107d88161293d565b91505061076d565b5050565b6000546001600160a01b0316331461080e5760405162461bcd60e51b8152600401610761906127d5565b6001600160a01b03811660009081526007602052604090205460ff166108865760405162461bcd60e51b815260206004820152602760248201527f4163636f756e74206973206e6f74206578636c756465642066726f6d207265666044820152663632b1ba34b7b760c91b6064820152608401610761565b60005b6008548110156107e057816001600160a01b0316600882815481106108be57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b031614156109cd57600880546108e990600190612926565b8154811061090757634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600880546001600160a01b03909216918390811061094157634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600382526040808220829055600790925220805460ff1916905560088054806109a757634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b806109d78161293d565b915050610889565b60006109ec33848461167a565b5060015b92915050565b6000610a0384848461179e565b610a558433610a508560405180606001604052806028815260200161299a602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611cdf565b61167a565b5060019392505050565b6000546001600160a01b03163314610a895760405162461bcd60e51b8152600401610761906127d5565b6001600160a01b03811660009081526007602052604090205460ff1615610af25760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610761565b600854603290610b039060016128cf565b1115610b8d5760405162461bcd60e51b815260206004820152604d60248201527f43616e6e6f74206578636c756465206d6f7265207468616e203530206163636f60448201527f756e74732e2020496e636c75646520612070726576696f75736c79206578636c60648201526c3ab232b21030b2323932b9b99760991b608482015260a401610761565b6001600160a01b03811660009081526002602052604090205415610be7576001600160a01b038116600090815260026020526040902054610bcd90611d19565b6001600160a01b0382166000908152600360205260409020555b6001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000546001600160a01b03163314610c775760405162461bcd60e51b8152600401610761906127d5565b6014546001600160a01b0316610ccf5760405162461bcd60e51b815260206004820152601760248201527f5f6d6763416464726573732063616e6e6f7420626520300000000000000000006044820152606401610761565b6001600160a01b039081166000908152600560209081526040808320805460ff199081169091556014805486168086529483902080549092166001179091555490519316835290917f74f50aea913687e4cf944d86731818ec3e28eba93a30f2a13561b43134eb843c91015b60405180910390a150565b6000546001600160a01b03163314610d705760405162461bcd60e51b8152600401610761906127d5565b6001600160a01b038116600081815260056020908152604091829020805460ff1916600117905590519182527f58c3e0504c69d3a92726966f152a771e0f8f6ad4daca1ae9055a38aba1fd2b629101610d3b565b6014546001600160a01b0316336001600160a01b031614610de457600080fd5b6000610def30611221565b9050610dfa81611d9d565b50565b6000546001600160a01b03163314610e275760405162461bcd60e51b8152600401610761906127d5565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b600080546001600160a01b03163314610e7d5760405162461bcd60e51b8152600401610761906127d5565b601754600160b01b900460ff1615610eeb5760405162461bcd60e51b815260206004820152602b60248201527f54726164696e6720697320616c7265616479206163746976652c2063616e6e6f60448201526a3a103932b630bab731b41760a91b6064820152608401610761565b60c8835110610f5b5760405162461bcd60e51b815260206004820152603660248201527f43616e206f6e6c792061697264726f70203230302077616c6c657473207065726044820152752074786e2064756520746f20676173206c696d69747360501b6064820152608401610761565b60005b8351811015610fdf576000848281518110610f8957634e487b7160e01b600052603260045260246000fd5b602002602001015190506000848381518110610fb557634e487b7160e01b600052603260045260246000fd5b60200260200101519050610fca33838361179e565b50508080610fd79061293d565b915050610f5e565b50610fe8611f42565b737a250d5630b4cf539739df2c5dacb4c659f2488d611008816001610dfd565b601680546001600160a01b0319166001600160a01b03831690811790915561103b903090683635c9adc5dea0000061167a565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561107457600080fd5b505afa158015611088573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ac9190612552565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156110f457600080fd5b505afa158015611108573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112c9190612552565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561117457600080fd5b505af1158015611188573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ac9190612552565b601780546001600160a01b0319166001600160a01b03929092169182179055610a55906001610dfd565b6000546001600160a01b031633146112005760405162461bcd60e51b8152600401610761906127d5565b6001600160a01b03166000908152600b60205260409020805460ff19169055565b6001600160a01b0381166000908152600260205260408120546109f090611d19565b6000546001600160a01b0316331461126d5760405162461bcd60e51b8152600401610761906127d5565b601a55565b6000546001600160a01b0316331461129c5760405162461bcd60e51b8152600401610761906127d5565b600c849055600d829055600e839055600f81905560196112bc83866128cf565b111561130a5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206275792074617865732062656c6f77203235250000006044820152606401610761565b6019600f54600e5461131c91906128cf565b111561136a5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206275792074617865732062656c6f77203235250000006044820152606401610761565b50505050565b60006109ec33848461179e565b6000546001600160a01b031633146113a75760405162461bcd60e51b8152600401610761906127d5565b6015546001600160a01b03166113ff5760405162461bcd60e51b815260206004820152601860248201527f5f6d6b7467416464726573732063616e6e6f74206265203000000000000000006044820152606401610761565b6001600160a01b039081166000908152600560209081526040808320805460ff199081169091556015805486168086529483902080549092166001179091555490519316835290917f4aeacdf11926d26257f8e9ea6e9091947978ac978705e15835bf04f21f4fa69b9101610d3b565b6000546001600160a01b031633146114995760405162461bcd60e51b8152600401610761906127d5565b601955565b6000546001600160a01b031633146114c85760405162461bcd60e51b8152600401610761906127d5565b6001600160a01b038116600081815260056020908152604091829020805460ff1916905590519182527f4f6a6b6efe34ec6478021aa9fb7f6980e78ea3a10c74074a8ce49d5d3ebf1f7e9101610d3b565b6000546001600160a01b031633146115435760405162461bcd60e51b8152600401610761906127d5565b601855565b6000546001600160a01b031633146115725760405162461bcd60e51b8152600401610761906127d5565b6001600160a01b0381166115d75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610761565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6014546001600160a01b0316336001600160a01b0316148061166757506015546001600160a01b0316336001600160a01b0316145b61167057600080fd5b47610dfa81611f81565b6001600160a01b0383166116dc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610761565b6001600160a01b03821661173d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610761565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166118025760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610761565b6001600160a01b0382166118645760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610761565b600081116118c65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610761565b6000546001600160a01b038481169116148015906118f257506000546001600160a01b03838116911614155b15611b4757601754600160b01b900460ff16611aba576017546001600160a01b0383811691161480159061193457506016546001600160a01b03838116911614155b801561195957506001600160a01b03821660009081526005602052604090205460ff16155b15611aba576019548161196b84611221565b61197591906128cf565b106119ce5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610761565b601854811115611a205760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610761565b6001600160a01b0383166000908152600b602052604090205460ff16158015611a6257506001600160a01b0382166000908152600b602052604090205460ff16155b611aba5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610761565b6000611ac530611221565b601a54601854919250821015908210611ade5760185491505b808015611af55750601754600160a01b900460ff16155b8015611b0f57506017546001600160a01b03868116911614155b8015611b245750601754600160a81b900460ff165b15611b4457611b3282611d9d565b478015611b4257611b4247611f81565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680611b8957506001600160a01b03831660009081526005602052604090205460ff165b80611bbb57506017546001600160a01b03858116911614801590611bbb57506017546001600160a01b03848116911614155b15611bc857506000611cd3565b6017546001600160a01b038581169116148015611bf357506016546001600160a01b03848116911614155b15611c0557600c54601055600d546011555b6001600160a01b03841660009081526005602052604090205460ff16611c9657601854821115611c965760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610761565b6017546001600160a01b038481169116148015611cc157506016546001600160a01b03858116911614155b15611cd357600e54601055600f546011555b61136a84848484612006565b60008184841115611d035760405162461bcd60e51b81526004016107619190612782565b506000611d108486612926565b95945050505050565b6000600954821115611d805760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610761565b6000611d8a612034565b9050611d968382612057565b9392505050565b6017805460ff60a01b1916600160a01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611df357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611e4757600080fd5b505afa158015611e5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7f9190612552565b81600181518110611ea057634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601654611ec6913091168461167a565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac94790611eff90859060009086903090429060040161280a565b600060405180830381600087803b158015611f1957600080fd5b505af1158015611f2d573d6000803e3d6000fd5b50506017805460ff60a01b1916905550505050565b6000546001600160a01b03163314611f6c5760405162461bcd60e51b8152600401610761906127d5565b6017805460ff60b01b1916600160b01b179055565b6014546001600160a01b03166108fc611f9b836002612057565b6040518115909202916000818181858888f19350505050158015611fc3573d6000803e3d6000fd5b506015546001600160a01b03166108fc611fde836002612057565b6040518115909202916000818181858888f193505050501580156107e0573d6000803e3d6000fd5b8061201357612013612099565b61201e8484846120c7565b8061136a5761136a601254601055601354601155565b60008060006120416121be565b90925090506120508282612057565b9250505090565b6000611d9683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612200565b6010541580156120a95750601154155b156120b057565b601080546012556011805460135560009182905555565b6000806000806000806120d98761222e565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061210b908761228b565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461213a90866122cd565b6001600160a01b03891660009081526002602052604090205561215c8161232c565b6121668483612376565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516121ab91815260200190565b60405180910390a3505050505050505050565b6009546000908190683635c9adc5dea000006121da8282612057565b8210156121f757505060095492683635c9adc5dea0000092509050565b90939092509050565b600081836122215760405162461bcd60e51b81526004016107619190612782565b506000611d1084866128e7565b600080600080600080600080600061224b8a60105460115461239a565b925092509250600061225b612034565b9050600080600061226e8e8787876123ef565b919e509c509a509598509396509194505050505091939550919395565b6000611d9683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cdf565b6000806122da83856128cf565b905083811015611d965760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610761565b6000612336612034565b90506000612344838361243f565b3060009081526002602052604090205490915061236190826122cd565b30600090815260026020526040902055505050565b600954612383908361228b565b600955600a5461239390826122cd565b600a555050565b60008080806123b460646123ae898961243f565b90612057565b905060006123c760646123ae8a8961243f565b905060006123df826123d98b8661228b565b9061228b565b9992985090965090945050505050565b60008080806123fe888661243f565b9050600061240c888761243f565b9050600061241a888861243f565b9050600061242c826123d9868661228b565b939b939a50919850919650505050505050565b60008261244e575060006109f0565b600061245a8385612907565b90508261246785836128e7565b14611d965760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610761565b600082601f8301126124ce578081fd5b813560206124e36124de836128ab565b61287a565b80838252828201915082860187848660051b8901011115612502578586fd5b855b8581101561252957813561251781612984565b84529284019290840190600101612504565b5090979650505050505050565b600060208284031215612547578081fd5b8135611d9681612984565b600060208284031215612563578081fd5b8151611d9681612984565b60008060408385031215612580578081fd5b823561258b81612984565b9150602083013561259b81612984565b809150509250929050565b6000806000606084860312156125ba578081fd5b83356125c581612984565b925060208401356125d581612984565b929592945050506040919091013590565b600080604083850312156125f8578182fd5b823561260381612984565b91506020830135801515811461259b578182fd5b60008060408385031215612629578182fd5b823561263481612984565b946020939093013593505050565b600060208284031215612653578081fd5b813567ffffffffffffffff811115612669578182fd5b612675848285016124be565b949350505050565b6000806040838503121561268f578182fd5b823567ffffffffffffffff808211156126a6578384fd5b6126b2868387016124be565b93506020915081850135818111156126c8578384fd5b85019050601f810186136126da578283fd5b80356126e86124de826128ab565b80828252848201915084840189868560051b8701011115612707578687fd5b8694505b8385101561272957803583526001949094019391850191850161270b565b5080955050505050509250929050565b60006020828403121561274a578081fd5b5035919050565b60008060008060808587031215612766578081fd5b5050823594602084013594506040840135936060013592509050565b6000602080835283518082850152825b818110156127ae57858101830151858201604001528201612792565b818111156127bf5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156128595784516001600160a01b031683529383019391830191600101612834565b50506001600160a01b03969096166060850152505050608001529392505050565b604051601f8201601f1916810167ffffffffffffffff811182821017156128a3576128a361296e565b604052919050565b600067ffffffffffffffff8211156128c5576128c561296e565b5060051b60200190565b600082198211156128e2576128e2612958565b500190565b60008261290257634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561292157612921612958565b500290565b60008282101561293857612938612958565b500390565b600060001982141561295157612951612958565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610dfa57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122010b4ff3b35e35cbd1349e91415ca8c56d74a6cf2540ed08c843769f2dd3e481164736f6c63430008040033

Deployed Bytecode

0x60806040526004361061021c5760003560e01c80636724348211610123578063a9059cbb116100ab578063ea1644d51161006f578063ea1644d5146106a2578063ea2f0b37146106c2578063ec28438a146106e2578063f2fde38b14610702578063f42938901461072257600080fd5b8063a9059cbb146105cb578063bbc0c742146105eb578063bfd792841461060c578063dd62ed3e1461063c578063e755d0cf1461068257600080fd5b80638da5cb5b116100f25780638da5cb5b1461052b5780638f9a55c01461054957806395d89b411461055f57806398a5c3151461058b578063a2a957bb146105ab57600080fd5b806367243482146104b55780636b999053146104d557806370a08231146104f55780637d1db4a51461051557600080fd5b806327334a08116101a6578063437823ec11610175578063437823ec1461041057806349bd5a5e1461043057806351bc3c8514610450578063563912bd14610465578063595cc84f1461049557600080fd5b806327334a081461039e5780632cf2dd64146103be5780632fd689e3146103de578063313ce567146103f457600080fd5b8063095ea7b3116101ed578063095ea7b3146102e85780631694505e1461031857806318160ddd146103385780631b7861ef1461035e57806323b872dd1461037e57600080fd5b806286803414610228578062b8cf2a1461026557806305f82a451461028757806306fdde03146102a757600080fd5b3661022357005b600080fd5b34801561023457600080fd5b50601554610248906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561027157600080fd5b50610285610280366004612642565b610737565b005b34801561029357600080fd5b506102856102a2366004612536565b6107e4565b3480156102b357600080fd5b5060408051808201909152600f81526e135d5b1d1a51d95b90d85c1a5d185b608a1b60208201525b60405161025c9190612782565b3480156102f457600080fd5b50610308610303366004612617565b6109df565b604051901515815260200161025c565b34801561032457600080fd5b50601654610248906001600160a01b031681565b34801561034457600080fd5b50683635c9adc5dea000005b60405190815260200161025c565b34801561036a57600080fd5b50601454610248906001600160a01b031681565b34801561038a57600080fd5b506103086103993660046125a6565b6109f6565b3480156103aa57600080fd5b506102856103b9366004612536565b610a5f565b3480156103ca57600080fd5b506102856103d9366004612536565b610c4d565b3480156103ea57600080fd5b50610350601a5481565b34801561040057600080fd5b506040516009815260200161025c565b34801561041c57600080fd5b5061028561042b366004612536565b610d46565b34801561043c57600080fd5b50601754610248906001600160a01b031681565b34801561045c57600080fd5b50610285610dc4565b34801561047157600080fd5b50610308610480366004612536565b60066020526000908152604090205460ff1681565b3480156104a157600080fd5b506102856104b03660046125e6565b610dfd565b3480156104c157600080fd5b506103086104d036600461267d565b610e52565b3480156104e157600080fd5b506102856104f0366004612536565b6111d6565b34801561050157600080fd5b50610350610510366004612536565b611221565b34801561052157600080fd5b5061035060185481565b34801561053757600080fd5b506000546001600160a01b0316610248565b34801561055557600080fd5b5061035060195481565b34801561056b57600080fd5b506040805180820190915260038152624d474360e81b60208201526102db565b34801561059757600080fd5b506102856105a6366004612739565b611243565b3480156105b757600080fd5b506102856105c6366004612751565b611272565b3480156105d757600080fd5b506103086105e6366004612617565b611370565b3480156105f757600080fd5b5060175461030890600160b01b900460ff1681565b34801561061857600080fd5b50610308610627366004612536565b600b6020526000908152604090205460ff1681565b34801561064857600080fd5b5061035061065736600461256e565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561068e57600080fd5b5061028561069d366004612536565b61137d565b3480156106ae57600080fd5b506102856106bd366004612739565b61146f565b3480156106ce57600080fd5b506102856106dd366004612536565b61149e565b3480156106ee57600080fd5b506102856106fd366004612739565b611519565b34801561070e57600080fd5b5061028561071d366004612536565b611548565b34801561072e57600080fd5b50610285611632565b6000546001600160a01b0316331461076a5760405162461bcd60e51b8152600401610761906127d5565b60405180910390fd5b60005b81518110156107e0576001600b600084848151811061079c57634e487b7160e01b600052603260045260246000fd5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806107d88161293d565b91505061076d565b5050565b6000546001600160a01b0316331461080e5760405162461bcd60e51b8152600401610761906127d5565b6001600160a01b03811660009081526007602052604090205460ff166108865760405162461bcd60e51b815260206004820152602760248201527f4163636f756e74206973206e6f74206578636c756465642066726f6d207265666044820152663632b1ba34b7b760c91b6064820152608401610761565b60005b6008548110156107e057816001600160a01b0316600882815481106108be57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b031614156109cd57600880546108e990600190612926565b8154811061090757634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600880546001600160a01b03909216918390811061094157634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600382526040808220829055600790925220805460ff1916905560088054806109a757634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b806109d78161293d565b915050610889565b60006109ec33848461167a565b5060015b92915050565b6000610a0384848461179e565b610a558433610a508560405180606001604052806028815260200161299a602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611cdf565b61167a565b5060019392505050565b6000546001600160a01b03163314610a895760405162461bcd60e51b8152600401610761906127d5565b6001600160a01b03811660009081526007602052604090205460ff1615610af25760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610761565b600854603290610b039060016128cf565b1115610b8d5760405162461bcd60e51b815260206004820152604d60248201527f43616e6e6f74206578636c756465206d6f7265207468616e203530206163636f60448201527f756e74732e2020496e636c75646520612070726576696f75736c79206578636c60648201526c3ab232b21030b2323932b9b99760991b608482015260a401610761565b6001600160a01b03811660009081526002602052604090205415610be7576001600160a01b038116600090815260026020526040902054610bcd90611d19565b6001600160a01b0382166000908152600360205260409020555b6001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6000546001600160a01b03163314610c775760405162461bcd60e51b8152600401610761906127d5565b6014546001600160a01b0316610ccf5760405162461bcd60e51b815260206004820152601760248201527f5f6d6763416464726573732063616e6e6f7420626520300000000000000000006044820152606401610761565b6001600160a01b039081166000908152600560209081526040808320805460ff199081169091556014805486168086529483902080549092166001179091555490519316835290917f74f50aea913687e4cf944d86731818ec3e28eba93a30f2a13561b43134eb843c91015b60405180910390a150565b6000546001600160a01b03163314610d705760405162461bcd60e51b8152600401610761906127d5565b6001600160a01b038116600081815260056020908152604091829020805460ff1916600117905590519182527f58c3e0504c69d3a92726966f152a771e0f8f6ad4daca1ae9055a38aba1fd2b629101610d3b565b6014546001600160a01b0316336001600160a01b031614610de457600080fd5b6000610def30611221565b9050610dfa81611d9d565b50565b6000546001600160a01b03163314610e275760405162461bcd60e51b8152600401610761906127d5565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b600080546001600160a01b03163314610e7d5760405162461bcd60e51b8152600401610761906127d5565b601754600160b01b900460ff1615610eeb5760405162461bcd60e51b815260206004820152602b60248201527f54726164696e6720697320616c7265616479206163746976652c2063616e6e6f60448201526a3a103932b630bab731b41760a91b6064820152608401610761565b60c8835110610f5b5760405162461bcd60e51b815260206004820152603660248201527f43616e206f6e6c792061697264726f70203230302077616c6c657473207065726044820152752074786e2064756520746f20676173206c696d69747360501b6064820152608401610761565b60005b8351811015610fdf576000848281518110610f8957634e487b7160e01b600052603260045260246000fd5b602002602001015190506000848381518110610fb557634e487b7160e01b600052603260045260246000fd5b60200260200101519050610fca33838361179e565b50508080610fd79061293d565b915050610f5e565b50610fe8611f42565b737a250d5630b4cf539739df2c5dacb4c659f2488d611008816001610dfd565b601680546001600160a01b0319166001600160a01b03831690811790915561103b903090683635c9adc5dea0000061167a565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561107457600080fd5b505afa158015611088573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ac9190612552565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156110f457600080fd5b505afa158015611108573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112c9190612552565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561117457600080fd5b505af1158015611188573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ac9190612552565b601780546001600160a01b0319166001600160a01b03929092169182179055610a55906001610dfd565b6000546001600160a01b031633146112005760405162461bcd60e51b8152600401610761906127d5565b6001600160a01b03166000908152600b60205260409020805460ff19169055565b6001600160a01b0381166000908152600260205260408120546109f090611d19565b6000546001600160a01b0316331461126d5760405162461bcd60e51b8152600401610761906127d5565b601a55565b6000546001600160a01b0316331461129c5760405162461bcd60e51b8152600401610761906127d5565b600c849055600d829055600e839055600f81905560196112bc83866128cf565b111561130a5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206275792074617865732062656c6f77203235250000006044820152606401610761565b6019600f54600e5461131c91906128cf565b111561136a5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206275792074617865732062656c6f77203235250000006044820152606401610761565b50505050565b60006109ec33848461179e565b6000546001600160a01b031633146113a75760405162461bcd60e51b8152600401610761906127d5565b6015546001600160a01b03166113ff5760405162461bcd60e51b815260206004820152601860248201527f5f6d6b7467416464726573732063616e6e6f74206265203000000000000000006044820152606401610761565b6001600160a01b039081166000908152600560209081526040808320805460ff199081169091556015805486168086529483902080549092166001179091555490519316835290917f4aeacdf11926d26257f8e9ea6e9091947978ac978705e15835bf04f21f4fa69b9101610d3b565b6000546001600160a01b031633146114995760405162461bcd60e51b8152600401610761906127d5565b601955565b6000546001600160a01b031633146114c85760405162461bcd60e51b8152600401610761906127d5565b6001600160a01b038116600081815260056020908152604091829020805460ff1916905590519182527f4f6a6b6efe34ec6478021aa9fb7f6980e78ea3a10c74074a8ce49d5d3ebf1f7e9101610d3b565b6000546001600160a01b031633146115435760405162461bcd60e51b8152600401610761906127d5565b601855565b6000546001600160a01b031633146115725760405162461bcd60e51b8152600401610761906127d5565b6001600160a01b0381166115d75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610761565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6014546001600160a01b0316336001600160a01b0316148061166757506015546001600160a01b0316336001600160a01b0316145b61167057600080fd5b47610dfa81611f81565b6001600160a01b0383166116dc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610761565b6001600160a01b03821661173d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610761565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166118025760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610761565b6001600160a01b0382166118645760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610761565b600081116118c65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610761565b6000546001600160a01b038481169116148015906118f257506000546001600160a01b03838116911614155b15611b4757601754600160b01b900460ff16611aba576017546001600160a01b0383811691161480159061193457506016546001600160a01b03838116911614155b801561195957506001600160a01b03821660009081526005602052604090205460ff16155b15611aba576019548161196b84611221565b61197591906128cf565b106119ce5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b6064820152608401610761565b601854811115611a205760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000006044820152606401610761565b6001600160a01b0383166000908152600b602052604090205460ff16158015611a6257506001600160a01b0382166000908152600b602052604090205460ff16155b611aba5760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b6064820152608401610761565b6000611ac530611221565b601a54601854919250821015908210611ade5760185491505b808015611af55750601754600160a01b900460ff16155b8015611b0f57506017546001600160a01b03868116911614155b8015611b245750601754600160a81b900460ff165b15611b4457611b3282611d9d565b478015611b4257611b4247611f81565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff1680611b8957506001600160a01b03831660009081526005602052604090205460ff165b80611bbb57506017546001600160a01b03858116911614801590611bbb57506017546001600160a01b03848116911614155b15611bc857506000611cd3565b6017546001600160a01b038581169116148015611bf357506016546001600160a01b03848116911614155b15611c0557600c54601055600d546011555b6001600160a01b03841660009081526005602052604090205460ff16611c9657601854821115611c965760405162461bcd60e51b815260206004820152603660248201527f53656c6c207472616e7366657220616d6f756e742065786365656473207468656044820152751036b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6064820152608401610761565b6017546001600160a01b038481169116148015611cc157506016546001600160a01b03858116911614155b15611cd357600e54601055600f546011555b61136a84848484612006565b60008184841115611d035760405162461bcd60e51b81526004016107619190612782565b506000611d108486612926565b95945050505050565b6000600954821115611d805760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610761565b6000611d8a612034565b9050611d968382612057565b9392505050565b6017805460ff60a01b1916600160a01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611df357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611e4757600080fd5b505afa158015611e5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7f9190612552565b81600181518110611ea057634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601654611ec6913091168461167a565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac94790611eff90859060009086903090429060040161280a565b600060405180830381600087803b158015611f1957600080fd5b505af1158015611f2d573d6000803e3d6000fd5b50506017805460ff60a01b1916905550505050565b6000546001600160a01b03163314611f6c5760405162461bcd60e51b8152600401610761906127d5565b6017805460ff60b01b1916600160b01b179055565b6014546001600160a01b03166108fc611f9b836002612057565b6040518115909202916000818181858888f19350505050158015611fc3573d6000803e3d6000fd5b506015546001600160a01b03166108fc611fde836002612057565b6040518115909202916000818181858888f193505050501580156107e0573d6000803e3d6000fd5b8061201357612013612099565b61201e8484846120c7565b8061136a5761136a601254601055601354601155565b60008060006120416121be565b90925090506120508282612057565b9250505090565b6000611d9683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612200565b6010541580156120a95750601154155b156120b057565b601080546012556011805460135560009182905555565b6000806000806000806120d98761222e565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061210b908761228b565b6001600160a01b03808b1660009081526002602052604080822093909355908a168152205461213a90866122cd565b6001600160a01b03891660009081526002602052604090205561215c8161232c565b6121668483612376565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516121ab91815260200190565b60405180910390a3505050505050505050565b6009546000908190683635c9adc5dea000006121da8282612057565b8210156121f757505060095492683635c9adc5dea0000092509050565b90939092509050565b600081836122215760405162461bcd60e51b81526004016107619190612782565b506000611d1084866128e7565b600080600080600080600080600061224b8a60105460115461239a565b925092509250600061225b612034565b9050600080600061226e8e8787876123ef565b919e509c509a509598509396509194505050505091939550919395565b6000611d9683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cdf565b6000806122da83856128cf565b905083811015611d965760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610761565b6000612336612034565b90506000612344838361243f565b3060009081526002602052604090205490915061236190826122cd565b30600090815260026020526040902055505050565b600954612383908361228b565b600955600a5461239390826122cd565b600a555050565b60008080806123b460646123ae898961243f565b90612057565b905060006123c760646123ae8a8961243f565b905060006123df826123d98b8661228b565b9061228b565b9992985090965090945050505050565b60008080806123fe888661243f565b9050600061240c888761243f565b9050600061241a888861243f565b9050600061242c826123d9868661228b565b939b939a50919850919650505050505050565b60008261244e575060006109f0565b600061245a8385612907565b90508261246785836128e7565b14611d965760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610761565b600082601f8301126124ce578081fd5b813560206124e36124de836128ab565b61287a565b80838252828201915082860187848660051b8901011115612502578586fd5b855b8581101561252957813561251781612984565b84529284019290840190600101612504565b5090979650505050505050565b600060208284031215612547578081fd5b8135611d9681612984565b600060208284031215612563578081fd5b8151611d9681612984565b60008060408385031215612580578081fd5b823561258b81612984565b9150602083013561259b81612984565b809150509250929050565b6000806000606084860312156125ba578081fd5b83356125c581612984565b925060208401356125d581612984565b929592945050506040919091013590565b600080604083850312156125f8578182fd5b823561260381612984565b91506020830135801515811461259b578182fd5b60008060408385031215612629578182fd5b823561263481612984565b946020939093013593505050565b600060208284031215612653578081fd5b813567ffffffffffffffff811115612669578182fd5b612675848285016124be565b949350505050565b6000806040838503121561268f578182fd5b823567ffffffffffffffff808211156126a6578384fd5b6126b2868387016124be565b93506020915081850135818111156126c8578384fd5b85019050601f810186136126da578283fd5b80356126e86124de826128ab565b80828252848201915084840189868560051b8701011115612707578687fd5b8694505b8385101561272957803583526001949094019391850191850161270b565b5080955050505050509250929050565b60006020828403121561274a578081fd5b5035919050565b60008060008060808587031215612766578081fd5b5050823594602084013594506040840135936060013592509050565b6000602080835283518082850152825b818110156127ae57858101830151858201604001528201612792565b818111156127bf5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156128595784516001600160a01b031683529383019391830191600101612834565b50506001600160a01b03969096166060850152505050608001529392505050565b604051601f8201601f1916810167ffffffffffffffff811182821017156128a3576128a361296e565b604052919050565b600067ffffffffffffffff8211156128c5576128c561296e565b5060051b60200190565b600082198211156128e2576128e2612958565b500190565b60008261290257634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561292157612921612958565b500290565b60008282101561293857612938612958565b500390565b600060001982141561295157612951612958565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610dfa57600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122010b4ff3b35e35cbd1349e91415ca8c56d74a6cf2540ed08c843769f2dd3e481164736f6c63430008040033

Deployed Bytecode Sourcemap

4987:18074:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6560:89;;;;;;;;;;-1:-1:-1;6560:89:0;;;;-1:-1:-1;;;;;6560:89:0;;;;;;-1:-1:-1;;;;;5301:32:1;;;5283:51;;5271:2;5256:18;6560:89:0;;;;;;;;16153:169;;;;;;;;;;-1:-1:-1;16153:169:0;;;;;:::i;:::-;;:::i;:::-;;9981:603;;;;;;;;;;-1:-1:-1;9981:603:0;;;;;:::i;:::-;;:::i;8404:83::-;;;;;;;;;;-1:-1:-1;8474:5:0;;;;;;;;;;;;-1:-1:-1;;;8474:5:0;;;;8404:83;;;;;;;:::i;10784:193::-;;;;;;;;;;-1:-1:-1;10784:193:0;;;;;:::i;:::-;;:::i;:::-;;;6259:14:1;;6252:22;6234:41;;6222:2;6207:18;10784:193:0;6189:92:1;6685:41:0;;;;;;;;;;-1:-1:-1;6685:41:0;;;;-1:-1:-1;;;;;6685:41:0;;;8681:95;;;;;;;;;;-1:-1:-1;5728:16:0;8681:95;;;15975:25:1;;;15963:2;15948:18;8681:95:0;15930:76:1;6422:88:0;;;;;;;;;;-1:-1:-1;6422:88:0;;;;-1:-1:-1;;;;;6422:88:0;;;10985:446;;;;;;;;;;-1:-1:-1;10985:446:0;;;;;:::i;:::-;;:::i;9454:519::-;;;;;;;;;;-1:-1:-1;9454:519:0;;;;;:::i;:::-;;:::i;22353:330::-;;;;;;;;;;-1:-1:-1;22353:330:0;;;;;:::i;:::-;;:::i;7055:53::-;;;;;;;;;;;;;;;;8590:83;;;;;;;;;;-1:-1:-1;8590:83:0;;5225:1;17141:36:1;;17129:2;17114:18;8590:83:0;17096:87:1;9137:152:0;;;;;;;;;;-1:-1:-1;9137:152:0;;;;;:::i;:::-;;:::i;6733:28::-;;;;;;;;;;-1:-1:-1;6733:28:0;;;;-1:-1:-1;;;;;6733:28:0;;;15720:191;;;;;;;;;;;;;:::i;5467:55::-;;;;;;;;;;-1:-1:-1;5467:55:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;22037:132;;;;;;;;;;-1:-1:-1;22037:132:0;;;;;:::i;:::-;;:::i;20627:1065::-;;;;;;;;;;-1:-1:-1;20627:1065:0;;;;;:::i;:::-;;:::i;16330:92::-;;;;;;;;;;-1:-1:-1;16330:92:0;;;;;:::i;:::-;;:::i;8784:138::-;;;;;;;;;;-1:-1:-1;8784:138:0;;;;;:::i;:::-;;:::i;6892:46::-;;;;;;;;;;;;;;;;2408:79;;;;;;;;;;-1:-1:-1;2446:7:0;2473:6;-1:-1:-1;;;;;2473:6:0;2408:79;;6975:48;;;;;;;;;;;;;;;;8495:87;;;;;;;;;;-1:-1:-1;8567:7:0;;;;;;;;;;;;-1:-1:-1;;;8567:7:0;;;;8495:87;;21744:139;;;;;;;;;;-1:-1:-1;21744:139:0;;;;;:::i;:::-;;:::i;19869:599::-;;;;;;;;;;-1:-1:-1;19869:599:0;;;;;:::i;:::-;;:::i;8930:199::-;;;;;;;;;;-1:-1:-1;8930:199:0;;;;;:::i;:::-;;:::i;6846:33::-;;;;;;;;;;-1:-1:-1;6846:33:0;;;;-1:-1:-1;;;6846:33:0;;;;;;5866:36;;;;;;;;;;-1:-1:-1;5866:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10592:184;;;;;;;;;;-1:-1:-1;10592:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;10741:18:0;;;10709:7;10741:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10592:184;22718:340;;;;;;;;;;-1:-1:-1;22718:340:0;;;;;:::i;:::-;;:::i;22203:115::-;;;;;;;;;;-1:-1:-1;22203:115:0;;;;;:::i;:::-;;:::i;9297:149::-;;;;;;;;;;-1:-1:-1;9297:149:0;;;;;:::i;:::-;;:::i;21922:107::-;;;;;;;;;;-1:-1:-1;21922:107:0;;;;;:::i;:::-;;:::i;2626:244::-;;;;;;;;;;-1:-1:-1;2626:244:0;;;;;:::i;:::-;;:::i;15919:222::-;;;;;;;;;;;;;:::i;16153:169::-;2535:6;;-1:-1:-1;;;;;2535:6:0;1247:10;2535:22;2527:67;;;;-1:-1:-1;;;2527:67:0;;;;;;;:::i;:::-;;;;;;;;;16229:9:::1;16224:91;16248:5;:12;16244:1;:16;16224:91;;;16299:4;16282;:14;16287:5;16293:1;16287:8;;;;;;-1:-1:-1::0;;;16287:8:0::1;;;;;;;;;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;16282:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;16282:14:0;:21;;-1:-1:-1;;16282:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16262:3;::::1;::::0;::::1;:::i;:::-;;;;16224:91;;;;16153:169:::0;:::o;9981:603::-;2535:6;;-1:-1:-1;;;;;2535:6:0;1247:10;2535:22;2527:67;;;;-1:-1:-1;;;2527:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10063:34:0;::::1;;::::0;;;:25:::1;:34;::::0;;;;;::::1;;10055:86;;;::::0;-1:-1:-1;;;10055:86:0;;14427:2:1;10055:86:0::1;::::0;::::1;14409:21:1::0;14466:2;14446:18;;;14439:30;14505:34;14485:18;;;14478:62;-1:-1:-1;;;14556:18:1;;;14549:37;14603:19;;10055:86:0::1;14399:229:1::0;10055:86:0::1;10157:9;10152:425;10176:23;:30:::0;10172:34;::::1;10152:425;;;10262:7;-1:-1:-1::0;;;;;10232:37:0::1;:23;10256:1;10232:26;;;;;;-1:-1:-1::0;;;10232:26:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;10232:26:0::1;:37;10228:338;;;10319:23;10343:30:::0;;:34:::1;::::0;10376:1:::1;::::0;10343:34:::1;:::i;:::-;10319:59;;;;;;-1:-1:-1::0;;;10319:59:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;10290:23:::1;:26:::0;;-1:-1:-1;;;;;10319:59:0;;::::1;::::0;10314:1;;10290:26;::::1;;;-1:-1:-1::0;;;10290:26:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:88:::0;;-1:-1:-1;;;;;;10290:88:0::1;-1:-1:-1::0;;;;;10290:88:0;;::::1;;::::0;;10397:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;10436:25:::1;:34:::0;;;;:42;;-1:-1:-1;;10436:42:0::1;::::0;;10497:23:::1;:29:::0;;;::::1;;-1:-1:-1::0;;;10497:29:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;10497:29:0;;;;;-1:-1:-1;;;;;;10497:29:0::1;::::0;;;;;16224:91:::1;16153:169:::0;:::o;10228:338::-:1;10208:3:::0;::::1;::::0;::::1;:::i;:::-;;;;10152:425;;10784:193:::0;10886:4;10908:39;1247:10;10931:7;10940:6;10908:8;:39::i;:::-;-1:-1:-1;10965:4:0;10784:193;;;;;:::o;10985:446::-;11117:4;11134:36;11144:6;11152:9;11163:6;11134:9;:36::i;:::-;11181:220;11204:6;1247:10;11252:138;11308:6;11252:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11252:19:0;;;;;;:11;:19;;;;;;;;1247:10;11252:33;;;;;;;;;;:37;:138::i;:::-;11181:8;:220::i;:::-;-1:-1:-1;11419:4:0;10985:446;;;;;:::o;9454:519::-;2535:6;;-1:-1:-1;;;;;2535:6:0;1247:10;2535:22;2527:67;;;;-1:-1:-1;;;2527:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9539:34:0;::::1;;::::0;;;:25:::1;:34;::::0;;;;;::::1;;9538:35;9530:75;;;::::0;-1:-1:-1;;;9530:75:0;;10848:2:1;9530:75:0::1;::::0;::::1;10830:21:1::0;10887:2;10867:18;;;10860:30;10926:29;10906:18;;;10899:57;10973:18;;9530:75:0::1;10820:177:1::0;9530:75:0::1;9624:23;:30:::0;9662:2:::1;::::0;9624:34:::1;::::0;9657:1:::1;9624:34;:::i;:::-;:40;;9616:130;;;::::0;-1:-1:-1;;;9616:130:0;;14835:2:1;9616:130:0::1;::::0;::::1;14817:21:1::0;14874:2;14854:18;;;14847:30;14913:34;14893:18;;;14886:62;14984:34;14964:18;;;14957:62;-1:-1:-1;;;15035:19:1;;;15028:44;15089:19;;9616:130:0::1;14807:307:1::0;9616:130:0::1;-1:-1:-1::0;;;;;9761:16:0;::::1;9780:1;9761:16:::0;;;:7:::1;:16;::::0;;;;;:20;9757:109:::1;;-1:-1:-1::0;;;;;9837:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;9817:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;9798:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;9757:109:::1;-1:-1:-1::0;;;;;9876:34:0::1;;::::0;;;:25:::1;:34;::::0;;;;:41;;-1:-1:-1;;9876:41:0::1;9913:4;9876:41:::0;;::::1;::::0;;;9928:23:::1;:37:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;9928:37:0::1;::::0;;::::1;::::0;;9454:519::o;22353:330::-;2535:6;;-1:-1:-1;;;;;2535:6:0;1247:10;2535:22;2527:67;;;;-1:-1:-1;;;2527:67:0;;;;;;;:::i;:::-;22435:11:::1;::::0;-1:-1:-1;;;;;22435:11:0::1;22427:61;;;::::0;-1:-1:-1;;;22427:61:0;;15679:2:1;22427:61:0::1;::::0;::::1;15661:21:1::0;15718:2;15698:18;;;15691:30;15757:25;15737:18;;;15730:53;15800:18;;22427:61:0::1;15651:173:1::0;22427:61:0::1;-1:-1:-1::0;;;;;22499:30:0;;::::1;22532:5;22499:30:::0;;;:18:::1;:30;::::0;;;;;;;:38;;-1:-1:-1;;22499:38:0;;::::1;::::0;;;22569:11:::1;::::0;;;::::1;22592:30:::0;;;;;;;:37;;;;::::1;-1:-1:-1::0;22592:37:0::1;::::0;;;22663:11;22645:30;;22663:11;::::1;5283:51:1::0;;22569:11:0;;22645:30:::1;::::0;5256:18:1;22645:30:0::1;;;;;;;;22353:330:::0;:::o;9137:152::-;2535:6;;-1:-1:-1;;;;;2535:6:0;1247:10;2535:22;2527:67;;;;-1:-1:-1;;;2527:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9208:27:0;::::1;;::::0;;;:18:::1;:27;::::0;;;;;;;;:34;;-1:-1:-1;;9208:34:0::1;9238:4;9208:34;::::0;;9258:23;;5283:51:1;;;9258:23:0::1;::::0;5256:18:1;9258:23:0::1;5238:102:1::0;15720:191:0;15786:11;;-1:-1:-1;;;;;15786:11:0;1247:10;-1:-1:-1;;;;;15770:27:0;;15762:36;;;;;;15809:23;15835:24;15853:4;15835:9;:24::i;:::-;15809:50;;15870:33;15887:15;15870:16;:33::i;:::-;15720:191;:::o;22037:132::-;2535:6;;-1:-1:-1;;;;;2535:6:0;1247:10;2535:22;2527:67;;;;-1:-1:-1;;;2527:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22124:30:0;;;::::1;;::::0;;;:22:::1;:30;::::0;;;;:37;;-1:-1:-1;;22124:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;22037:132::o;20627:1065::-;20731:4;2535:6;;-1:-1:-1;;;;;2535:6:0;1247:10;2535:22;2527:67;;;;-1:-1:-1;;;2527:67:0;;;;;;;:::i;:::-;20756:13:::1;::::0;-1:-1:-1;;;20756:13:0;::::1;;;20755:14;20747:70;;;::::0;-1:-1:-1;;;20747:70:0;;14015:2:1;20747:70:0::1;::::0;::::1;13997:21:1::0;14054:2;14034:18;;;14027:30;14093:34;14073:18;;;14066:62;-1:-1:-1;;;14144:18:1;;;14137:41;14195:19;;20747:70:0::1;13987:233:1::0;20747:70:0::1;20860:3;20836:14;:21;:27;20828:94;;;::::0;-1:-1:-1;;;20828:94:0;;7734:2:1;20828:94:0::1;::::0;::::1;7716:21:1::0;7773:2;7753:18;;;7746:30;7812:34;7792:18;;;7785:62;-1:-1:-1;;;7863:18:1;;;7856:52;7925:19;;20828:94:0::1;7706:244:1::0;20828:94:0::1;20959:9;20955:205;20978:14;:21;20974:1;:25;20955:205;;;21020:14;21037;21052:1;21037:17;;;;;;-1:-1:-1::0;;;21037:17:0::1;;;;;;;;;;;;;;;21020:34;;21069:14;21086:7;21094:1;21086:10;;;;;;-1:-1:-1::0;;;21086:10:0::1;;;;;;;;;;;;;;;21069:27;;21111:37;21121:10;21133:6;21141;21111:9;:37::i;:::-;20955:205;;21001:3;;;;;:::i;:::-;;;;20955:205;;;;21170:15;:13;:15::i;:::-;21253:42;21307:55;21253:42:::0;21357:4:::1;21307:22;:55::i;:::-;21373:15;:34:::0;;-1:-1:-1;;;;;;21373:34:0::1;-1:-1:-1::0;;;;;21373:34:0;::::1;::::0;;::::1;::::0;;;21418:58:::1;::::0;21435:4:::1;::::0;5728:16:::1;21418:8;:58::i;:::-;21521:16;-1:-1:-1::0;;;;;21521:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;21503:56:0::1;;21568:4;21575:16;-1:-1:-1::0;;;;;21575:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21503:96;::::0;-1:-1:-1;;;;;;21503:96:0::1;::::0;;;;;;-1:-1:-1;;;;;6015:15:1;;;21503:96:0::1;::::0;::::1;5997:34:1::0;6067:15;;6047:18;;;6040:43;5932:18;;21503:96:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21487:13;:112:::0;;-1:-1:-1;;;;;;21487:112:0::1;-1:-1:-1::0;;;;;21487:112:0;;;::::1;::::0;;::::1;::::0;;21610:52:::1;::::0;-1:-1:-1;21610:22:0::1;:52::i;16330:92::-:0;2535:6;;-1:-1:-1;;;;;2535:6:0;1247:10;2535:22;2527:67;;;;-1:-1:-1;;;2527:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16394:12:0::1;16409:5;16394:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;16394:20:0::1;::::0;;16330:92::o;8784:138::-;-1:-1:-1;;;;;8897:16:0;;8850:7;8897:16;;;:7;:16;;;;;;8877:37;;:19;:37::i;21744:139::-;2535:6;;-1:-1:-1;;;;;2535:6:0;1247:10;2535:22;2527:67;;;;-1:-1:-1;;;2527:67:0;;;;;;;:::i;:::-;21835:19:::1;:40:::0;21744:139::o;19869:599::-;2535:6;;-1:-1:-1;;;;;2535:6:0;1247:10;2535:22;2527:67;;;;-1:-1:-1;;;2527:67:0;;;;;;;:::i;:::-;20013:19:::1;:40:::0;;;20064:12:::1;:26:::0;;;20111:20:::1;:42:::0;;;20164:13:::1;:28:::0;;;20259:2:::1;20221:34;20079:11:::0;20035:18;20221:34:::1;:::i;:::-;:40;;20213:82;;;::::0;-1:-1:-1;;;20213:82:0;;15321:2:1;20213:82:0::1;::::0;::::1;15303:21:1::0;15360:2;15340:18;;;15333:30;15399:31;15379:18;;;15372:59;15448:18;;20213:82:0::1;15293:179:1::0;20213:82:0::1;20389:2;20372:13;;20349:20;;:36;;;;:::i;:::-;:42;;20341:84;;;::::0;-1:-1:-1;;;20341:84:0;;15321:2:1;20341:84:0::1;::::0;::::1;15303:21:1::0;15360:2;15340:18;;;15333:30;15399:31;15379:18;;;15372:59;15448:18;;20341:84:0::1;15293:179:1::0;20341:84:0::1;19869:599:::0;;;;:::o;8930:199::-;9035:4;9057:42;1247:10;9081:9;9092:6;9057:9;:42::i;22718:340::-;2535:6;;-1:-1:-1;;;;;2535:6:0;1247:10;2535:22;2527:67;;;;-1:-1:-1;;;2527:67:0;;;;;;;:::i;:::-;22802:12:::1;::::0;-1:-1:-1;;;;;22802:12:0::1;22794:63;;;::::0;-1:-1:-1;;;22794:63:0;;8157:2:1;22794:63:0::1;::::0;::::1;8139:21:1::0;8196:2;8176:18;;;8169:30;8235:26;8215:18;;;8208:54;8279:18;;22794:63:0::1;8129:174:1::0;22794:63:0::1;-1:-1:-1::0;;;;;22868:31:0;;::::1;22902:5;22868:31:::0;;;:18:::1;:31;::::0;;;;;;;:39;;-1:-1:-1;;22868:39:0;;::::1;::::0;;;22940:12:::1;::::0;;;::::1;22964:31:::0;;;;;;;:38;;;;::::1;-1:-1:-1::0;22964:38:0::1;::::0;;;23037:12;23018:32;;23037:12;::::1;5283:51:1::0;;22940:12:0;;23018:32:::1;::::0;5256:18:1;23018:32:0::1;5238:102:1::0;22203:115:0;2535:6;;-1:-1:-1;;;;;2535:6:0;1247:10;2535:22;2527:67;;;;-1:-1:-1;;;2527:67:0;;;;;;;:::i;:::-;22280:14:::1;:30:::0;22203:115::o;9297:149::-;2535:6;;-1:-1:-1;;;;;2535:6:0;1247:10;2535:22;2527:67;;;;-1:-1:-1;;;2527:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9366:27:0;::::1;9396:5;9366:27:::0;;;:18:::1;:27;::::0;;;;;;;;:35;;-1:-1:-1;;9366:35:0::1;::::0;;9417:21;;5283:51:1;;;9417:21:0::1;::::0;5256:18:1;9417:21:0::1;5238:102:1::0;21922:107:0;2535:6;;-1:-1:-1;;;;;2535:6:0;1247:10;2535:22;2527:67;;;;-1:-1:-1;;;2527:67:0;;;;;;;:::i;:::-;21995:12:::1;:26:::0;21922:107::o;2626:244::-;2535:6;;-1:-1:-1;;;;;2535:6:0;1247:10;2535:22;2527:67;;;;-1:-1:-1;;;2527:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2715:22:0;::::1;2707:73;;;::::0;-1:-1:-1;;;2707:73:0;;9278:2:1;2707:73:0::1;::::0;::::1;9260:21:1::0;9317:2;9297:18;;;9290:30;9356:34;9336:18;;;9329:62;-1:-1:-1;;;9407:18:1;;;9400:36;9453:19;;2707:73:0::1;9250:228:1::0;2707:73:0::1;2817:6;::::0;;2796:38:::1;::::0;-1:-1:-1;;;;;2796:38:0;;::::1;::::0;2817:6;::::1;::::0;2796:38:::1;::::0;::::1;2845:6;:17:::0;;-1:-1:-1;;;;;;2845:17:0::1;-1:-1:-1::0;;;;;2845:17:0;;;::::1;::::0;;;::::1;::::0;;2626:244::o;15919:222::-;15985:11;;-1:-1:-1;;;;;15985:11:0;1247:10;-1:-1:-1;;;;;15969:27:0;;:59;;;-1:-1:-1;16016:12:0;;-1:-1:-1;;;;;16016:12:0;1247:10;-1:-1:-1;;;;;16000:28:0;;15969:59;15961:68;;;;;;16069:21;16101:32;16069:21;16101:12;:32::i;12164:369::-;-1:-1:-1;;;;;12291:19:0;;12283:68;;;;-1:-1:-1;;;12283:68:0;;13610:2:1;12283:68:0;;;13592:21:1;13649:2;13629:18;;;13622:30;13688:34;13668:18;;;13661:62;-1:-1:-1;;;13739:18:1;;;13732:34;13783:19;;12283:68:0;13582:226:1;12283:68:0;-1:-1:-1;;;;;12370:21:0;;12362:68;;;;-1:-1:-1;;;12362:68:0;;9685:2:1;12362:68:0;;;9667:21:1;9724:2;9704:18;;;9697:30;9763:34;9743:18;;;9736:62;-1:-1:-1;;;9814:18:1;;;9807:32;9856:19;;12362:68:0;9657:224:1;12362:68:0;-1:-1:-1;;;;;12441:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12493:32;;15975:25:1;;;12493:32:0;;15948:18:1;12493:32:0;;;;;;;12164:369;;;:::o;12541:2523::-;-1:-1:-1;;;;;12663:18:0;;12655:68;;;;-1:-1:-1;;;12655:68:0;;12800:2:1;12655:68:0;;;12782:21:1;12839:2;12819:18;;;12812:30;12878:34;12858:18;;;12851:62;-1:-1:-1;;;12929:18:1;;;12922:35;12974:19;;12655:68:0;12772:227:1;12655:68:0;-1:-1:-1;;;;;12742:16:0;;12734:64;;;;-1:-1:-1;;;12734:64:0;;7330:2:1;12734:64:0;;;7312:21:1;7369:2;7349:18;;;7342:30;7408:34;7388:18;;;7381:62;-1:-1:-1;;;7459:18:1;;;7452:33;7502:19;;12734:64:0;7302:225:1;12734:64:0;12826:1;12817:6;:10;12809:64;;;;-1:-1:-1;;;12809:64:0;;12390:2:1;12809:64:0;;;12372:21:1;12429:2;12409:18;;;12402:30;12468:34;12448:18;;;12441:62;-1:-1:-1;;;12519:18:1;;;12512:39;12568:19;;12809:64:0;12362:231:1;12809:64:0;2446:7;2473:6;-1:-1:-1;;;;;12890:15:0;;;2473:6;;12890:15;;;;:32;;-1:-1:-1;2446:7:0;2473:6;-1:-1:-1;;;;;12909:13:0;;;2473:6;;12909:13;;12890:32;12886:1197;;;12991:13;;-1:-1:-1;;;12991:13:0;;;;12986:431;;13045:13;;-1:-1:-1;;;;;13039:19:0;;;13045:13;;13039:19;;;;:53;;-1:-1:-1;13076:15:0;;-1:-1:-1;;;;;13062:30:0;;;13076:15;;13062:30;;13039:53;:81;;;;-1:-1:-1;;;;;;13098:22:0;;;;;;:18;:22;;;;;;;;13096:24;13039:81;13036:381;;;13174:14;;13165:6;13149:13;13159:2;13149:9;:13::i;:::-;:22;;;;:::i;:::-;:39;13141:87;;;;-1:-1:-1;;;13141:87:0;;13206:2:1;13141:87:0;;;13188:21:1;13245:2;13225:18;;;13218:30;13284:34;13264:18;;;13257:62;-1:-1:-1;;;13335:18:1;;;13328:33;13378:19;;13141:87:0;13178:225:1;13141:87:0;13265:12;;13255:6;:22;;13247:63;;;;-1:-1:-1;;;13247:63:0;;8921:2:1;13247:63:0;;;8903:21:1;8960:2;8940:18;;;8933:30;8999;8979:18;;;8972:58;9047:18;;13247:63:0;8893:178:1;13247:63:0;-1:-1:-1;;;;;13338:10:0;;;;;;:4;:10;;;;;;;;13337:11;:24;;;;-1:-1:-1;;;;;;13353:8:0;;;;;;:4;:8;;;;;;;;13352:9;13337:24;13329:72;;;;-1:-1:-1;;;13329:72:0;;10088:2:1;13329:72:0;;;10070:21:1;10127:2;10107:18;;;10100:30;10166:34;10146:18;;;10139:62;-1:-1:-1;;;10217:18:1;;;10210:33;10260:19;;13329:72:0;10060:225:1;13329:72:0;13445:28;13476:24;13494:4;13476:9;:24::i;:::-;13554:19;;13617:12;;13445:55;;-1:-1:-1;13530:43:0;;;;13593:36;;13590:124;;13686:12;;13663:35;;13590:124;13746:7;:18;;;;-1:-1:-1;13758:6:0;;-1:-1:-1;;;13758:6:0;;;;13757:7;13746:18;:43;;;;-1:-1:-1;13776:13:0;;-1:-1:-1;;;;;13768:21:0;;;13776:13;;13768:21;;13746:43;:58;;;;-1:-1:-1;13793:11:0;;-1:-1:-1;;;13793:11:0;;;;13746:58;13742:330;;;13825:38;13842:20;13825:16;:38::i;:::-;13911:21;13955:22;;13951:106;;14002:35;14015:21;14002:12;:35::i;:::-;13742:330;;12886:1197;;;-1:-1:-1;;;;;14167:24:0;;14103:12;14167:24;;;:18;:24;;;;;;14118:4;;14167:24;;;:50;;-1:-1:-1;;;;;;14195:22:0;;;;;;:18;:22;;;;;;;;14167:50;14166:102;;;-1:-1:-1;14231:13:0;;-1:-1:-1;;;;;14223:21:0;;;14231:13;;14223:21;;;;:44;;-1:-1:-1;14254:13:0;;-1:-1:-1;;;;;14248:19:0;;;14254:13;;14248:19;;14223:44;14162:841;;;-1:-1:-1;14295:5:0;14162:841;;;14390:13;;-1:-1:-1;;;;;14382:21:0;;;14390:13;;14382:21;:55;;;;-1:-1:-1;14421:15:0;;-1:-1:-1;;;;;14407:30:0;;;14421:15;;14407:30;;14382:55;14379:172;;;14475:19;;14458:14;:36;14523:12;;14513:7;:22;14379:172;-1:-1:-1;;;;;14609:24:0;;;;;;:18;:24;;;;;;;;14604:167;;14680:12;;14670:6;:22;;14662:89;;;;-1:-1:-1;;;14662:89:0;;11204:2:1;14662:89:0;;;11186:21:1;11243:2;11223:18;;;11216:30;11282:34;11262:18;;;11255:62;-1:-1:-1;;;11333:18:1;;;11326:52;11395:19;;14662:89:0;11176:244:1;14662:89:0;14813:13;;-1:-1:-1;;;;;14807:19:0;;;14813:13;;14807:19;:55;;;;-1:-1:-1;14846:15:0;;-1:-1:-1;;;;;14830:32:0;;;14846:15;;14830:32;;14807:55;14803:175;;;14900:20;;14883:14;:37;14949:13;;14939:7;:23;14803:175;15015:41;15030:4;15036:2;15040:6;15048:7;15015:14;:41::i;3238:224::-;3358:7;3394:12;3386:6;;;;3378:29;;;;-1:-1:-1;;;3378:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3418:9:0;3430:5;3434:1;3430;:5;:::i;:::-;3418:17;3238:224;-1:-1:-1;;;;;3238:224:0:o;11439:323::-;11534:7;11592;;11581;:18;;11559:110;;;;-1:-1:-1;;;11559:110:0;;8510:2:1;11559:110:0;;;8492:21:1;8549:2;8529:18;;;8522:30;8588:34;8568:18;;;8561:62;-1:-1:-1;;;8639:18:1;;;8632:40;8689:19;;11559:110:0;8482:232:1;11559:110:0;11680:19;11702:10;:8;:10::i;:::-;11680:32;-1:-1:-1;11730:24:0;:7;11680:32;11730:11;:24::i;:::-;11723:31;11439:323;-1:-1:-1;;;11439:323:0:o;15074:483::-;7741:6;:13;;-1:-1:-1;;;;7741:13:0;-1:-1:-1;;;7741:13:0;;;15176:16:::1;::::0;;15190:1:::1;15176:16:::0;;;;;::::1;::::0;;-1:-1:-1;;15176:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15176:16:0::1;15152:40;;15221:4;15203;15208:1;15203:7;;;;;;-1:-1:-1::0;;;15203:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;15203:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;15247:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;15247:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;15203:7;;15247:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15237:4;15242:1;15237:7;;;;;;-1:-1:-1::0;;;15237:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;15237:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;15312:15:::1;::::0;15280:62:::1;::::0;15297:4:::1;::::0;15312:15:::1;15330:11:::0;15280:8:::1;:62::i;:::-;15353:15;::::0;:196:::1;::::0;-1:-1:-1;;;15353:196:0;;-1:-1:-1;;;;;15353:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;15434:11;;15353:15:::1;::::0;15476:4;;15503::::1;::::0;15523:15:::1;::::0;15353:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;7777:6:0;:14;;-1:-1:-1;;;;7777:14:0;;;-1:-1:-1;;;;15074:483:0:o;20524:91::-;2535:6;;-1:-1:-1;;;;;2535:6:0;1247:10;2535:22;2527:67;;;;-1:-1:-1;;;2527:67:0;;;;;;;:::i;:::-;20579:13:::1;:20:::0;;-1:-1:-1;;;;20579:20:0::1;-1:-1:-1::0;;;20579:20:0::1;::::0;;20524:91::o;15565:147::-;15622:11;;-1:-1:-1;;;;;15622:11:0;:35;15643:13;:6;15654:1;15643:10;:13::i;:::-;15622:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15668:12:0;;-1:-1:-1;;;;;15668:12:0;:36;15690:13;:6;15701:1;15690:10;:13::i;:::-;15668:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16430:282;16586:7;16581:28;;16595:14;:12;:14::i;:::-;16620:44;16638:6;16646:9;16657:6;16620:17;:44::i;:::-;16680:7;16675:29;;16689:15;12090:22;;12073:14;:39;12133:15;;12123:7;:25;12029:127;19420:166;19462:7;19483:15;19500;19519:19;:17;:19::i;:::-;19482:56;;-1:-1:-1;19482:56:0;-1:-1:-1;19558:20:0;19482:56;;19558:11;:20::i;:::-;19551:27;;;;19420:166;:::o;3724:132::-;3782:7;3809:39;3813:1;3816;3809:39;;;;;;;;;;;;;;;;;:3;:39::i;11770:251::-;11817:14;;:19;:35;;;;-1:-1:-1;11840:7:0;;:12;11817:35;11813:48;;;11770:251::o;11813:48::-;11902:14;;;11877:22;:39;11945:7;;;11927:15;:25;-1:-1:-1;11973:18:0;;;;12002:11;11770:251::o;16720:610::-;16867:15;16897:23;16935:12;16962:23;17000:12;17027:13;17054:19;17065:7;17054:10;:19::i;:::-;-1:-1:-1;;;;;17102:15:0;;;;;;:7;:15;;;;;;16852:221;;-1:-1:-1;16852:221:0;;-1:-1:-1;16852:221:0;;-1:-1:-1;16852:221:0;-1:-1:-1;16852:221:0;-1:-1:-1;16852:221:0;-1:-1:-1;17102:28:0;;16852:221;17102:19;:28::i;:::-;-1:-1:-1;;;;;17084:15:0;;;;;;;:7;:15;;;;;;:46;;;;17162:18;;;;;;;:39;;17185:15;17162:22;:39::i;:::-;-1:-1:-1;;;;;17141:18:0;;;;;;:7;:18;;;;;:60;17212:16;17222:5;17212:9;:16::i;:::-;17239:23;17251:4;17257;17239:11;:23::i;:::-;17295:9;-1:-1:-1;;;;;17278:44:0;17287:6;-1:-1:-1;;;;;17278:44:0;;17306:15;17278:44;;;;15975:25:1;;15963:2;15948:18;;15930:76;17278:44:0;;;;;;;;16720:610;;;;;;;;;:::o;19594:263::-;19692:7;;19645;;;;5728:16;19760:20;19692:7;5728:16;19760:11;:20::i;:::-;19750:7;:30;19746:61;;;-1:-1:-1;;19790:7:0;;;5728:16;;-1:-1:-1;19594:263:0;-1:-1:-1;19594:263:0:o;19746:61::-;19832:7;;19841;;-1:-1:-1;19594:263:0;-1:-1:-1;19594:263:0:o;3864:223::-;3984:7;4019:12;4012:5;4004:28;;;;-1:-1:-1;;;4004:28:0;;;;;;;;:::i;:::-;-1:-1:-1;4043:9:0;4055:5;4059:1;4055;:5;:::i;17749:630::-;17849:7;17871;17893;17915;17937;17959;17995:23;18020:12;18034:13;18064:45;18076:7;18085:14;;18101:7;;18064:11;:45::i;:::-;17994:115;;;;;;18120:19;18142:10;:8;:10::i;:::-;18120:32;;18164:15;18181:23;18206:12;18235:46;18247:7;18256:4;18262:5;18269:11;18235;:46::i;:::-;18163:118;;-1:-1:-1;18163:118:0;-1:-1:-1;18163:118:0;-1:-1:-1;18342:15:0;;-1:-1:-1;18359:4:0;;-1:-1:-1;18365:5:0;;-1:-1:-1;;;;;17749:630:0;;;;;;;:::o;3094:136::-;3152:7;3179:43;3183:1;3186;3179:43;;;;;;;;;;;;;;;;;:3;:43::i;2907:179::-;2965:7;;2997:5;3001:1;2997;:5;:::i;:::-;2985:17;;3026:1;3021;:6;;3013:46;;;;-1:-1:-1;;;3013:46:0;;10492:2:1;3013:46:0;;;10474:21:1;10531:2;10511:18;;;10504:30;10570:29;10550:18;;;10543:57;10617:18;;3013:46:0;10464:177:1;17338:211:0;17391:19;17413:10;:8;:10::i;:::-;17391:32;-1:-1:-1;17434:13:0;17450:22;:5;17391:32;17450:9;:22::i;:::-;17524:4;17508:22;;;;:7;:22;;;;;;17434:38;;-1:-1:-1;17508:33:0;;17434:38;17508:26;:33::i;:::-;17499:4;17483:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;17338:211:0:o;17557:147::-;17635:7;;:17;;17647:4;17635:11;:17::i;:::-;17625:7;:27;17676:10;;:20;;17691:4;17676:14;:20::i;:::-;17663:10;:33;-1:-1:-1;;17557:147:0:o;18387:481::-;18561:7;;;;18655:35;18686:3;18655:26;:7;18667:13;18655:11;:26::i;:::-;:30;;:35::i;:::-;18640:50;-1:-1:-1;18701:13:0;18717:28;18741:3;18717:19;:7;18729:6;18717:11;:19::i;:28::-;18701:44;-1:-1:-1;18756:23:0;18782:28;18701:44;18782:17;:7;18794:4;18782:11;:17::i;:::-;:21;;:28::i;:::-;18756:54;18848:4;;-1:-1:-1;18854:5:0;;-1:-1:-1;18387:481:0;;-1:-1:-1;;;;;18387:481:0:o;18876:536::-;19070:7;;;;19167:24;:7;19179:11;19167;:24::i;:::-;19149:42;-1:-1:-1;19202:12:0;19217:21;:4;19226:11;19217:8;:21::i;:::-;19202:36;-1:-1:-1;19249:13:0;19265:22;:5;19275:11;19265:9;:22::i;:::-;19249:38;-1:-1:-1;19298:23:0;19324:28;19249:38;19324:17;:7;19336:4;19324:11;:17::i;:28::-;19373:7;;;;-1:-1:-1;19399:4:0;;-1:-1:-1;18876:536:0;;-1:-1:-1;;;;;;;18876:536:0:o;3470:246::-;3528:7;3552:6;3548:47;;-1:-1:-1;3582:1:0;3575:8;;3548:47;3605:9;3617:5;3621:1;3617;:5;:::i;:::-;3605:17;-1:-1:-1;3650:1:0;3641:5;3645:1;3605:17;3641:5;:::i;:::-;:10;3633:56;;;;-1:-1:-1;;;3633:56:0;;11627:2:1;3633:56:0;;;11609:21:1;11666:2;11646:18;;;11639:30;11705:34;11685:18;;;11678:62;-1:-1:-1;;;11756:18:1;;;11749:31;11797:19;;3633:56:0;11599:223:1;14:768;68:5;121:3;114:4;106:6;102:17;98:27;88:2;;143:5;136;129:20;88:2;183:6;170:20;209:4;233:60;249:43;289:2;249:43;:::i;:::-;233:60;:::i;:::-;315:3;339:2;334:3;327:15;367:2;362:3;358:12;351:19;;402:2;394:6;390:15;454:3;449:2;443;440:1;436:10;428:6;424:23;420:32;417:41;414:2;;;475:5;468;461:20;414:2;501:5;515:238;529:2;526:1;523:9;515:238;;;600:3;587:17;617:31;642:5;617:31;:::i;:::-;661:18;;699:12;;;;731;;;;547:1;540:9;515:238;;;-1:-1:-1;771:5:1;;78:704;-1:-1:-1;;;;;;;78:704:1:o;787:257::-;846:6;899:2;887:9;878:7;874:23;870:32;867:2;;;920:6;912;905:22;867:2;964:9;951:23;983:31;1008:5;983:31;:::i;1049:261::-;1119:6;1172:2;1160:9;1151:7;1147:23;1143:32;1140:2;;;1193:6;1185;1178:22;1140:2;1230:9;1224:16;1249:31;1274:5;1249:31;:::i;1315:398::-;1383:6;1391;1444:2;1432:9;1423:7;1419:23;1415:32;1412:2;;;1465:6;1457;1450:22;1412:2;1509:9;1496:23;1528:31;1553:5;1528:31;:::i;:::-;1578:5;-1:-1:-1;1635:2:1;1620:18;;1607:32;1648:33;1607:32;1648:33;:::i;:::-;1700:7;1690:17;;;1402:311;;;;;:::o;1718:466::-;1795:6;1803;1811;1864:2;1852:9;1843:7;1839:23;1835:32;1832:2;;;1885:6;1877;1870:22;1832:2;1929:9;1916:23;1948:31;1973:5;1948:31;:::i;:::-;1998:5;-1:-1:-1;2055:2:1;2040:18;;2027:32;2068:33;2027:32;2068:33;:::i;:::-;1822:362;;2120:7;;-1:-1:-1;;;2174:2:1;2159:18;;;;2146:32;;1822:362::o;2189:436::-;2254:6;2262;2315:2;2303:9;2294:7;2290:23;2286:32;2283:2;;;2336:6;2328;2321:22;2283:2;2380:9;2367:23;2399:31;2424:5;2399:31;:::i;:::-;2449:5;-1:-1:-1;2506:2:1;2491:18;;2478:32;2548:15;;2541:23;2529:36;;2519:2;;2584:6;2576;2569:22;2630:325;2698:6;2706;2759:2;2747:9;2738:7;2734:23;2730:32;2727:2;;;2780:6;2772;2765:22;2727:2;2824:9;2811:23;2843:31;2868:5;2843:31;:::i;:::-;2893:5;2945:2;2930:18;;;;2917:32;;-1:-1:-1;;;2717:238:1:o;2960:368::-;3044:6;3097:2;3085:9;3076:7;3072:23;3068:32;3065:2;;;3118:6;3110;3103:22;3065:2;3163:9;3150:23;3196:18;3188:6;3185:30;3182:2;;;3233:6;3225;3218:22;3182:2;3261:61;3314:7;3305:6;3294:9;3290:22;3261:61;:::i;:::-;3251:71;3055:273;-1:-1:-1;;;;3055:273:1:o;3333:1204::-;3451:6;3459;3512:2;3500:9;3491:7;3487:23;3483:32;3480:2;;;3533:6;3525;3518:22;3480:2;3578:9;3565:23;3607:18;3648:2;3640:6;3637:14;3634:2;;;3669:6;3661;3654:22;3634:2;3697:61;3750:7;3741:6;3730:9;3726:22;3697:61;:::i;:::-;3687:71;;3777:2;3767:12;;3832:2;3821:9;3817:18;3804:32;3861:2;3851:8;3848:16;3845:2;;;3882:6;3874;3867:22;3845:2;3910:24;;;-1:-1:-1;3965:4:1;3957:13;;3953:27;-1:-1:-1;3943:2:1;;3999:6;3991;3984:22;3943:2;4040;4027:16;4063:60;4079:43;4119:2;4079:43;:::i;4063:60::-;4145:3;4169:2;4164:3;4157:15;4197:2;4192:3;4188:12;4181:19;;4228:2;4224;4220:11;4276:7;4271:2;4265;4262:1;4258:10;4254:2;4250:19;4246:28;4243:41;4240:2;;;4302:6;4294;4287:22;4240:2;4329:6;4320:15;;4344:163;4358:2;4355:1;4352:9;4344:163;;;4415:17;;4403:30;;4376:1;4369:9;;;;;4453:12;;;;4485;;4344:163;;;4348:3;4526:5;4516:15;;;;;;;3470:1067;;;;;:::o;4542:190::-;4601:6;4654:2;4642:9;4633:7;4629:23;4625:32;4622:2;;;4675:6;4667;4660:22;4622:2;-1:-1:-1;4703:23:1;;4612:120;-1:-1:-1;4612:120:1:o;4737:395::-;4823:6;4831;4839;4847;4900:3;4888:9;4879:7;4875:23;4871:33;4868:2;;;4922:6;4914;4907:22;4868:2;-1:-1:-1;;4950:23:1;;;5020:2;5005:18;;4992:32;;-1:-1:-1;5071:2:1;5056:18;;5043:32;;5122:2;5107:18;5094:32;;-1:-1:-1;4858:274:1;-1:-1:-1;4858:274:1:o;6520:603::-;6632:4;6661:2;6690;6679:9;6672:21;6722:6;6716:13;6765:6;6760:2;6749:9;6745:18;6738:34;6790:4;6803:140;6817:6;6814:1;6811:13;6803:140;;;6912:14;;;6908:23;;6902:30;6878:17;;;6897:2;6874:26;6867:66;6832:10;;6803:140;;;6961:6;6958:1;6955:13;6952:2;;;7031:4;7026:2;7017:6;7006:9;7002:22;6998:31;6991:45;6952:2;-1:-1:-1;7107:2:1;7086:15;-1:-1:-1;;7082:29:1;7067:45;;;;7114:2;7063:54;;6641:482;-1:-1:-1;;;6641:482:1:o;11827:356::-;12029:2;12011:21;;;12048:18;;;12041:30;12107:34;12102:2;12087:18;;12080:62;12174:2;12159:18;;12001:182::o;16011:983::-;16273:4;16321:3;16310:9;16306:19;16352:6;16341:9;16334:25;16378:2;16416:6;16411:2;16400:9;16396:18;16389:34;16459:3;16454:2;16443:9;16439:18;16432:31;16483:6;16518;16512:13;16549:6;16541;16534:22;16587:3;16576:9;16572:19;16565:26;;16626:2;16618:6;16614:15;16600:29;;16647:4;16660:195;16674:6;16671:1;16668:13;16660:195;;;16739:13;;-1:-1:-1;;;;;16735:39:1;16723:52;;16830:15;;;;16795:12;;;;16771:1;16689:9;16660:195;;;-1:-1:-1;;;;;;;16911:32:1;;;;16906:2;16891:18;;16884:60;-1:-1:-1;;;16975:3:1;16960:19;16953:35;16872:3;16282:712;-1:-1:-1;;;16282:712:1:o;17188:275::-;17259:2;17253:9;17324:2;17305:13;;-1:-1:-1;;17301:27:1;17289:40;;17359:18;17344:34;;17380:22;;;17341:62;17338:2;;;17406:18;;:::i;:::-;17442:2;17435:22;17233:230;;-1:-1:-1;17233:230:1:o;17468:183::-;17528:4;17561:18;17553:6;17550:30;17547:2;;;17583:18;;:::i;:::-;-1:-1:-1;17628:1:1;17624:14;17640:4;17620:25;;17537:114::o;17656:128::-;17696:3;17727:1;17723:6;17720:1;17717:13;17714:2;;;17733:18;;:::i;:::-;-1:-1:-1;17769:9:1;;17704:80::o;17789:217::-;17829:1;17855;17845:2;;-1:-1:-1;;;17880:31:1;;17934:4;17931:1;17924:15;17962:4;17887:1;17952:15;17845:2;-1:-1:-1;17991:9:1;;17835:171::o;18011:168::-;18051:7;18117:1;18113;18109:6;18105:14;18102:1;18099:21;18094:1;18087:9;18080:17;18076:45;18073:2;;;18124:18;;:::i;:::-;-1:-1:-1;18164:9:1;;18063:116::o;18184:125::-;18224:4;18252:1;18249;18246:8;18243:2;;;18257:18;;:::i;:::-;-1:-1:-1;18294:9:1;;18233:76::o;18314:135::-;18353:3;-1:-1:-1;;18374:17:1;;18371:2;;;18394:18;;:::i;:::-;-1:-1:-1;18441:1:1;18430:13;;18361:88::o;18454:127::-;18515:10;18510:3;18506:20;18503:1;18496:31;18546:4;18543:1;18536:15;18570:4;18567:1;18560:15;18586:127;18647:10;18642:3;18638:20;18635:1;18628:31;18678:4;18675:1;18668:15;18702:4;18699:1;18692:15;18718:131;-1:-1:-1;;;;;18793:31:1;;18783:42;;18773:2;;18839:1;18836;18829:12

Swarm Source

ipfs://10b4ff3b35e35cbd1349e91415ca8c56d74a6cf2540ed08c843769f2dd3e4811
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.