ETH Price: $3,297.16 (-0.45%)

Token

For the Culture (MEMESHI)
 

Overview

Max Total Supply

1,000,000,000 MEMESHI

Holders

54

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
13,473,594.911266595460626314 MEMESHI

Value
$0.00
0x29a21fb85d83fa8d0e84fd85e6cf9f0eb2388cf0
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
Memeshi

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-28
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.15;

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}


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


}

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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

library Address {

    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }


    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {

            if (returndata.length > 0) {
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    uint256 private _lockTime;

    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 renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

// pragma solidity >=0.5.0;

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}


// pragma solidity >=0.5.0;

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

// pragma solidity >=0.6.2;

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

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}



// pragma solidity >=0.6.2;

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

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

contract Memeshi is Context, IERC20, Ownable {

    using SafeMath for uint256;
    using Address for address;

    event SetMarketingFee(uint256 amount);
    event SetAllFee(uint256 amount);
    event TokenBurn(address indexed from, uint256 value);
    event ShibaBurn(address indexed from, uint256 value);
    event ShibafyMe(address indexed from, uint256 value);
    event NewMessage(string value);

    string private _name = "For the Culture";
    string private _symbol = "MEMESHI";
    uint8 private _decimals = 18;
    uint256 private _totalSupply = 1000000000 * 10**_decimals;

    string public _message;

    address payable public marketingAddress = payable(0xD89d72EB8FfA30d275c610bCB86B9ea40B275573);
    address payable public shibaAddress = payable(0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE);
    address payable public deadAddress = payable(0x000000000000000000000000000000000000dEaD);
    address public messageBringer;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFeesOM;
    mapping (address => bool) private _isExcludedFromMaxBalanceOM;

    uint256 private _totalFeesOM;
    uint256 private _totalFeesOMContract;
    uint256 private _marketingFeesOM;
    uint256 private _burnFeesOM;

    uint256 private _maxBalanceWalletOM;

    bool _decreaseFeeP1Done;
    bool _decreaseFeeP2Done;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool inSwapAndLiquify;

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor () {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
        .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;

        _isExcludedFromFeesOM[owner()] = true;
        _isExcludedFromFeesOM[address(this)] = true;
        _isExcludedFromFeesOM[marketingAddress] = true;

        _isExcludedFromMaxBalanceOM[owner()] = true;
        _isExcludedFromMaxBalanceOM[address(this)] = true;
        _isExcludedFromMaxBalanceOM[uniswapV2Pair] = true;
        _isExcludedFromMaxBalanceOM[marketingAddress] = true;

        _burnFeesOM = 1;
        _marketingFeesOM = 9;
        _totalFeesOM = 10;
        _totalFeesOMContract = 10;

        _maxBalanceWalletOM = 20000000 * 10**_decimals;

        messageBringer = _msgSender();
        _message = "Memeshi - For the Culture";

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

    receive() external payable {}

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

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

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

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

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

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

    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 increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    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 setMarketingAddress(address payable newMarketingAddress) external onlyOwner() {
        marketingAddress = newMarketingAddress;
    }

    function decreaseTax() external onlyOwner() {
        _marketingFeesOM = 3;
        _totalFeesOM = 4;
        _totalFeesOMContract = 4;
        emit SetMarketingFee(_marketingFeesOM);
        emit SetAllFee(_totalFeesOM);
    }

    function changeMessage(string memory messageText) external {
        require(_msgSender() == messageBringer, "unauthorized");
        _message = messageText;
        emit NewMessage(_message);
    }

    function isExcludedFromFees(address account) public view returns(bool) {
        return _isExcludedFromFeesOM[account];
    }

    function excludeFromFees(address account) public onlyOwner {
        _isExcludedFromFeesOM[account] = true;
    }

    function includeInFees(address account) public onlyOwner {
        _isExcludedFromFeesOM[account] = false;
    }

    function isExcludedFromMaxBalance(address account) public view returns(bool) {
        return _isExcludedFromMaxBalanceOM[account];
    }

    function excludeFromMaxBalance(address account) public onlyOwner {
        _isExcludedFromMaxBalanceOM[account] = true;
    }

    function includeInMaxBalance(address account) public onlyOwner {
        _isExcludedFromMaxBalanceOM[account] = false;
    }

    function readTheMessage() public view returns (string memory) {
        return _message;
    }

    function totalFees() public view returns (uint256) {
        return _totalFeesOM;
    }

    function marketingFee() public view returns (uint256) {
        return _marketingFeesOM;
    }

    function maxBalance() public view returns (uint256) {
        return _maxBalanceWalletOM;
    }

    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() &&
            !_isExcludedFromMaxBalanceOM[to]
        ) {
            require(
                balanceOf(to).add(amount) <= _maxBalanceWalletOM,
                "Max Balance is reached."
            );
        }

        if(
            to == uniswapV2Pair &&
            !inSwapAndLiquify &&
            _totalFeesOMContract > 0 &&
            from != owner() &&
            to != owner()
        ) {
            collectFees();
        }

        if(
            !(_isExcludedFromFeesOM[from] || _isExcludedFromFeesOM[to])
            && _totalFeesOM > 0
        ) {

        	  uint256 feesToContract = amount.mul(_totalFeesOMContract).div(100);

        	  amount = amount.sub(feesToContract);

            transferToken(from, address(this), feesToContract);
        }

        transferToken(from, to, amount);
    }

    function collectFees() private lockTheSwap {

        uint256 marketingTokensToSell = balanceOf(address(this)).mul(_marketingFeesOM).div(_totalFeesOMContract);
        uint256 burnTokensToSell = balanceOf(address(this)).mul(_burnFeesOM).div(_totalFeesOMContract);

        // Get collected Marketing Fees
        if (_marketingFeesOM > 0) {
          swapTokensForMarketingToken(marketingTokensToSell);
        }

        // Get collected Burn Fees
        if (_burnFeesOM > 0) {
          swapTokensForBurnToken(burnTokensToSell);
        }
    }

    function swapTokensForMarketingToken(uint256 tokenAmount) private {

        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(marketingAddress),
            block.timestamp
        );
    }

    function swapTokensForBurnToken(uint256 tokenAmount) private {

        address[] memory path = new address[](3);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        path[2] = shibaAddress;

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(deadAddress),
            block.timestamp
        );
        emit ShibaBurn(address(this), tokenAmount);
    }

    function transferToken(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

}

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":"string","name":"value","type":"string"}],"name":"NewMessage","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":"amount","type":"uint256"}],"name":"SetAllFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"SetMarketingFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"ShibaBurn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"ShibafyMe","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"TokenBurn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_message","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"string","name":"messageText","type":"string"}],"name":"changeMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decreaseTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromMaxBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInMaxBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromMaxBalance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"messageBringer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"readTheMessage","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMarketingAddress","type":"address"}],"name":"setMarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shibaAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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"}]

60c0604052600f60809081526e466f72207468652043756c7475726560881b60a052600390620000309082620004e4565b506040805180820190915260078152664d454d4553484960c81b60208201526004906200005e9082620004e4565b506005805460ff191660129081179091556200007c90600a620006c5565b6200008c90633b9aca00620006dd565b600655600880546001600160a01b031990811673d89d72eb8ffa30d275c610bcb86b9ea40b275573179091556009805482167395ad61b0a150d79219dcf64e1e6cc01f0b64c4ce179055600a805490911661dead179055348015620000f057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200018a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b09190620006ff565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002249190620006ff565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000272573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002989190620006ff565b601680546001600160a01b0319166001600160a01b039283161781556015805462010000600160b01b03191662010000858516021790556000805483168152600e60209081526040808320805460ff19908116600190811790925530808652838620805483168417905560088054891687528487208054841685179055865489168752600f9095528386208054831684179055855282852080548216831790559454861684528184208054861682179055915490941682529290208054909116821790556013556009601255600a60108190556011819055600554620003849160ff90911690620006c5565b62000394906301312d00620006dd565b601455600b80546001600160a01b0319163317905560408051808201909152601981527f4d656d65736869202d20466f72207468652043756c74757265000000000000006020820152600790620003ec9082620004e4565b50600654336000818152600c6020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3506200072a565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200046a57607f821691505b6020821081036200048b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004df57600081815260208120601f850160051c81016020861015620004ba5750805b601f850160051c820191505b81811015620004db57828155600101620004c6565b5050505b505050565b81516001600160401b038111156200050057620005006200043f565b620005188162000511845462000455565b8462000491565b602080601f831160018114620005505760008415620005375750858301515b600019600386901b1c1916600185901b178555620004db565b600085815260208120601f198616915b82811015620005815788860151825594840194600190910190840162000560565b5085821015620005a05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000607578160001904821115620005eb57620005eb620005b0565b80851615620005f957918102915b93841c9390800290620005cb565b509250929050565b6000826200062057506001620006bf565b816200062f57506000620006bf565b8160018114620006485760028114620006535762000673565b6001915050620006bf565b60ff841115620006675762000667620005b0565b50506001821b620006bf565b5060208310610133831016604e8410600b841016171562000698575081810a620006bf565b620006a48383620005c6565b8060001904821115620006bb57620006bb620005b0565b0290505b92915050565b6000620006d660ff8416836200060f565b9392505050565b6000816000190483118215151615620006fa57620006fa620005b0565b500290565b6000602082840312156200071257600080fd5b81516001600160a01b0381168114620006d657600080fd5b611e1c806200073a6000396000f3fe6080604052600436106101fd5760003560e01c80635eb10c941161010d57806395d89b41116100a0578063a9059cbb1161006f578063a9059cbb146105de578063d68dff19146105fe578063dd62ed3e14610613578063e57f14e114610659578063f2fde38b1461067957600080fd5b806395d89b4114610569578063988282c61461057e578063a457c2d71461059e578063a5ece941146105be57600080fd5b8063715018a6116100dc578063715018a61461050157806373ad468a146105165780638da5cb5b1461052b578063906e9dd01461054957600080fd5b80635eb10c941461047657806360fd1c4f146104965780636b67c4df146104b657806370a08231146104cb57600080fd5b806323b872dd11610190578063395093511161015f57806339509351146103c857806341e00bb9146103e857806349bd5a5e146103fd5780634fbee1931461041d57806359b0587a1461045657600080fd5b806323b872dd1461034657806327c8f835146103665780632b151cfe14610386578063313ce567146103a657600080fd5b80631694505e116101cc5780631694505e1461029857806316a2f82a146102d657806318160ddd146102f8578063181cec1c1461030d57600080fd5b806306fdde0314610209578063095ea7b3146102345780630adde0eb1461026457806313114a9d1461027957600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5061021e610699565b60405161022b91906117ca565b60405180910390f35b34801561024057600080fd5b5061025461024f366004611837565b61072b565b604051901515815260200161022b565b34801561027057600080fd5b5061021e610742565b34801561028557600080fd5b506010545b60405190815260200161022b565b3480156102a457600080fd5b506015546102be906201000090046001600160a01b031681565b6040516001600160a01b03909116815260200161022b565b3480156102e257600080fd5b506102f66102f1366004611863565b6107d0565b005b34801561030457600080fd5b5060065461028a565b34801561031957600080fd5b50610254610328366004611863565b6001600160a01b03166000908152600f602052604090205460ff1690565b34801561035257600080fd5b50610254610361366004611880565b610824565b34801561037257600080fd5b50600a546102be906001600160a01b031681565b34801561039257600080fd5b506102f66103a1366004611863565b61088d565b3480156103b257600080fd5b5060055460405160ff909116815260200161022b565b3480156103d457600080fd5b506102546103e3366004611837565b6108db565b3480156103f457600080fd5b506102f6610911565b34801561040957600080fd5b506016546102be906001600160a01b031681565b34801561042957600080fd5b50610254610438366004611863565b6001600160a01b03166000908152600e602052604090205460ff1690565b34801561046257600080fd5b506009546102be906001600160a01b031681565b34801561048257600080fd5b506102f6610491366004611863565b6109bc565b3480156104a257600080fd5b506102f66104b13660046118d7565b610a07565b3480156104c257600080fd5b5060125461028a565b3480156104d757600080fd5b5061028a6104e6366004611863565b6001600160a01b03166000908152600c602052604090205490565b34801561050d57600080fd5b506102f6610aa1565b34801561052257600080fd5b5060145461028a565b34801561053757600080fd5b506000546001600160a01b03166102be565b34801561055557600080fd5b506102f6610564366004611863565b610b15565b34801561057557600080fd5b5061021e610b61565b34801561058a57600080fd5b50600b546102be906001600160a01b031681565b3480156105aa57600080fd5b506102546105b9366004611837565b610b70565b3480156105ca57600080fd5b506008546102be906001600160a01b031681565b3480156105ea57600080fd5b506102546105f9366004611837565b610bbf565b34801561060a57600080fd5b5061021e610bcc565b34801561061f57600080fd5b5061028a61062e366004611988565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b34801561066557600080fd5b506102f6610674366004611863565b610bdb565b34801561068557600080fd5b506102f6610694366004611863565b610c29565b6060600380546106a8906119c1565b80601f01602080910402602001604051908101604052809291908181526020018280546106d4906119c1565b80156107215780601f106106f657610100808354040283529160200191610721565b820191906000526020600020905b81548152906001019060200180831161070457829003601f168201915b5050505050905090565b6000610738338484610d13565b5060015b92915050565b6007805461074f906119c1565b80601f016020809104026020016040519081016040528092919081815260200182805461077b906119c1565b80156107c85780601f1061079d576101008083540402835291602001916107c8565b820191906000526020600020905b8154815290600101906020018083116107ab57829003601f168201915b505050505081565b6000546001600160a01b031633146108035760405162461bcd60e51b81526004016107fa906119fb565b60405180910390fd5b6001600160a01b03166000908152600e60205260409020805460ff19169055565b6000610831848484610e38565b610883843361087e85604051806060016040528060288152602001611d9a602891396001600160a01b038a166000908152600d6020908152604080832033845290915290205491906110cc565b610d13565b5060019392505050565b6000546001600160a01b031633146108b75760405162461bcd60e51b81526004016107fa906119fb565b6001600160a01b03166000908152600f60205260409020805460ff19166001179055565b336000818152600d602090815260408083206001600160a01b0387168452909152812054909161073891859061087e9086611106565b6000546001600160a01b0316331461093b5760405162461bcd60e51b81526004016107fa906119fb565b60036012819055600460108190556011556040519081527f11792e2e76dd20b61339ffd931c063e7b4f828123d6d257c8d0668279e69c7669060200160405180910390a17fb65a948b20b143e3d290210e7db51e7d5df4f88fabfa8db91af905c9dda19f166010546040516109b291815260200190565b60405180910390a1565b6000546001600160a01b031633146109e65760405162461bcd60e51b81526004016107fa906119fb565b6001600160a01b03166000908152600f60205260409020805460ff19169055565b600b546001600160a01b0316336001600160a01b031614610a595760405162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b60448201526064016107fa565b6007610a658282611a76565b507f476e04c786e60f629af918e59f7b2d948f3b488bf1258cab1bf3a4351521b46f6007604051610a969190611b36565b60405180910390a150565b6000546001600160a01b03163314610acb5760405162461bcd60e51b81526004016107fa906119fb565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610b3f5760405162461bcd60e51b81526004016107fa906119fb565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6060600480546106a8906119c1565b6000610738338461087e85604051806060016040528060258152602001611dc260259139336000908152600d602090815260408083206001600160a01b038d16845290915290205491906110cc565b6000610738338484610e38565b6060600780546106a8906119c1565b6000546001600160a01b03163314610c055760405162461bcd60e51b81526004016107fa906119fb565b6001600160a01b03166000908152600e60205260409020805460ff19166001179055565b6000546001600160a01b03163314610c535760405162461bcd60e51b81526004016107fa906119fb565b6001600160a01b038116610cb85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107fa565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d755760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107fa565b6001600160a01b038216610dd65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107fa565b6001600160a01b038381166000818152600d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610e5e5760405162461bcd60e51b81526004016107fa90611bc1565b6001600160a01b038216610e845760405162461bcd60e51b81526004016107fa90611c06565b60008111610ee65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107fa565b6000546001600160a01b03848116911614801590610f1257506000546001600160a01b03838116911614155b8015610f3757506001600160a01b0382166000908152600f602052604090205460ff16155b15610fb657601454610f6882610f62856001600160a01b03166000908152600c602052604090205490565b90611106565b1115610fb65760405162461bcd60e51b815260206004820152601760248201527f4d61782042616c616e636520697320726561636865642e00000000000000000060448201526064016107fa565b6016546001600160a01b038381169116148015610fdd5750601654600160a01b900460ff16155b8015610feb57506000601154115b801561100557506000546001600160a01b03848116911614155b801561101f57506000546001600160a01b03838116911614155b1561102c5761102c61116c565b6001600160a01b0383166000908152600e602052604090205460ff168061106b57506001600160a01b0382166000908152600e602052604090205460ff165b15801561107a57506000601054115b156110bc5760006110a1606461109b6011548561121a90919063ffffffff16565b9061129c565b90506110ad82826112de565b91506110ba843083611320565b505b6110c7838383611320565b505050565b600081848411156110f05760405162461bcd60e51b81526004016107fa91906117ca565b5060006110fd8486611c5f565b95945050505050565b6000806111138385611c76565b9050838110156111655760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107fa565b9392505050565b6016805460ff60a01b1916600160a01b1790556011546012546000916111b59161109b906111af306001600160a01b03166000908152600c602052604090205490565b9061121a565b905060006111e460115461109b6013546111af306001600160a01b03166000908152600c602052604090205490565b601254909150156111f8576111f88261142c565b6013541561120957611209816115b0565b50506016805460ff60a01b19169055565b60008260000361122c5750600061073c565b60006112388385611c8e565b9050826112458583611cad565b146111655760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107fa565b600061116583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061179c565b600061116583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110cc565b6001600160a01b0383166113465760405162461bcd60e51b81526004016107fa90611bc1565b6001600160a01b03821661136c5760405162461bcd60e51b81526004016107fa90611c06565b6113a981604051806060016040528060268152602001611d74602691396001600160a01b0386166000908152600c602052604090205491906110cc565b6001600160a01b038085166000908152600c602052604080822093909355908416815220546113d89082611106565b6001600160a01b038084166000818152600c602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e2b9085815260200190565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061146157611461611ccf565b60200260200101906001600160a01b031690816001600160a01b031681525050601560029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f89190611ce5565b8160018151811061150b5761150b611ccf565b6001600160a01b0392831660209182029290920101526015546115379130916201000090041684610d13565b60155460085460405163791ac94760e01b81526001600160a01b036201000090930483169263791ac9479261157a92879260009288929116904290600401611d02565b600060405180830381600087803b15801561159457600080fd5b505af11580156115a8573d6000803e3d6000fd5b505050505050565b604080516003808252608082019092526000916020820160608036833701905050905030816000815181106115e7576115e7611ccf565b60200260200101906001600160a01b031690816001600160a01b031681525050601560029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561165a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167e9190611ce5565b8160018151811061169157611691611ccf565b6001600160a01b0392831660209182029290920101526009548251911690829060029081106116c2576116c2611ccf565b6001600160a01b0392831660209182029290920101526015546116ee9130916201000090041684610d13565b601554600a54604051635c11d79560e01b81526001600160a01b0362010000909304831692635c11d7959261173192879260009288929116904290600401611d02565b600060405180830381600087803b15801561174b57600080fd5b505af115801561175f573d6000803e3d6000fd5b50506040518481523092507f0166bcf9b066fca3be48788f295ca6c9caadb3e717f5c0019e4d36cc4e2113ea915060200160405180910390a25050565b600081836117bd5760405162461bcd60e51b81526004016107fa91906117ca565b5060006110fd8486611cad565b600060208083528351808285015260005b818110156117f7578581018301518582016040015282016117db565b81811115611809576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461183457600080fd5b50565b6000806040838503121561184a57600080fd5b82356118558161181f565b946020939093013593505050565b60006020828403121561187557600080fd5b81356111658161181f565b60008060006060848603121561189557600080fd5b83356118a08161181f565b925060208401356118b08161181f565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156118e957600080fd5b813567ffffffffffffffff8082111561190157600080fd5b818401915084601f83011261191557600080fd5b813581811115611927576119276118c1565b604051601f8201601f19908116603f0116810190838211818310171561194f5761194f6118c1565b8160405282815287602084870101111561196857600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000806040838503121561199b57600080fd5b82356119a68161181f565b915060208301356119b68161181f565b809150509250929050565b600181811c908216806119d557607f821691505b6020821081036119f557634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b601f8211156110c757600081815260208120601f850160051c81016020861015611a575750805b601f850160051c820191505b818110156115a857828155600101611a63565b815167ffffffffffffffff811115611a9057611a906118c1565b611aa481611a9e84546119c1565b84611a30565b602080601f831160018114611ad95760008415611ac15750858301515b600019600386901b1c1916600185901b1785556115a8565b600085815260208120601f198616915b82811015611b0857888601518255948401946001909101908401611ae9565b5085821015611b265787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602080835260008454611b4a816119c1565b80848701526040600180841660008114611b6b5760018114611b8557611bb3565b60ff1985168984015283151560051b890183019550611bb3565b896000528660002060005b85811015611bab5781548b8201860152908301908801611b90565b8a0184019650505b509398975050505050505050565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600082821015611c7157611c71611c49565b500390565b60008219821115611c8957611c89611c49565b500190565b6000816000190483118215151615611ca857611ca8611c49565b500290565b600082611cca57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611cf757600080fd5b81516111658161181f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d525784516001600160a01b031683529383019391830191600101611d2d565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220509aab8dcc38ab8036564e937c8cfd718d407a3074457317b9d2682619d43cae64736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106101fd5760003560e01c80635eb10c941161010d57806395d89b41116100a0578063a9059cbb1161006f578063a9059cbb146105de578063d68dff19146105fe578063dd62ed3e14610613578063e57f14e114610659578063f2fde38b1461067957600080fd5b806395d89b4114610569578063988282c61461057e578063a457c2d71461059e578063a5ece941146105be57600080fd5b8063715018a6116100dc578063715018a61461050157806373ad468a146105165780638da5cb5b1461052b578063906e9dd01461054957600080fd5b80635eb10c941461047657806360fd1c4f146104965780636b67c4df146104b657806370a08231146104cb57600080fd5b806323b872dd11610190578063395093511161015f57806339509351146103c857806341e00bb9146103e857806349bd5a5e146103fd5780634fbee1931461041d57806359b0587a1461045657600080fd5b806323b872dd1461034657806327c8f835146103665780632b151cfe14610386578063313ce567146103a657600080fd5b80631694505e116101cc5780631694505e1461029857806316a2f82a146102d657806318160ddd146102f8578063181cec1c1461030d57600080fd5b806306fdde0314610209578063095ea7b3146102345780630adde0eb1461026457806313114a9d1461027957600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5061021e610699565b60405161022b91906117ca565b60405180910390f35b34801561024057600080fd5b5061025461024f366004611837565b61072b565b604051901515815260200161022b565b34801561027057600080fd5b5061021e610742565b34801561028557600080fd5b506010545b60405190815260200161022b565b3480156102a457600080fd5b506015546102be906201000090046001600160a01b031681565b6040516001600160a01b03909116815260200161022b565b3480156102e257600080fd5b506102f66102f1366004611863565b6107d0565b005b34801561030457600080fd5b5060065461028a565b34801561031957600080fd5b50610254610328366004611863565b6001600160a01b03166000908152600f602052604090205460ff1690565b34801561035257600080fd5b50610254610361366004611880565b610824565b34801561037257600080fd5b50600a546102be906001600160a01b031681565b34801561039257600080fd5b506102f66103a1366004611863565b61088d565b3480156103b257600080fd5b5060055460405160ff909116815260200161022b565b3480156103d457600080fd5b506102546103e3366004611837565b6108db565b3480156103f457600080fd5b506102f6610911565b34801561040957600080fd5b506016546102be906001600160a01b031681565b34801561042957600080fd5b50610254610438366004611863565b6001600160a01b03166000908152600e602052604090205460ff1690565b34801561046257600080fd5b506009546102be906001600160a01b031681565b34801561048257600080fd5b506102f6610491366004611863565b6109bc565b3480156104a257600080fd5b506102f66104b13660046118d7565b610a07565b3480156104c257600080fd5b5060125461028a565b3480156104d757600080fd5b5061028a6104e6366004611863565b6001600160a01b03166000908152600c602052604090205490565b34801561050d57600080fd5b506102f6610aa1565b34801561052257600080fd5b5060145461028a565b34801561053757600080fd5b506000546001600160a01b03166102be565b34801561055557600080fd5b506102f6610564366004611863565b610b15565b34801561057557600080fd5b5061021e610b61565b34801561058a57600080fd5b50600b546102be906001600160a01b031681565b3480156105aa57600080fd5b506102546105b9366004611837565b610b70565b3480156105ca57600080fd5b506008546102be906001600160a01b031681565b3480156105ea57600080fd5b506102546105f9366004611837565b610bbf565b34801561060a57600080fd5b5061021e610bcc565b34801561061f57600080fd5b5061028a61062e366004611988565b6001600160a01b039182166000908152600d6020908152604080832093909416825291909152205490565b34801561066557600080fd5b506102f6610674366004611863565b610bdb565b34801561068557600080fd5b506102f6610694366004611863565b610c29565b6060600380546106a8906119c1565b80601f01602080910402602001604051908101604052809291908181526020018280546106d4906119c1565b80156107215780601f106106f657610100808354040283529160200191610721565b820191906000526020600020905b81548152906001019060200180831161070457829003601f168201915b5050505050905090565b6000610738338484610d13565b5060015b92915050565b6007805461074f906119c1565b80601f016020809104026020016040519081016040528092919081815260200182805461077b906119c1565b80156107c85780601f1061079d576101008083540402835291602001916107c8565b820191906000526020600020905b8154815290600101906020018083116107ab57829003601f168201915b505050505081565b6000546001600160a01b031633146108035760405162461bcd60e51b81526004016107fa906119fb565b60405180910390fd5b6001600160a01b03166000908152600e60205260409020805460ff19169055565b6000610831848484610e38565b610883843361087e85604051806060016040528060288152602001611d9a602891396001600160a01b038a166000908152600d6020908152604080832033845290915290205491906110cc565b610d13565b5060019392505050565b6000546001600160a01b031633146108b75760405162461bcd60e51b81526004016107fa906119fb565b6001600160a01b03166000908152600f60205260409020805460ff19166001179055565b336000818152600d602090815260408083206001600160a01b0387168452909152812054909161073891859061087e9086611106565b6000546001600160a01b0316331461093b5760405162461bcd60e51b81526004016107fa906119fb565b60036012819055600460108190556011556040519081527f11792e2e76dd20b61339ffd931c063e7b4f828123d6d257c8d0668279e69c7669060200160405180910390a17fb65a948b20b143e3d290210e7db51e7d5df4f88fabfa8db91af905c9dda19f166010546040516109b291815260200190565b60405180910390a1565b6000546001600160a01b031633146109e65760405162461bcd60e51b81526004016107fa906119fb565b6001600160a01b03166000908152600f60205260409020805460ff19169055565b600b546001600160a01b0316336001600160a01b031614610a595760405162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b60448201526064016107fa565b6007610a658282611a76565b507f476e04c786e60f629af918e59f7b2d948f3b488bf1258cab1bf3a4351521b46f6007604051610a969190611b36565b60405180910390a150565b6000546001600160a01b03163314610acb5760405162461bcd60e51b81526004016107fa906119fb565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610b3f5760405162461bcd60e51b81526004016107fa906119fb565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6060600480546106a8906119c1565b6000610738338461087e85604051806060016040528060258152602001611dc260259139336000908152600d602090815260408083206001600160a01b038d16845290915290205491906110cc565b6000610738338484610e38565b6060600780546106a8906119c1565b6000546001600160a01b03163314610c055760405162461bcd60e51b81526004016107fa906119fb565b6001600160a01b03166000908152600e60205260409020805460ff19166001179055565b6000546001600160a01b03163314610c535760405162461bcd60e51b81526004016107fa906119fb565b6001600160a01b038116610cb85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016107fa565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610d755760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016107fa565b6001600160a01b038216610dd65760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016107fa565b6001600160a01b038381166000818152600d602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610e5e5760405162461bcd60e51b81526004016107fa90611bc1565b6001600160a01b038216610e845760405162461bcd60e51b81526004016107fa90611c06565b60008111610ee65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016107fa565b6000546001600160a01b03848116911614801590610f1257506000546001600160a01b03838116911614155b8015610f3757506001600160a01b0382166000908152600f602052604090205460ff16155b15610fb657601454610f6882610f62856001600160a01b03166000908152600c602052604090205490565b90611106565b1115610fb65760405162461bcd60e51b815260206004820152601760248201527f4d61782042616c616e636520697320726561636865642e00000000000000000060448201526064016107fa565b6016546001600160a01b038381169116148015610fdd5750601654600160a01b900460ff16155b8015610feb57506000601154115b801561100557506000546001600160a01b03848116911614155b801561101f57506000546001600160a01b03838116911614155b1561102c5761102c61116c565b6001600160a01b0383166000908152600e602052604090205460ff168061106b57506001600160a01b0382166000908152600e602052604090205460ff165b15801561107a57506000601054115b156110bc5760006110a1606461109b6011548561121a90919063ffffffff16565b9061129c565b90506110ad82826112de565b91506110ba843083611320565b505b6110c7838383611320565b505050565b600081848411156110f05760405162461bcd60e51b81526004016107fa91906117ca565b5060006110fd8486611c5f565b95945050505050565b6000806111138385611c76565b9050838110156111655760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107fa565b9392505050565b6016805460ff60a01b1916600160a01b1790556011546012546000916111b59161109b906111af306001600160a01b03166000908152600c602052604090205490565b9061121a565b905060006111e460115461109b6013546111af306001600160a01b03166000908152600c602052604090205490565b601254909150156111f8576111f88261142c565b6013541561120957611209816115b0565b50506016805460ff60a01b19169055565b60008260000361122c5750600061073c565b60006112388385611c8e565b9050826112458583611cad565b146111655760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107fa565b600061116583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061179c565b600061116583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110cc565b6001600160a01b0383166113465760405162461bcd60e51b81526004016107fa90611bc1565b6001600160a01b03821661136c5760405162461bcd60e51b81526004016107fa90611c06565b6113a981604051806060016040528060268152602001611d74602691396001600160a01b0386166000908152600c602052604090205491906110cc565b6001600160a01b038085166000908152600c602052604080822093909355908416815220546113d89082611106565b6001600160a01b038084166000818152600c602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e2b9085815260200190565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061146157611461611ccf565b60200260200101906001600160a01b031690816001600160a01b031681525050601560029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f89190611ce5565b8160018151811061150b5761150b611ccf565b6001600160a01b0392831660209182029290920101526015546115379130916201000090041684610d13565b60155460085460405163791ac94760e01b81526001600160a01b036201000090930483169263791ac9479261157a92879260009288929116904290600401611d02565b600060405180830381600087803b15801561159457600080fd5b505af11580156115a8573d6000803e3d6000fd5b505050505050565b604080516003808252608082019092526000916020820160608036833701905050905030816000815181106115e7576115e7611ccf565b60200260200101906001600160a01b031690816001600160a01b031681525050601560029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561165a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167e9190611ce5565b8160018151811061169157611691611ccf565b6001600160a01b0392831660209182029290920101526009548251911690829060029081106116c2576116c2611ccf565b6001600160a01b0392831660209182029290920101526015546116ee9130916201000090041684610d13565b601554600a54604051635c11d79560e01b81526001600160a01b0362010000909304831692635c11d7959261173192879260009288929116904290600401611d02565b600060405180830381600087803b15801561174b57600080fd5b505af115801561175f573d6000803e3d6000fd5b50506040518481523092507f0166bcf9b066fca3be48788f295ca6c9caadb3e717f5c0019e4d36cc4e2113ea915060200160405180910390a25050565b600081836117bd5760405162461bcd60e51b81526004016107fa91906117ca565b5060006110fd8486611cad565b600060208083528351808285015260005b818110156117f7578581018301518582016040015282016117db565b81811115611809576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461183457600080fd5b50565b6000806040838503121561184a57600080fd5b82356118558161181f565b946020939093013593505050565b60006020828403121561187557600080fd5b81356111658161181f565b60008060006060848603121561189557600080fd5b83356118a08161181f565b925060208401356118b08161181f565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156118e957600080fd5b813567ffffffffffffffff8082111561190157600080fd5b818401915084601f83011261191557600080fd5b813581811115611927576119276118c1565b604051601f8201601f19908116603f0116810190838211818310171561194f5761194f6118c1565b8160405282815287602084870101111561196857600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000806040838503121561199b57600080fd5b82356119a68161181f565b915060208301356119b68161181f565b809150509250929050565b600181811c908216806119d557607f821691505b6020821081036119f557634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b601f8211156110c757600081815260208120601f850160051c81016020861015611a575750805b601f850160051c820191505b818110156115a857828155600101611a63565b815167ffffffffffffffff811115611a9057611a906118c1565b611aa481611a9e84546119c1565b84611a30565b602080601f831160018114611ad95760008415611ac15750858301515b600019600386901b1c1916600185901b1785556115a8565b600085815260208120601f198616915b82811015611b0857888601518255948401946001909101908401611ae9565b5085821015611b265787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602080835260008454611b4a816119c1565b80848701526040600180841660008114611b6b5760018114611b8557611bb3565b60ff1985168984015283151560051b890183019550611bb3565b896000528660002060005b85811015611bab5781548b8201860152908301908801611b90565b8a0184019650505b509398975050505050505050565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600082821015611c7157611c71611c49565b500390565b60008219821115611c8957611c89611c49565b500190565b6000816000190483118215151615611ca857611ca8611c49565b500290565b600082611cca57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611cf757600080fd5b81516111658161181f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d525784516001600160a01b031683529383019391830191600101611d2d565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220509aab8dcc38ab8036564e937c8cfd718d407a3074457317b9d2682619d43cae64736f6c634300080f0033

Deployed Bytecode Sourcemap

14211:10265:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17079:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17917:161;;;;;;;;;;-1:-1:-1;17917:161:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;17917:161:0;1072:187:1;14819:22:0;;;;;;;;;;;;;:::i;20758:89::-;;;;;;;;;;-1:-1:-1;20827:12:0;;20758:89;;;1410:25:1;;;1398:2;1383:18;20758:89:0;1264:177:1;15699:41:0;;;;;;;;;;-1:-1:-1;15699:41:0;;;;;;;-1:-1:-1;;;;;15699:41:0;;;;;;-1:-1:-1;;;;;1637:32:1;;;1619:51;;1607:2;1592:18;15699:41:0;1446:230:1;20116:114:0;;;;;;;;;;-1:-1:-1;20116:114:0;;;;;:::i;:::-;;:::i;:::-;;17356:100;;;;;;;;;;-1:-1:-1;17436:12:0;;17356:100;;20238:139;;;;;;;;;;-1:-1:-1;20238:139:0;;;;;:::i;:::-;-1:-1:-1;;;;;20333:36:0;20309:4;20333:36;;;:27;:36;;;;;;;;;20238:139;18086:313;;;;;;;;;;-1:-1:-1;18086:313:0;;;;;:::i;:::-;;:::i;15046:88::-;;;;;;;;;;-1:-1:-1;15046:88:0;;;;-1:-1:-1;;;;;15046:88:0;;;20385:127;;;;;;;;;;-1:-1:-1;20385:127:0;;;;;:::i;:::-;;:::i;17265:83::-;;;;;;;;;;-1:-1:-1;17331:9:0;;17265:83;;17331:9;;;;2760:36:1;;2748:2;2733:18;17265:83:0;2618:184:1;18407:218:0;;;;;;;;;;-1:-1:-1;18407:218:0;;;;;:::i;:::-;;:::i;19407:233::-;;;;;;;;;;;;;:::i;15747:28::-;;;;;;;;;;-1:-1:-1;15747:28:0;;;;-1:-1:-1;;;;;15747:28:0;;;19858:127;;;;;;;;;;-1:-1:-1;19858:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;19947:30:0;19923:4;19947:30;;;:21;:30;;;;;;;;;19858:127;14950:89;;;;;;;;;;-1:-1:-1;14950:89:0;;;;-1:-1:-1;;;;;14950:89:0;;;20520:126;;;;;;;;;;-1:-1:-1;20520:126:0;;;;;:::i;:::-;;:::i;19648:202::-;;;;;;;;;;-1:-1:-1;19648:202:0;;;;;:::i;:::-;;:::i;20855:96::-;;;;;;;;;;-1:-1:-1;20927:16:0;;20855:96;;17464:119;;;;;;;;;;-1:-1:-1;17464:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;17557:18:0;17530:7;17557:18;;;:9;:18;;;;;;;17464:119;6013:148;;;;;;;;;;;;;:::i;20959:97::-;;;;;;;;;;-1:-1:-1;21029:19:0;;20959:97;;5799:79;;;;;;;;;;-1:-1:-1;5837:7:0;5864:6;-1:-1:-1;;;;;5864:6:0;5799:79;;19255:144;;;;;;;;;;-1:-1:-1;19255:144:0;;;;;:::i;:::-;;:::i;17170:87::-;;;;;;;;;;;;;:::i;15141:29::-;;;;;;;;;;-1:-1:-1;15141:29:0;;;;-1:-1:-1;;;;;15141:29:0;;;18633:269;;;;;;;;;;-1:-1:-1;18633:269:0;;;;;:::i;:::-;;:::i;14850:93::-;;;;;;;;;;-1:-1:-1;14850:93:0;;;;-1:-1:-1;;;;;14850:93:0;;;17591:167;;;;;;;;;;-1:-1:-1;17591:167:0;;;;;:::i;:::-;;:::i;20654:96::-;;;;;;;;;;;;;:::i;17766:143::-;;;;;;;;;;-1:-1:-1;17766:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;17874:18:0;;;17847:7;17874:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;17766:143;19993:115;;;;;;;;;;-1:-1:-1;19993:115:0;;;;;:::i;:::-;;:::i;6169:244::-;;;;;;;;;;-1:-1:-1;6169:244:0;;;;;:::i;:::-;;:::i;17079:83::-;17116:13;17149:5;17142:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17079:83;:::o;17917:161::-;17992:4;18009:39;199:10;18032:7;18041:6;18009:8;:39::i;:::-;-1:-1:-1;18066:4:0;17917:161;;;;;:::o;14819:22::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;20116:114::-;5926:6;;-1:-1:-1;;;;;5926:6:0;199:10;5926:22;5918:67;;;;-1:-1:-1;;;5918:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;20184:30:0::1;20217:5;20184:30:::0;;;:21:::1;:30;::::0;;;;:38;;-1:-1:-1;;20184:38:0::1;::::0;;20116:114::o;18086:313::-;18184:4;18201:36;18211:6;18219:9;18230:6;18201:9;:36::i;:::-;18248:121;18257:6;199:10;18279:89;18317:6;18279:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18279:19:0;;;;;;:11;:19;;;;;;;;199:10;18279:33;;;;;;;;;;:37;:89::i;:::-;18248:8;:121::i;:::-;-1:-1:-1;18387:4:0;18086:313;;;;;:::o;20385:127::-;5926:6;;-1:-1:-1;;;;;5926:6:0;199:10;5926:22;5918:67;;;;-1:-1:-1;;;5918:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20461:36:0::1;;::::0;;;:27:::1;:36;::::0;;;;:43;;-1:-1:-1;;20461:43:0::1;20500:4;20461:43;::::0;;20385:127::o;18407:218::-;199:10;18495:4;18544:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18544:34:0;;;;;;;;;;18495:4;;18512:83;;18535:7;;18544:50;;18583:10;18544:38;:50::i;19407:233::-;5926:6;;-1:-1:-1;;;;;5926:6:0;199:10;5926:22;5918:67;;;;-1:-1:-1;;;5918:67:0;;;;;;;:::i;:::-;19481:1:::1;19462:16;:20:::0;;;19508:1:::1;19493:12;:16:::0;;;19520:20:::1;:24:::0;19560:33:::1;::::0;1410:25:1;;;19560:33:0::1;::::0;1398:2:1;1383:18;19560:33:0::1;;;;;;;19609:23;19619:12;;19609:23;;;;1410:25:1::0;;1398:2;1383:18;;1264:177;19609:23:0::1;;;;;;;;19407:233::o:0;20520:126::-;5926:6;;-1:-1:-1;;;;;5926:6:0;199:10;5926:22;5918:67;;;;-1:-1:-1;;;5918:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20594:36:0::1;20633:5;20594:36:::0;;;:27:::1;:36;::::0;;;;:44;;-1:-1:-1;;20594:44:0::1;::::0;;20520:126::o;19648:202::-;19742:14;;-1:-1:-1;;;;;19742:14:0;199:10;-1:-1:-1;;;;;19726:30:0;;19718:55;;;;-1:-1:-1;;;19718:55:0;;5675:2:1;19718:55:0;;;5657:21:1;5714:2;5694:18;;;5687:30;-1:-1:-1;;;5733:18:1;;;5726:42;5785:18;;19718:55:0;5473:336:1;19718:55:0;19784:8;:22;19795:11;19784:8;:22;:::i;:::-;;19822:20;19833:8;19822:20;;;;;;:::i;:::-;;;;;;;;19648:202;:::o;6013:148::-;5926:6;;-1:-1:-1;;;;;5926:6:0;199:10;5926:22;5918:67;;;;-1:-1:-1;;;5918:67:0;;;;;;;:::i;:::-;6120:1:::1;6104:6:::0;;6083:40:::1;::::0;-1:-1:-1;;;;;6104:6:0;;::::1;::::0;6083:40:::1;::::0;6120:1;;6083:40:::1;6151:1;6134:19:::0;;-1:-1:-1;;;;;;6134:19:0::1;::::0;;6013:148::o;19255:144::-;5926:6;;-1:-1:-1;;;;;5926:6:0;199:10;5926:22;5918:67;;;;-1:-1:-1;;;5918:67:0;;;;;;;:::i;:::-;19353:16:::1;:38:::0;;-1:-1:-1;;;;;;19353:38:0::1;-1:-1:-1::0;;;;;19353:38:0;;;::::1;::::0;;;::::1;::::0;;19255:144::o;17170:87::-;17209:13;17242:7;17235:14;;;;;:::i;18633:269::-;18726:4;18743:129;199:10;18766:7;18775:96;18814:15;18775:96;;;;;;;;;;;;;;;;;199:10;18775:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;18775:34:0;;;;;;;;;;;;:38;:96::i;17591:167::-;17669:4;17686:42;199:10;17710:9;17721:6;17686:9;:42::i;20654:96::-;20701:13;20734:8;20727:15;;;;;:::i;19993:115::-;5926:6;;-1:-1:-1;;;;;5926:6:0;199:10;5926:22;5918:67;;;;-1:-1:-1;;;5918:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20063:30:0::1;;::::0;;;:21:::1;:30;::::0;;;;:37;;-1:-1:-1;;20063:37:0::1;20096:4;20063:37;::::0;;19993:115::o;6169:244::-;5926:6;;-1:-1:-1;;;;;5926:6:0;199:10;5926:22;5918:67;;;;-1:-1:-1;;;5918:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6258:22:0;::::1;6250:73;;;::::0;-1:-1:-1;;;6250:73:0;;9188:2:1;6250:73:0::1;::::0;::::1;9170:21:1::0;9227:2;9207:18;;;9200:30;9266:34;9246:18;;;9239:62;-1:-1:-1;;;9317:18:1;;;9310:36;9363:19;;6250:73:0::1;8986:402:1::0;6250:73:0::1;6360:6;::::0;;6339:38:::1;::::0;-1:-1:-1;;;;;6339:38:0;;::::1;::::0;6360:6;::::1;::::0;6339:38:::1;::::0;::::1;6388:6;:17:::0;;-1:-1:-1;;;;;;6388:17:0::1;-1:-1:-1::0;;;;;6388:17:0;;;::::1;::::0;;;::::1;::::0;;6169:244::o;18910:337::-;-1:-1:-1;;;;;19003:19:0;;18995:68;;;;-1:-1:-1;;;18995:68:0;;9595:2:1;18995:68:0;;;9577:21:1;9634:2;9614:18;;;9607:30;9673:34;9653:18;;;9646:62;-1:-1:-1;;;9724:18:1;;;9717:34;9768:19;;18995:68:0;9393:400:1;18995:68:0;-1:-1:-1;;;;;19082:21:0;;19074:68;;;;-1:-1:-1;;;19074:68:0;;10000:2:1;19074:68:0;;;9982:21:1;10039:2;10019:18;;;10012:30;10078:34;10058:18;;;10051:62;-1:-1:-1;;;10129:18:1;;;10122:32;10171:19;;19074:68:0;9798:398:1;19074:68:0;-1:-1:-1;;;;;19155:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;19207:32;;1410:25:1;;;19207:32:0;;1383:18:1;19207:32:0;;;;;;;;18910:337;;;:::o;21064:1261::-;-1:-1:-1;;;;;21186:18:0;;21178:68;;;;-1:-1:-1;;;21178:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;21265:16:0;;21257:64;;;;-1:-1:-1;;;21257:64:0;;;;;;;:::i;:::-;21349:1;21340:6;:10;21332:64;;;;-1:-1:-1;;;21332:64:0;;11213:2:1;21332:64:0;;;11195:21:1;11252:2;11232:18;;;11225:30;11291:34;11271:18;;;11264:62;-1:-1:-1;;;11342:18:1;;;11335:39;11391:19;;21332:64:0;11011:405:1;21332:64:0;5837:7;5864:6;-1:-1:-1;;;;;21426:15:0;;;5864:6;;21426:15;;;;:45;;-1:-1:-1;5837:7:0;5864:6;-1:-1:-1;;;;;21458:13:0;;;5864:6;;21458:13;;21426:45;:94;;;;-1:-1:-1;;;;;;21489:31:0;;;;;;:27;:31;;;;;;;;21488:32;21426:94;21409:283;;;21602:19;;21573:25;21591:6;21573:13;21583:2;-1:-1:-1;;;;;17557:18:0;17530:7;17557:18;;;:9;:18;;;;;;;17464:119;21573:13;:17;;:25::i;:::-;:48;;21547:133;;;;-1:-1:-1;;;21547:133:0;;11623:2:1;21547:133:0;;;11605:21:1;11662:2;11642:18;;;11635:30;11701:25;11681:18;;;11674:53;11744:18;;21547:133:0;11421:347:1;21547:133:0;21727:13;;-1:-1:-1;;;;;21721:19:0;;;21727:13;;21721:19;:53;;;;-1:-1:-1;21758:16:0;;-1:-1:-1;;;21758:16:0;;;;21757:17;21721:53;:94;;;;;21814:1;21791:20;;:24;21721:94;:126;;;;-1:-1:-1;5837:7:0;5864:6;-1:-1:-1;;;;;21832:15:0;;;5864:6;;21832:15;;21721:126;:156;;;;-1:-1:-1;5837:7:0;5864:6;-1:-1:-1;;;;;21864:13:0;;;5864:6;;21864:13;;21721:156;21704:225;;;21904:13;:11;:13::i;:::-;-1:-1:-1;;;;;21960:27:0;;;;;;:21;:27;;;;;;;;;:56;;-1:-1:-1;;;;;;21991:25:0;;;;;;:21;:25;;;;;;;;21960:56;21958:59;:92;;;;;22049:1;22034:12;;:16;21958:92;21941:333;;;22078:22;22103:41;22140:3;22103:32;22114:20;;22103:6;:10;;:32;;;;:::i;:::-;:36;;:41::i;:::-;22078:66;-1:-1:-1;22169:26:0;:6;22078:66;22169:10;:26::i;:::-;22160:35;;22212:50;22226:4;22240;22247:14;22212:13;:50::i;:::-;22062:212;21941:333;22286:31;22300:4;22306:2;22310:6;22286:13;:31::i;:::-;21064:1261;;;:::o;1510:192::-;1596:7;1632:12;1624:6;;;;1616:29;;;;-1:-1:-1;;;1616:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1656:9:0;1668:5;1672:1;1668;:5;:::i;:::-;1656:17;1510:192;-1:-1:-1;;;;;1510:192:0:o;1177:181::-;1235:7;;1267:5;1271:1;1267;:5;:::i;:::-;1255:17;;1296:1;1291;:6;;1283:46;;;;-1:-1:-1;;;1283:46:0;;12370:2:1;1283:46:0;;;12352:21:1;12409:2;12389:18;;;12382:30;12448:29;12428:18;;;12421:57;12495:18;;1283:46:0;12168:351:1;1283:46:0;1349:1;1177:181;-1:-1:-1;;;1177:181:0:o;22333:561::-;15846:16;:23;;-1:-1:-1;;;;15846:23:0;-1:-1:-1;;;15846:23:0;;;22472:20:::1;::::0;22450:16:::1;::::0;15846:23;;22421:72:::1;::::0;:46:::1;::::0;:24:::1;22439:4;-1:-1:-1::0;;;;;17557:18:0;17530:7;17557:18;;;:9;:18;;;;;;;17464:119;22421:24:::1;:28:::0;::::1;:46::i;:72::-;22389:104;;22504:24;22531:67;22577:20;;22531:41;22560:11;;22531:24;22549:4;-1:-1:-1::0;;;;;17557:18:0;17530:7;17557:18;;;:9;:18;;;;;;;17464:119;22531:67:::1;22656:16;::::0;22504:94;;-1:-1:-1;22656:20:0;22652:101:::1;;22691:50;22719:21;22691:27;:50::i;:::-;22805:11;::::0;:15;22801:86:::1;;22835:40;22858:16;22835:22;:40::i;:::-;-1:-1:-1::0;;15892:16:0;:24;;-1:-1:-1;;;;15892:24:0;;;22333:561::o;1710:250::-;1768:7;1792:1;1797;1792:6;1788:47;;-1:-1:-1;1822:1:0;1815:8;;1788:47;1847:9;1859:5;1863:1;1859;:5;:::i;:::-;1847:17;-1:-1:-1;1892:1:0;1883:5;1887:1;1847:17;1883:5;:::i;:::-;:10;1875:56;;;;-1:-1:-1;;;1875:56:0;;13121:2:1;1875:56:0;;;13103:21:1;13160:2;13140:18;;;13133:30;13199:34;13179:18;;;13172:62;-1:-1:-1;;;13250:18:1;;;13243:31;13291:19;;1875:56:0;12919:397:1;1970:132:0;2028:7;2055:39;2059:1;2062;2055:39;;;;;;;;;;;;;;;;;:3;:39::i;1366:136::-;1424:7;1451:43;1455:1;1458;1451:43;;;;;;;;;;;;;;;;;:3;:43::i;23997:474::-;-1:-1:-1;;;;;24098:20:0;;24090:70;;;;-1:-1:-1;;;24090:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24179:23:0;;24171:71;;;;-1:-1:-1;;;24171:71:0;;;;;;;:::i;:::-;24275;24297:6;24275:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24275:17:0;;;;;;:9;:17;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;24255:17:0;;;;;;;:9;:17;;;;;;:91;;;;24380:20;;;;;;;:32;;24405:6;24380:24;:32::i;:::-;-1:-1:-1;;;;;24357:20:0;;;;;;;:9;:20;;;;;;;:55;;;;24428:35;;;;;;;;;;24456:6;1410:25:1;;1398:2;1383:18;;1264:177;22902:500:0;23005:16;;;23019:1;23005:16;;;;;;;;22981:21;;23005:16;;;;;;;;;;-1:-1:-1;23005:16:0;22981:40;;23050:4;23032;23037:1;23032:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;23032:23:0;;;-1:-1:-1;;;;;23032:23:0;;;;;23076:15;;;;;;;;;-1:-1:-1;;;;;23076:15:0;-1:-1:-1;;;;;23076:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23066:4;23071:1;23066:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23066:32:0;;;:7;;;;;;;;;:32;23143:15;;23111:62;;23128:4;;23143:15;;;;23161:11;23111:8;:62::i;:::-;23186:15;;23336:16;;23186:208;;-1:-1:-1;;;23186:208:0;;-1:-1:-1;;;;;23186:15:0;;;;;;;:66;;:208;;23267:11;;23293:1;;23309:4;;23336:16;;;23368:15;;23186:208;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22968:434;22902:500;:::o;23410:579::-;23508:16;;;23522:1;23508:16;;;;;;;;;23484:21;;23508:16;;;;;;;;;;-1:-1:-1;23508:16:0;23484:40;;23553:4;23535;23540:1;23535:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;23535:23:0;;;-1:-1:-1;;;;;23535:23:0;;;;;23579:15;;;;;;;;;-1:-1:-1;;;;;23579:15:0;-1:-1:-1;;;;;23579:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23569:4;23574:1;23569:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;23569:32:0;;;:7;;;;;;;;;:32;23622:12;;23612:7;;23622:12;;;23612:4;;23617:1;;23612:7;;;;;;:::i;:::-;-1:-1:-1;;;;;23612:22:0;;;:7;;;;;;;;;:22;23679:15;;23647:62;;23664:4;;23679:15;;;;23697:11;23647:8;:62::i;:::-;23722:15;;23875:11;;23722:206;;-1:-1:-1;;;23722:206:0;;-1:-1:-1;;;;;23722:15:0;;;;;;;:69;;:206;;23806:11;;23832:1;;23848:4;;23875:11;;;23902:15;;23722:206;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;23944:37:0;;1410:25:1;;;23962:4:0;;-1:-1:-1;23944:37:0;;-1:-1:-1;1398:2:1;1383:18;23944:37:0;;;;;;;23471:518;23410:579;:::o;2110:278::-;2196:7;2231:12;2224:5;2216:28;;;;-1:-1:-1;;;2216:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2255:9:0;2267:5;2271:1;2267;:5;:::i;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;671:70;616:131;:::o;752:315::-;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1681:247::-;1740:6;1793:2;1781:9;1772:7;1768:23;1764:32;1761:52;;;1809:1;1806;1799:12;1761:52;1848:9;1835:23;1867:31;1892:5;1867:31;:::i;1933:456::-;2010:6;2018;2026;2079:2;2067:9;2058:7;2054:23;2050:32;2047:52;;;2095:1;2092;2085:12;2047:52;2134:9;2121:23;2153:31;2178:5;2153:31;:::i;:::-;2203:5;-1:-1:-1;2260:2:1;2245:18;;2232:32;2273:33;2232:32;2273:33;:::i;:::-;1933:456;;2325:7;;-1:-1:-1;;;2379:2:1;2364:18;;;;2351:32;;1933:456::o;3015:127::-;3076:10;3071:3;3067:20;3064:1;3057:31;3107:4;3104:1;3097:15;3131:4;3128:1;3121:15;3147:922;3216:6;3269:2;3257:9;3248:7;3244:23;3240:32;3237:52;;;3285:1;3282;3275:12;3237:52;3325:9;3312:23;3354:18;3395:2;3387:6;3384:14;3381:34;;;3411:1;3408;3401:12;3381:34;3449:6;3438:9;3434:22;3424:32;;3494:7;3487:4;3483:2;3479:13;3475:27;3465:55;;3516:1;3513;3506:12;3465:55;3552:2;3539:16;3574:2;3570;3567:10;3564:36;;;3580:18;;:::i;:::-;3655:2;3649:9;3623:2;3709:13;;-1:-1:-1;;3705:22:1;;;3729:2;3701:31;3697:40;3685:53;;;3753:18;;;3773:22;;;3750:46;3747:72;;;3799:18;;:::i;:::-;3839:10;3835:2;3828:22;3874:2;3866:6;3859:18;3914:7;3909:2;3904;3900;3896:11;3892:20;3889:33;3886:53;;;3935:1;3932;3925:12;3886:53;3991:2;3986;3982;3978:11;3973:2;3965:6;3961:15;3948:46;4036:1;4014:15;;;4031:2;4010:24;4003:35;;;;-1:-1:-1;4018:6:1;3147:922;-1:-1:-1;;;;;3147:922:1:o;4334:388::-;4402:6;4410;4463:2;4451:9;4442:7;4438:23;4434:32;4431:52;;;4479:1;4476;4469:12;4431:52;4518:9;4505:23;4537:31;4562:5;4537:31;:::i;:::-;4587:5;-1:-1:-1;4644:2:1;4629:18;;4616:32;4657:33;4616:32;4657:33;:::i;:::-;4709:7;4699:17;;;4334:388;;;;;:::o;4727:380::-;4806:1;4802:12;;;;4849;;;4870:61;;4924:4;4916:6;4912:17;4902:27;;4870:61;4977:2;4969:6;4966:14;4946:18;4943:38;4940:161;;5023:10;5018:3;5014:20;5011:1;5004:31;5058:4;5055:1;5048:15;5086:4;5083:1;5076:15;4940:161;;4727:380;;;:::o;5112:356::-;5314:2;5296:21;;;5333:18;;;5326:30;5392:34;5387:2;5372:18;;5365:62;5459:2;5444:18;;5112:356::o;5940:545::-;6042:2;6037:3;6034:11;6031:448;;;6078:1;6103:5;6099:2;6092:17;6148:4;6144:2;6134:19;6218:2;6206:10;6202:19;6199:1;6195:27;6189:4;6185:38;6254:4;6242:10;6239:20;6236:47;;;-1:-1:-1;6277:4:1;6236:47;6332:2;6327:3;6323:12;6320:1;6316:20;6310:4;6306:31;6296:41;;6387:82;6405:2;6398:5;6395:13;6387:82;;;6450:17;;;6431:1;6420:13;6387:82;;6661:1352;6787:3;6781:10;6814:18;6806:6;6803:30;6800:56;;;6836:18;;:::i;:::-;6865:97;6955:6;6915:38;6947:4;6941:11;6915:38;:::i;:::-;6909:4;6865:97;:::i;:::-;7017:4;;7081:2;7070:14;;7098:1;7093:663;;;;7800:1;7817:6;7814:89;;;-1:-1:-1;7869:19:1;;;7863:26;7814:89;-1:-1:-1;;6618:1:1;6614:11;;;6610:24;6606:29;6596:40;6642:1;6638:11;;;6593:57;7916:81;;7063:944;;7093:663;5887:1;5880:14;;;5924:4;5911:18;;-1:-1:-1;;7129:20:1;;;7247:236;7261:7;7258:1;7255:14;7247:236;;;7350:19;;;7344:26;7329:42;;7442:27;;;;7410:1;7398:14;;;;7277:19;;7247:236;;;7251:3;7511:6;7502:7;7499:19;7496:201;;;7572:19;;;7566:26;-1:-1:-1;;7655:1:1;7651:14;;;7667:3;7647:24;7643:37;7639:42;7624:58;7609:74;;7496:201;-1:-1:-1;;;;;7743:1:1;7727:14;;;7723:22;7710:36;;-1:-1:-1;6661:1352:1:o;8018:963::-;8127:4;8156:2;8185;8174:9;8167:21;8208:1;8241:6;8235:13;8271:36;8297:9;8271:36;:::i;:::-;8343:6;8338:2;8327:9;8323:18;8316:34;8369:2;8390:1;8422:2;8411:9;8407:18;8439:1;8434:158;;;;8606:1;8601:354;;;;8400:555;;8434:158;-1:-1:-1;;8482:24:1;;8462:18;;;8455:52;8560:14;;8553:22;8550:1;8546:30;8531:46;;8527:55;;;-1:-1:-1;8434:158:1;;8601:354;8632:6;8629:1;8622:17;8680:2;8677:1;8667:16;8705:1;8719:180;8733:6;8730:1;8727:13;8719:180;;;8826:14;;8802:17;;;8798:26;;8791:50;8869:16;;;;8748:10;;8719:180;;;8923:17;;8919:26;;;-1:-1:-1;;8400:555:1;-1:-1:-1;8972:3:1;;8018:963;-1:-1:-1;;;;;;;;8018:963:1:o;10201:401::-;10403:2;10385:21;;;10442:2;10422:18;;;10415:30;10481:34;10476:2;10461:18;;10454:62;-1:-1:-1;;;10547:2:1;10532:18;;10525:35;10592:3;10577:19;;10201:401::o;10607:399::-;10809:2;10791:21;;;10848:2;10828:18;;;10821:30;10887:34;10882:2;10867:18;;10860:62;-1:-1:-1;;;10953:2:1;10938:18;;10931:33;10996:3;10981:19;;10607:399::o;11773:127::-;11834:10;11829:3;11825:20;11822:1;11815:31;11865:4;11862:1;11855:15;11889:4;11886:1;11879:15;11905:125;11945:4;11973:1;11970;11967:8;11964:34;;;11978:18;;:::i;:::-;-1:-1:-1;12015:9:1;;11905:125::o;12035:128::-;12075:3;12106:1;12102:6;12099:1;12096:13;12093:39;;;12112:18;;:::i;:::-;-1:-1:-1;12148:9:1;;12035:128::o;12524:168::-;12564:7;12630:1;12626;12622:6;12618:14;12615:1;12612:21;12607:1;12600:9;12593:17;12589:45;12586:71;;;12637:18;;:::i;:::-;-1:-1:-1;12677:9:1;;12524:168::o;12697:217::-;12737:1;12763;12753:132;;12807:10;12802:3;12798:20;12795:1;12788:31;12842:4;12839:1;12832:15;12870:4;12867:1;12860:15;12753:132;-1:-1:-1;12899:9:1;;12697:217::o;13321:127::-;13382:10;13377:3;13373:20;13370:1;13363:31;13413:4;13410:1;13403:15;13437:4;13434:1;13427:15;13453:251;13523:6;13576:2;13564:9;13555:7;13551:23;13547:32;13544:52;;;13592:1;13589;13582:12;13544:52;13624:9;13618:16;13643:31;13668:5;13643:31;:::i;13709:980::-;13971:4;14019:3;14008:9;14004:19;14050:6;14039:9;14032:25;14076:2;14114:6;14109:2;14098:9;14094:18;14087:34;14157:3;14152:2;14141:9;14137:18;14130:31;14181:6;14216;14210:13;14247:6;14239;14232:22;14285:3;14274:9;14270:19;14263:26;;14324:2;14316:6;14312:15;14298:29;;14345:1;14355:195;14369:6;14366:1;14363:13;14355:195;;;14434:13;;-1:-1:-1;;;;;14430:39:1;14418:52;;14525:15;;;;14490:12;;;;14466:1;14384:9;14355:195;;;-1:-1:-1;;;;;;;14606:32:1;;;;14601:2;14586:18;;14579:60;-1:-1:-1;;;14670:3:1;14655:19;14648:35;14567:3;13709:980;-1:-1:-1;;;13709:980:1:o

Swarm Source

ipfs://509aab8dcc38ab8036564e937c8cfd718d407a3074457317b9d2682619d43cae
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.