ETH Price: $3,347.22 (-3.47%)

Token

Pepe Uchiha (PEPUCH)
 

Overview

Max Total Supply

100,000,000 PEPUCH

Holders

205

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
726,305.511020406 PEPUCH

Value
$0.00
0xf7b3e7e00f7b6d0e259ffb82f2d5a130dfd021f1
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:
PEPEUCHIHA

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-27
*/

// SPDX-License-Identifier:UNLICENSED
pragma solidity ^0.8.10;

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

// Dex Factory contract interface
interface IDexFactory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

// Dex Router contract interface
interface IDexRouter {
    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
        );

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

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

contract Ownable is Context {
    address private _owner;

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

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

    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 = payable(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;
    }
}

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

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

    mapping(address => bool) public isExcludedFromFee;
    mapping(address => bool) public isExcludedFromMaxTxn;
    mapping(address => bool) public isExcludedFromMaxHolding;
    mapping(address => bool) public isBot;

    string private _name = "Pepe Uchiha";
    string private _symbol = "PEPUCH";
    uint8 private _decimals = 9;
    uint256 private _totalSupply = 100_000_000 * 1e9;

    address private constant DEAD = address(0xdead);
    address private constant ZERO = address(0);
    IDexRouter public dexRouter;
    address public dexPair;
    address public marketingWallet;
    address public NFTRewardWallet;
    address public liquidityReceiverWallet;

    uint256 public minTokenToSwap = _totalSupply.div(1e5); // this amount will trigger swap and distribute
    uint256 public maxHoldLimit = _totalSupply; // this is the max wallet holding limit
    uint256 public maxTxnLimit = _totalSupply; // this is the max transaction limit
    uint256 public percentDivider = 1000;
    uint256 public snipingTime = 0 seconds;
    uint256 public launchedAt;

    bool public distributeAndLiquifyStatus; // should be true to turn on to liquidate the pool
    bool public feesStatus = true; // enable by default
    bool public trading; // once enable can't be disable afterwards

    uint256 public liquidityFeeOnBuying = 0; // 0% will be added to the liquidity
    uint256 public marketingFeeOnBuying = 20; // 2% will be added to the marketing address
    uint256 public NFTRewardFeeOnBuying = 0; // 0% will be added to the NFT rewards address

    uint256 public liquidityFeeOnSelling = 0; // 0% will be added to the liquidity
    uint256 public marketingFeeOnSelling = 20; // 2% will be added to the marketing address
    uint256 public NFTRewardFeeOnSelling = 0; // 0% will be added to the NFT rewards address

    uint256 liquidityFeeCounter = 0;
    uint256 marketingFeeCounter = 0;
    uint256 NFTRewardFeeCounter = 0;

    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );

    constructor() {
        _balances[owner()] = _totalSupply;
        liquidityReceiverWallet = address(0);
        marketingWallet = address(0xF845A03529b18d7Ca5eBF1a731B03F541188A714);
        NFTRewardWallet = address(0x000000000000000000000000000000000000dEaD);

        IDexRouter _dexRouter = IDexRouter(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        // Create a dex pair for this new ERC20
        address _dexPair = IDexFactory(_dexRouter.factory()).createPair(
            address(this),
            _dexRouter.WETH()
        );
        dexPair = _dexPair;

        // set the rest of the contract variables
        dexRouter = _dexRouter;

        //exclude owner and this contract from fee
        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;

        //exclude owner and this contract from max Txn
        isExcludedFromMaxTxn[owner()] = true;
        isExcludedFromMaxTxn[address(this)] = true;

        //exclude owner and this contract from max hold limit
        isExcludedFromMaxHolding[owner()] = true;
        isExcludedFromMaxHolding[address(this)] = true;
        isExcludedFromMaxHolding[dexPair] = true;
        isExcludedFromMaxHolding[marketingWallet] = true;
        isExcludedFromMaxHolding[NFTRewardWallet] = true;

        emit Transfer(address(0), owner(), _totalSupply);
    }

    //to receive ETH from dexRouter when swapping
    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,
                "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,
                "Decreased allowance or below zero"
            )
        );
        return true;
    }

    function includeOrExcludeFromFee(address account, bool value)
        external
        onlyOwner
    {
        isExcludedFromFee[account] = value;
    }

    function includeOrExcludeFromMaxTxn(address account, bool value)
        external
        onlyOwner
    {
        isExcludedFromMaxTxn[account] = value;
    }

    function includeOrExcludeFromMaxHolding(address account, bool value)
        external
        onlyOwner
    {
        isExcludedFromMaxHolding[account] = value;
    }

    function removeBots(address account)
        external
        onlyOwner
    {
        isBot[account] = false;
    }

    function setMinTokenToSwap(uint256 _amount) external onlyOwner {
        require(_amount > 0,"Can't be 0");
        minTokenToSwap = _amount;
    }

    function setMaxHoldLimit(uint256 _amount) external onlyOwner {
        maxHoldLimit = _amount;
    }

    function setMaxTxnLimit(uint256 _amount) external onlyOwner {
        maxTxnLimit = _amount;
    }

    function setBuyFeePercent(uint256 _lwFee, uint256 _marketingFee, uint256 _NFTRewardFee)
        external
        onlyOwner
    {
        marketingFeeOnBuying = _lwFee;
        NFTRewardFeeOnBuying = _NFTRewardFee;
        liquidityFeeOnBuying = _marketingFee;
        require(
            _lwFee.add(_marketingFee).add(_NFTRewardFee) <= percentDivider.div(10),
            "Can't be more than 10%"
        );
    }

    function setSellFeePercent(uint256 _lwFee, uint256 _marketingFee, uint256 _NFTRewardFee)
        external
        onlyOwner
    {
        marketingFeeOnSelling = _lwFee;
        NFTRewardFeeOnSelling = _NFTRewardFee;
        liquidityFeeOnSelling = _marketingFee;
        require(
            _lwFee.add(_marketingFee).add(_NFTRewardFee) <= percentDivider.div(10),
            "Can't be more than 10%"
        );
    }

    function setDistributionStatus(bool _value) public onlyOwner {
        distributeAndLiquifyStatus = _value;
    }

    function enableOrDisableFees(bool _value) external onlyOwner {
        feesStatus = _value;
    }

    function removeStuckEth(address _receiver) public onlyOwner {
        payable(_receiver).transfer(address(this).balance);
    }

    function updateAddresses(address _marketingWallet, address _NFTRewardWallet, address _liquidityReceiverWallet) external onlyOwner {
        marketingWallet = _marketingWallet;
        NFTRewardWallet = _NFTRewardWallet;
        liquidityReceiverWallet = _liquidityReceiverWallet;
    }

    function enableTrading() external onlyOwner {
        require(!trading, "Already enabled");
        trading = true;
        feesStatus = true;
        distributeAndLiquifyStatus = true;
        launchedAt = block.timestamp;
    }

    function totalBuyFeePerTx(uint256 amount) public view returns (uint256) {
        uint256 fee = amount.mul(marketingFeeOnBuying.add(liquidityFeeOnBuying).add(NFTRewardFeeOnBuying)).div(
            percentDivider
        );
        return fee;
    }

    function totalSellFeePerTx(uint256 amount) public view returns (uint256) {
        uint256 fee = amount
            .mul(marketingFeeOnSelling.add(liquidityFeeOnSelling).add(NFTRewardFeeOnSelling))
            .div(percentDivider);
        return fee;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "Approve from the zero address");
        require(spender != address(0), "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), "Transfer from the zero address");
        require(to != address(0), "Transfer to the zero address");
        require(amount > 0, "Amount must be greater than zero");
        require(!isBot[from], "Bot detected");

        if (!isExcludedFromMaxTxn[from] && !isExcludedFromMaxTxn[to]) {
            require(amount <= maxTxnLimit, "Max txn limit exceeds");

            // trading disable till launch
            if (!trading) {
                require(
                    dexPair != from && dexPair != to,
                    "Trading is disabled"
                );
            }
            // antibot
            if (
                block.timestamp < launchedAt + snipingTime &&
                from != address(dexRouter)
            ) {
                if (dexPair == from) {
                    isBot[to] = true;
                } else if (dexPair == to) {
                    isBot[from] = true;
                }
            }
        }

        if (!isExcludedFromMaxHolding[to]) {
            require(
                balanceOf(to).add(amount) <= maxHoldLimit,
                "Max hold limit exceeds"
            );
        }

        // swap and liquify
        distributeAndLiquify(from, to);

        //indicates if fee should be deducted from transfer
        bool takeFee = true;

        //if any account belongs to isExcludedFromFee account then remove the fee
        if (isExcludedFromFee[from] || isExcludedFromFee[to] || !feesStatus) {
            takeFee = false;
        }

        //transfer amount, it will take tax, burn, liquidity fee
        _tokenTransfer(from, to, amount, takeFee);
    }

    //this method is responsible for taking all fee, if takeFee is true
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (dexPair == sender && takeFee) {
            uint256 allFee = totalBuyFeePerTx(amount);
            uint256 tTransferAmount = amount.sub(allFee);
            _balances[sender] = _balances[sender].sub(amount,"Insufficient balance");
            _balances[recipient] = _balances[recipient].add(tTransferAmount);

            emit Transfer(sender, recipient, tTransferAmount);
            takeTokenFee(sender, allFee);
            setFeeCountersOnBuying(amount);
        } else if (dexPair == recipient && takeFee) {
            uint256 allFee = totalSellFeePerTx(amount);
            uint256 tTransferAmount = amount.sub(allFee);
            _balances[sender] = _balances[sender].sub(amount,"Insufficient balance");
            _balances[recipient] = _balances[recipient].add(tTransferAmount);

            emit Transfer(sender, recipient, tTransferAmount);
            takeTokenFee(sender, allFee);
            setFeeCountersOnSelling(amount);
        } else {
            _balances[sender] = _balances[sender].sub(amount,"Insufficient balance");
            _balances[recipient] = _balances[recipient].add(amount);

            emit Transfer(sender, recipient, amount);
        }
    }

    function takeTokenFee(address sender, uint256 amount) private {
        _balances[address(this)] = _balances[address(this)].add(amount);

        emit Transfer(sender, address(this), amount);
    }

    function setFeeCountersOnBuying(uint256 amount) private {
        liquidityFeeCounter += amount.mul(liquidityFeeOnBuying).div(
            percentDivider
        );
        marketingFeeCounter += amount.mul(marketingFeeOnBuying).div(percentDivider);
        NFTRewardFeeCounter += amount.mul(NFTRewardFeeOnBuying).div(percentDivider);
    }

    function setFeeCountersOnSelling(uint256 amount) private {
        liquidityFeeCounter += amount.mul(liquidityFeeOnSelling).div(
            percentDivider
        );
        marketingFeeCounter += amount.mul(marketingFeeOnSelling).div(percentDivider);
        NFTRewardFeeCounter += amount.mul(NFTRewardFeeOnSelling).div(percentDivider);
    }

    function distributeAndLiquify(address from, address to) private {
        // is the token balance of this contract address over the min number of
        // tokens that we need to initiate a swap + liquidity lock?
        // also, don't get caught in a circular liquidity event.
        // also, don't swap & liquify if sender is Dex pair.
        uint256 contractTokenBalance = balanceOf(address(this));

        bool shouldSell = contractTokenBalance >= minTokenToSwap;

        if (
            shouldSell &&
            from != dexPair &&
            distributeAndLiquifyStatus &&
            !(from == address(this) && to == address(dexPair)) // swap 1 time
        ) {
            // approve contract
            _approve(address(this), address(dexRouter), contractTokenBalance);

            uint256 halfLiquidity = liquidityFeeCounter.div(2);
            uint256 otherHalfLiquidity = liquidityFeeCounter.sub(halfLiquidity);

            uint256 tokenAmountToBeSwapped = contractTokenBalance.sub(
                otherHalfLiquidity
            );

            uint256 balanceBefore = address(this).balance;

            // now is to lock into liquidty pool
            Utils.swapTokensForEth(address(dexRouter), tokenAmountToBeSwapped);

            uint256 deltaBalance = address(this).balance.sub(balanceBefore);
            uint256 ethToBeAddedToLiquidity = deltaBalance
                .mul(halfLiquidity)
                .div(tokenAmountToBeSwapped);
            uint256 ethFormarketing = deltaBalance.mul(marketingFeeCounter).div(
                tokenAmountToBeSwapped
            );
            uint256 ethForNFTReward = deltaBalance.sub(ethToBeAddedToLiquidity).sub(
                ethFormarketing
            );

            // add liquidity to Dex
            if (ethToBeAddedToLiquidity > 0) {
                Utils.addLiquidity(
                    address(dexRouter),
                    liquidityReceiverWallet,
                    otherHalfLiquidity,
                    ethToBeAddedToLiquidity
                );

                emit SwapAndLiquify(
                    halfLiquidity,
                    ethToBeAddedToLiquidity,
                    otherHalfLiquidity
                );
            }

            // sending eth to marketing wallet
            if (ethFormarketing > 0) payable(marketingWallet).transfer(ethFormarketing);

            // sending eth to NFT rewards wallet
            if (ethForNFTReward > 0) payable(NFTRewardWallet).transfer(ethForNFTReward);

            // Reset all fee counters
            liquidityFeeCounter = 0;
            marketingFeeCounter = 0;
            NFTRewardFeeCounter = 0;
        }
    }
}

// Library for doing a swap on Dex
library Utils {
    using SafeMath for uint256;

    function swapTokensForEth(address routerAddress, uint256 tokenAmount)
        internal
    {
        IDexRouter dexRouter = IDexRouter(routerAddress);

        // generate the Dex pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();

        // make the swap
        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp + 300
        );
    }

    function addLiquidity(
        address routerAddress,
        address owner,
        uint256 tokenAmount,
        uint256 ethAmount
    ) internal {
        IDexRouter dexRouter = IDexRouter(routerAddress);

        // add the liquidity
        dexRouter.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            owner,
            block.timestamp + 300
        );
    }
}

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) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        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;
    }
}

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":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":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","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":"NFTRewardFeeOnBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NFTRewardFeeOnSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NFTRewardWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[],"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":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract IDexRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"distributeAndLiquifyStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"enableOrDisableFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feesStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromMaxHolding","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"includeOrExcludeFromMaxTxn","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":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxHolding","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromMaxTxn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeOnBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeOnSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityReceiverWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeOnBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeOnSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxnLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minTokenToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentDivider","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"}],"name":"removeStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lwFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_NFTRewardFee","type":"uint256"}],"name":"setBuyFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_value","type":"bool"}],"name":"setDistributionStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMaxHoldLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMaxTxnLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setMinTokenToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_lwFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_NFTRewardFee","type":"uint256"}],"name":"setSellFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"snipingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"totalBuyFeePerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"totalSellFeePerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trading","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":"_marketingWallet","type":"address"},{"internalType":"address","name":"_NFTRewardWallet","type":"address"},{"internalType":"address","name":"_liquidityReceiverWallet","type":"address"}],"name":"updateAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c0604052600b60809081526a506570652055636869686160a81b60a0526007906200002c908262000623565b506040805180820190915260068152650a08aa0aa86960d31b602082015260089062000059908262000623565b506009805460ff19168117905567016345785d8a0000600a8190556200008f90620186a0620004e8602090811b6200127017901c565b601055600a5460118190556012556103e8601355600060148181556016805461ff001916610100179055601782905560188190556019829055601a829055601b55601c819055601d819055601e819055601f55348015620000ef57600080fd5b50600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600a5460016000620001496000546001600160a01b031690565b6001600160a01b031681526020808201929092526040908101600090812093909355600f80546001600160a01b0319908116909155600d8054821673f845a03529b18d7ca5ebf1a731b03f541188a714179055600e805490911661dead179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa158015620001f7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200021d9190620006ef565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200026b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002919190620006ef565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003059190620006ef565b600c80546001600160a01b038084166001600160a01b031992831617909255600b8054928616929091169190911790559050600160036000620003506000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526003909252812080549092166001908117909255600490620003a96000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526004909252812080549092166001908117909255600590620004026000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553081526005909352818320805485166001908117909155600c54821684528284208054861682179055600d54821684528284208054861682179055600e54909116835291208054909216179055620004906000546001600160a01b031690565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a54604051620004d891815260200190565b60405180910390a350506200078d565b60006200053283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200053960201b60201c565b9392505050565b60008183620005665760405162461bcd60e51b81526004016200055d91906200071a565b60405180910390fd5b5060006200057584866200076a565b95945050505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620005a957607f821691505b602082108103620005ca57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200061e57600081815260208120601f850160051c81016020861015620005f95750805b601f850160051c820191505b818110156200061a5782815560010162000605565b5050505b505050565b81516001600160401b038111156200063f576200063f6200057e565b620006578162000650845462000594565b84620005d0565b602080601f8311600181146200068f5760008415620006765750858301515b600019600386901b1c1916600185901b1785556200061a565b600085815260208120601f198616915b82811015620006c0578886015182559484019460019091019084016200069f565b5085821015620006df5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200070257600080fd5b81516001600160a01b03811681146200053257600080fd5b600060208083528351808285015260005b8181101562000749578581018301518582016040015282016200072b565b506000604082860101526040601f19601f8301168501019250505092915050565b6000826200078857634e487b7160e01b600052601260045260246000fd5b500490565b61269e806200079d6000396000f3fe6080604052600436106103395760003560e01c80638756aabd116101ab578063be19674b116100f7578063ec44acf211610095578063f242ab411161006f578063f242ab411461099f578063f2fde38b146109bf578063f4b3dbc3146109df578063fe6f1b05146109ff57600080fd5b8063ec44acf21461093f578063ed4214291461095f578063f097ea1a1461097f57600080fd5b8063dd62ed3e116100d1578063dd62ed3e146108a3578063e41f9efe146108e9578063e6c84dc614610909578063ea5b9e851461091f57600080fd5b8063be19674b14610857578063bf56b37114610877578063dcbbe9d41461088d57600080fd5b80639a36dfa111610164578063a7c29b401161013e578063a7c29b40146107d7578063a9059cbb146107f7578063b0a30f6a14610817578063b0bc2a2d1461083757600080fd5b80639a36dfa1146107815780639b6a275014610797578063a457c2d7146107b757600080fd5b80638756aabd146106ca578063879dd3c5146106ea5780638a8c523c146107095780638da5cb5b1461071e57806395d89b411461073c57806399b102b51461075157600080fd5b8063352bfe2f11610285578063715018a6116102235780637c6a9a9c116101fd5780637c6a9a9c146106585780637d99c66d1461066e578063844af78e1461068457806384ea21bc1461069a57600080fd5b8063715018a61461060957806375f0a8741461061e57806379777b4e1461063e57600080fd5b80635342acb41161025f5780635342acb41461056d578063679a3c591461059d578063681aa362146105bd57806370a08231146105d357600080fd5b8063352bfe2f146104fd578063395093511461051d5780633bbac5791461053d57600080fd5b80631884f1e6116102f25780632d129390116102cc5780632d12939014610485578063313ce567146104a55780633326d7f2146104c7578063334c1439146104dd57600080fd5b80631884f1e61461043957806323b872dd1461044f57806325d901891461046f57600080fd5b806306fdde03146103455780630758d92414610370578063095ea7b3146103a85780630a2d140c146103d8578063151cd1c2146103fa57806318160ddd1461041a57600080fd5b3661034057005b600080fd5b34801561035157600080fd5b5061035a610a15565b6040516103679190612232565b60405180910390f35b34801561037c57600080fd5b50600b54610390906001600160a01b031681565b6040516001600160a01b039091168152602001610367565b3480156103b457600080fd5b506103c86103c3366004612298565b610aa7565b6040519015158152602001610367565b3480156103e457600080fd5b506103f86103f33660046122d9565b610abe565b005b34801561040657600080fd5b506103f86104153660046122f4565b610b04565b34801561042657600080fd5b50600a545b604051908152602001610367565b34801561044557600080fd5b5061042b60105481565b34801561045b57600080fd5b506103c861046a366004612320565b610bab565b34801561047b57600080fd5b5061042b601c5481565b34801561049157600080fd5b506103f86104a0366004612361565b610c14565b3480156104b157600080fd5b5060095460405160ff9091168152602001610367565b3480156104d357600080fd5b5061042b60175481565b3480156104e957600080fd5b506103f86104f8366004612396565b610c69565b34801561050957600080fd5b50600e54610390906001600160a01b031681565b34801561052957600080fd5b506103c8610538366004612298565b610cd2565b34801561054957600080fd5b506103c86105583660046123e1565b60066020526000908152604090205460ff1681565b34801561057957600080fd5b506103c86105883660046123e1565b60036020526000908152604090205460ff1681565b3480156105a957600080fd5b506103f86105b83660046123e1565b610d08565b3480156105c957600080fd5b5061042b60125481565b3480156105df57600080fd5b5061042b6105ee3660046123e1565b6001600160a01b031660009081526001602052604090205490565b34801561061557600080fd5b506103f8610d6b565b34801561062a57600080fd5b50600d54610390906001600160a01b031681565b34801561064a57600080fd5b506016546103c89060ff1681565b34801561066457600080fd5b5061042b60185481565b34801561067a57600080fd5b5061042b60145481565b34801561069057600080fd5b5061042b601b5481565b3480156106a657600080fd5b506103c86106b53660046123e1565b60056020526000908152604090205460ff1681565b3480156106d657600080fd5b506103f86106e53660046123fe565b610ddf565b3480156106f657600080fd5b506016546103c890610100900460ff1681565b34801561071557600080fd5b506103f8610e0e565b34801561072a57600080fd5b506000546001600160a01b0316610390565b34801561074857600080fd5b5061035a610e9a565b34801561075d57600080fd5b506103c861076c3660046123e1565b60046020526000908152604090205460ff1681565b34801561078d57600080fd5b5061042b60115481565b3480156107a357600080fd5b506103f86107b23660046123fe565b610ea9565b3480156107c357600080fd5b506103c86107d2366004612298565b610ed8565b3480156107e357600080fd5b506103f86107f2366004612361565b610f27565b34801561080357600080fd5b506103c8610812366004612298565b610f7c565b34801561082357600080fd5b50600f54610390906001600160a01b031681565b34801561084357600080fd5b506103f86108523660046122d9565b610f89565b34801561086357600080fd5b506103f86108723660046122f4565b610fcd565b34801561088357600080fd5b5061042b60155481565b34801561089957600080fd5b5061042b60195481565b3480156108af57600080fd5b5061042b6108be366004612417565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156108f557600080fd5b506103f86109043660046123e1565b611014565b34801561091557600080fd5b5061042b601a5481565b34801561092b57600080fd5b506103f861093a366004612361565b61105f565b34801561094b57600080fd5b506016546103c89062010000900460ff1681565b34801561096b57600080fd5b5061042b61097a3660046123fe565b6110b4565b34801561098b57600080fd5b506103f861099a3660046123fe565b6110f1565b3480156109ab57600080fd5b50600c54610390906001600160a01b031681565b3480156109cb57600080fd5b506103f86109da3660046123e1565b61115d565b3480156109eb57600080fd5b5061042b6109fa3660046123fe565b611247565b348015610a0b57600080fd5b5061042b60135481565b606060078054610a2490612450565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5090612450565b8015610a9d5780601f10610a7257610100808354040283529160200191610a9d565b820191906000526020600020905b815481529060010190602001808311610a8057829003601f168201915b5050505050905090565b6000610ab43384846112b2565b5060015b92915050565b6000546001600160a01b03163314610af15760405162461bcd60e51b8152600401610ae89061248a565b60405180910390fd5b6016805460ff1916911515919091179055565b6000546001600160a01b03163314610b2e5760405162461bcd60e51b8152600401610ae89061248a565b601b839055601c819055601a829055601354610b4b90600a611270565b610b5f82610b5986866113bf565b906113bf565b1115610ba65760405162461bcd60e51b815260206004820152601660248201527543616e2774206265206d6f7265207468616e2031302560501b6044820152606401610ae8565b505050565b6000610bb884848461141e565b610c0a8433610c0585604051806060016040528060218152602001612607602191396001600160a01b038a166000908152600260209081526040808320338452909152902054919061182f565b6112b2565b5060019392505050565b6000546001600160a01b03163314610c3e5760405162461bcd60e51b8152600401610ae89061248a565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610c935760405162461bcd60e51b8152600401610ae89061248a565b600d80546001600160a01b039485166001600160a01b031991821617909155600e805493851693821693909317909255600f8054919093169116179055565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610ab4918590610c0590866113bf565b6000546001600160a01b03163314610d325760405162461bcd60e51b8152600401610ae89061248a565b6040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015610d67573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610d955760405162461bcd60e51b8152600401610ae89061248a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610e095760405162461bcd60e51b8152600401610ae89061248a565b601155565b6000546001600160a01b03163314610e385760405162461bcd60e51b8152600401610ae89061248a565b60165462010000900460ff1615610e835760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e48195b98589b1959608a1b6044820152606401610ae8565b6016805462ffffff19166201010117905542601555565b606060088054610a2490612450565b6000546001600160a01b03163314610ed35760405162461bcd60e51b8152600401610ae89061248a565b601255565b6000610ab43384610c0585604051806060016040528060218152602001612648602191393360009081526002602090815260408083206001600160a01b038d168452909152902054919061182f565b6000546001600160a01b03163314610f515760405162461bcd60e51b8152600401610ae89061248a565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000610ab433848461141e565b6000546001600160a01b03163314610fb35760405162461bcd60e51b8152600401610ae89061248a565b601680549115156101000261ff0019909216919091179055565b6000546001600160a01b03163314610ff75760405162461bcd60e51b8152600401610ae89061248a565b601883905560198190556017829055601354610b4b90600a611270565b6000546001600160a01b0316331461103e5760405162461bcd60e51b8152600401610ae89061248a565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b031633146110895760405162461bcd60e51b8152600401610ae89061248a565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b6000806110ea6013546110e46110dd601954610b596017546018546113bf90919063ffffffff16565b8690611869565b90611270565b9392505050565b6000546001600160a01b0316331461111b5760405162461bcd60e51b8152600401610ae89061248a565b600081116111585760405162461bcd60e51b815260206004820152600a602482015269043616e277420626520360b41b6044820152606401610ae8565b601055565b6000546001600160a01b031633146111875760405162461bcd60e51b8152600401610ae89061248a565b6001600160a01b0381166111ec5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ae8565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000806110ea6013546110e46110dd601c54610b59601a54601b546113bf90919063ffffffff16565b60006110ea83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118eb565b6001600160a01b0383166113085760405162461bcd60e51b815260206004820152601d60248201527f417070726f76652066726f6d20746865207a65726f20616464726573730000006044820152606401610ae8565b6001600160a01b03821661135e5760405162461bcd60e51b815260206004820152601b60248201527f417070726f766520746f20746865207a65726f206164647265737300000000006044820152606401610ae8565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000806113cc83856124d5565b9050838110156110ea5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610ae8565b6001600160a01b0383166114745760405162461bcd60e51b815260206004820152601e60248201527f5472616e736665722066726f6d20746865207a65726f206164647265737300006044820152606401610ae8565b6001600160a01b0382166114ca5760405162461bcd60e51b815260206004820152601c60248201527f5472616e7366657220746f20746865207a65726f2061646472657373000000006044820152606401610ae8565b6000811161151a5760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f6044820152606401610ae8565b6001600160a01b03831660009081526006602052604090205460ff16156115725760405162461bcd60e51b815260206004820152600c60248201526b109bdd0819195d1958dd195960a21b6044820152606401610ae8565b6001600160a01b03831660009081526004602052604090205460ff161580156115b457506001600160a01b03821660009081526004602052604090205460ff16155b15611728576012548111156116035760405162461bcd60e51b81526020600482015260156024820152744d61782074786e206c696d6974206578636565647360581b6044820152606401610ae8565b60165462010000900460ff1661168157600c546001600160a01b0384811691161480159061163f5750600c546001600160a01b03838116911614155b6116815760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81a5cc8191a5cd8589b1959606a1b6044820152606401610ae8565b60145460155461169191906124d5565b421080156116ad5750600b546001600160a01b03848116911614155b1561172857600c546001600160a01b038085169116036116ef576001600160a01b0382166000908152600660205260409020805460ff19166001179055611728565b600c546001600160a01b03808416911603611728576001600160a01b0383166000908152600660205260409020805460ff191660011790555b6001600160a01b03821660009081526005602052604090205460ff166117b55760115461176e82610b59856001600160a01b031660009081526001602052604090205490565b11156117b55760405162461bcd60e51b81526020600482015260166024820152754d617820686f6c64206c696d6974206578636565647360501b6044820152606401610ae8565b6117bf8383611919565b6001600160a01b03831660009081526003602052604090205460019060ff168061180157506001600160a01b03831660009081526003602052604090205460ff165b806118145750601654610100900460ff16155b1561181d575060005b61182984848484611b53565b50505050565b600081848411156118535760405162461bcd60e51b8152600401610ae89190612232565b50600061186084866124e8565b95945050505050565b60008260000361187b57506000610ab8565b600061188783856124fb565b9050826118948583612512565b146110ea5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610ae8565b6000818361190c5760405162461bcd60e51b8152600401610ae89190612232565b5060006118608486612512565b306000908152600160205260409020546010548110801590819061194b5750600c546001600160a01b03858116911614155b8015611959575060165460ff165b801561198757506001600160a01b038416301480156119855750600c546001600160a01b038481169116145b155b1561182957600b546119a49030906001600160a01b0316846112b2565b601d546000906119b5906002611270565b905060006119ce82601d54611e8390919063ffffffff16565b905060006119dc8583611e83565b600b5490915047906119f7906001600160a01b031683611ec5565b6000611a034783611e83565b90506000611a15846110e48489611869565b90506000611a32856110e4601e548661186990919063ffffffff16565b90506000611a4a82611a448686611e83565b90611e83565b90508215611ab257600b54600f54611a70916001600160a01b0390811691168986612019565b60408051898152602081018590529081018890527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15b8115611af457600d546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611af2573d6000803e3d6000fd5b505b8015611b3657600e546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611b34573d6000803e3d6000fd5b505b50506000601d819055601e819055601f5550505050505050505050565b600c546001600160a01b038581169116148015611b6d5750805b15611c86576000611b7d836110b4565b90506000611b8b8483611e83565b9050611bf38460405180604001604052806014815260200173496e73756666696369656e742062616c616e636560601b815250600160008a6001600160a01b03166001600160a01b031681526020019081526020016000205461182f9092919063ffffffff16565b6001600160a01b038088166000908152600160205260408082209390935590871681522054611c2290826113bf565b6001600160a01b03808716600081815260016020526040908190209390935591519088169060008051602061262883398151915290611c649085815260200190565b60405180910390a3611c7686836120ce565b611c7f84612133565b5050611829565b600c546001600160a01b038481169116148015611ca05750805b15611db2576000611cb083611247565b90506000611cbe8483611e83565b9050611d268460405180604001604052806014815260200173496e73756666696369656e742062616c616e636560601b815250600160008a6001600160a01b03166001600160a01b031681526020019081526020016000205461182f9092919063ffffffff16565b6001600160a01b038088166000908152600160205260408082209390935590871681522054611d5590826113bf565b6001600160a01b03808716600081815260016020526040908190209390935591519088169060008051602061262883398151915290611d979085815260200190565b60405180910390a3611da986836120ce565b611c7f846121bf565b6040805180820182526014815273496e73756666696369656e742062616c616e636560601b6020808301919091526001600160a01b038716600090815260019091529190912054611e0491849061182f565b6001600160a01b038086166000908152600160205260408082209390935590851681522054611e3390836113bf565b6001600160a01b03808516600081815260016020526040908190209390935591519086169060008051602061262883398151915290611e759086815260200190565b60405180910390a350505050565b60006110ea83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061182f565b604080516002808252606082018352849260009291906020830190803683370190505090503081600081518110611efe57611efe612534565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f80919061254a565b81600181518110611f9357611f93612534565b6001600160a01b039283166020918202929092010152821663791ac9478460008430611fc14261012c6124d5565b6040518663ffffffff1660e01b8152600401611fe1959493929190612567565b600060405180830381600087803b158015611ffb57600080fd5b505af115801561200f573d6000803e3d6000fd5b5050505050505050565b836001600160a01b03811663f305d7198330866000808a61203c4261012c6124d5565b60405160e089901b6001600160e01b03191681526001600160a01b039687166004820152602481019590955260448501939093526064840191909152909216608482015260a481019190915260c40160606040518083038185885af11580156120a9573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061200f91906125d8565b306000908152600160205260409020546120e890826113bf565b30600081815260016020526040908190209290925590516001600160a01b03841690600080516020612628833981519152906121279085815260200190565b60405180910390a35050565b61214e6013546110e46017548461186990919063ffffffff16565b601d600082825461215f91906124d5565b909155505060135460185461217a91906110e4908490611869565b601e600082825461218b91906124d5565b90915550506013546019546121a691906110e4908490611869565b601f60008282546121b791906124d5565b909155505050565b6121da6013546110e4601a548461186990919063ffffffff16565b601d60008282546121eb91906124d5565b9091555050601354601b5461220691906110e4908490611869565b601e600082825461221791906124d5565b9091555050601354601c546121a691906110e4908490611869565b600060208083528351808285015260005b8181101561225f57858101830151858201604001528201612243565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461229557600080fd5b50565b600080604083850312156122ab57600080fd5b82356122b681612280565b946020939093013593505050565b803580151581146122d457600080fd5b919050565b6000602082840312156122eb57600080fd5b6110ea826122c4565b60008060006060848603121561230957600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561233557600080fd5b833561234081612280565b9250602084013561235081612280565b929592945050506040919091013590565b6000806040838503121561237457600080fd5b823561237f81612280565b915061238d602084016122c4565b90509250929050565b6000806000606084860312156123ab57600080fd5b83356123b681612280565b925060208401356123c681612280565b915060408401356123d681612280565b809150509250925092565b6000602082840312156123f357600080fd5b81356110ea81612280565b60006020828403121561241057600080fd5b5035919050565b6000806040838503121561242a57600080fd5b823561243581612280565b9150602083013561244581612280565b809150509250929050565b600181811c9082168061246457607f821691505b60208210810361248457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610ab857610ab86124bf565b81810381811115610ab857610ab86124bf565b8082028115828204841417610ab857610ab86124bf565b60008261252f57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561255c57600080fd5b81516110ea81612280565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125b75784516001600160a01b031683529383019391830191600101612592565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156125ed57600080fd5b835192506020840151915060408401519050925092509256fe5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef44656372656173656420616c6c6f77616e6365206f722062656c6f77207a65726fa264697066735822122045cde83ce310eb0f518d991023af666bd5aa76e8437549683f6bc2bf759a790c64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106103395760003560e01c80638756aabd116101ab578063be19674b116100f7578063ec44acf211610095578063f242ab411161006f578063f242ab411461099f578063f2fde38b146109bf578063f4b3dbc3146109df578063fe6f1b05146109ff57600080fd5b8063ec44acf21461093f578063ed4214291461095f578063f097ea1a1461097f57600080fd5b8063dd62ed3e116100d1578063dd62ed3e146108a3578063e41f9efe146108e9578063e6c84dc614610909578063ea5b9e851461091f57600080fd5b8063be19674b14610857578063bf56b37114610877578063dcbbe9d41461088d57600080fd5b80639a36dfa111610164578063a7c29b401161013e578063a7c29b40146107d7578063a9059cbb146107f7578063b0a30f6a14610817578063b0bc2a2d1461083757600080fd5b80639a36dfa1146107815780639b6a275014610797578063a457c2d7146107b757600080fd5b80638756aabd146106ca578063879dd3c5146106ea5780638a8c523c146107095780638da5cb5b1461071e57806395d89b411461073c57806399b102b51461075157600080fd5b8063352bfe2f11610285578063715018a6116102235780637c6a9a9c116101fd5780637c6a9a9c146106585780637d99c66d1461066e578063844af78e1461068457806384ea21bc1461069a57600080fd5b8063715018a61461060957806375f0a8741461061e57806379777b4e1461063e57600080fd5b80635342acb41161025f5780635342acb41461056d578063679a3c591461059d578063681aa362146105bd57806370a08231146105d357600080fd5b8063352bfe2f146104fd578063395093511461051d5780633bbac5791461053d57600080fd5b80631884f1e6116102f25780632d129390116102cc5780632d12939014610485578063313ce567146104a55780633326d7f2146104c7578063334c1439146104dd57600080fd5b80631884f1e61461043957806323b872dd1461044f57806325d901891461046f57600080fd5b806306fdde03146103455780630758d92414610370578063095ea7b3146103a85780630a2d140c146103d8578063151cd1c2146103fa57806318160ddd1461041a57600080fd5b3661034057005b600080fd5b34801561035157600080fd5b5061035a610a15565b6040516103679190612232565b60405180910390f35b34801561037c57600080fd5b50600b54610390906001600160a01b031681565b6040516001600160a01b039091168152602001610367565b3480156103b457600080fd5b506103c86103c3366004612298565b610aa7565b6040519015158152602001610367565b3480156103e457600080fd5b506103f86103f33660046122d9565b610abe565b005b34801561040657600080fd5b506103f86104153660046122f4565b610b04565b34801561042657600080fd5b50600a545b604051908152602001610367565b34801561044557600080fd5b5061042b60105481565b34801561045b57600080fd5b506103c861046a366004612320565b610bab565b34801561047b57600080fd5b5061042b601c5481565b34801561049157600080fd5b506103f86104a0366004612361565b610c14565b3480156104b157600080fd5b5060095460405160ff9091168152602001610367565b3480156104d357600080fd5b5061042b60175481565b3480156104e957600080fd5b506103f86104f8366004612396565b610c69565b34801561050957600080fd5b50600e54610390906001600160a01b031681565b34801561052957600080fd5b506103c8610538366004612298565b610cd2565b34801561054957600080fd5b506103c86105583660046123e1565b60066020526000908152604090205460ff1681565b34801561057957600080fd5b506103c86105883660046123e1565b60036020526000908152604090205460ff1681565b3480156105a957600080fd5b506103f86105b83660046123e1565b610d08565b3480156105c957600080fd5b5061042b60125481565b3480156105df57600080fd5b5061042b6105ee3660046123e1565b6001600160a01b031660009081526001602052604090205490565b34801561061557600080fd5b506103f8610d6b565b34801561062a57600080fd5b50600d54610390906001600160a01b031681565b34801561064a57600080fd5b506016546103c89060ff1681565b34801561066457600080fd5b5061042b60185481565b34801561067a57600080fd5b5061042b60145481565b34801561069057600080fd5b5061042b601b5481565b3480156106a657600080fd5b506103c86106b53660046123e1565b60056020526000908152604090205460ff1681565b3480156106d657600080fd5b506103f86106e53660046123fe565b610ddf565b3480156106f657600080fd5b506016546103c890610100900460ff1681565b34801561071557600080fd5b506103f8610e0e565b34801561072a57600080fd5b506000546001600160a01b0316610390565b34801561074857600080fd5b5061035a610e9a565b34801561075d57600080fd5b506103c861076c3660046123e1565b60046020526000908152604090205460ff1681565b34801561078d57600080fd5b5061042b60115481565b3480156107a357600080fd5b506103f86107b23660046123fe565b610ea9565b3480156107c357600080fd5b506103c86107d2366004612298565b610ed8565b3480156107e357600080fd5b506103f86107f2366004612361565b610f27565b34801561080357600080fd5b506103c8610812366004612298565b610f7c565b34801561082357600080fd5b50600f54610390906001600160a01b031681565b34801561084357600080fd5b506103f86108523660046122d9565b610f89565b34801561086357600080fd5b506103f86108723660046122f4565b610fcd565b34801561088357600080fd5b5061042b60155481565b34801561089957600080fd5b5061042b60195481565b3480156108af57600080fd5b5061042b6108be366004612417565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156108f557600080fd5b506103f86109043660046123e1565b611014565b34801561091557600080fd5b5061042b601a5481565b34801561092b57600080fd5b506103f861093a366004612361565b61105f565b34801561094b57600080fd5b506016546103c89062010000900460ff1681565b34801561096b57600080fd5b5061042b61097a3660046123fe565b6110b4565b34801561098b57600080fd5b506103f861099a3660046123fe565b6110f1565b3480156109ab57600080fd5b50600c54610390906001600160a01b031681565b3480156109cb57600080fd5b506103f86109da3660046123e1565b61115d565b3480156109eb57600080fd5b5061042b6109fa3660046123fe565b611247565b348015610a0b57600080fd5b5061042b60135481565b606060078054610a2490612450565b80601f0160208091040260200160405190810160405280929190818152602001828054610a5090612450565b8015610a9d5780601f10610a7257610100808354040283529160200191610a9d565b820191906000526020600020905b815481529060010190602001808311610a8057829003601f168201915b5050505050905090565b6000610ab43384846112b2565b5060015b92915050565b6000546001600160a01b03163314610af15760405162461bcd60e51b8152600401610ae89061248a565b60405180910390fd5b6016805460ff1916911515919091179055565b6000546001600160a01b03163314610b2e5760405162461bcd60e51b8152600401610ae89061248a565b601b839055601c819055601a829055601354610b4b90600a611270565b610b5f82610b5986866113bf565b906113bf565b1115610ba65760405162461bcd60e51b815260206004820152601660248201527543616e2774206265206d6f7265207468616e2031302560501b6044820152606401610ae8565b505050565b6000610bb884848461141e565b610c0a8433610c0585604051806060016040528060218152602001612607602191396001600160a01b038a166000908152600260209081526040808320338452909152902054919061182f565b6112b2565b5060019392505050565b6000546001600160a01b03163314610c3e5760405162461bcd60e51b8152600401610ae89061248a565b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610c935760405162461bcd60e51b8152600401610ae89061248a565b600d80546001600160a01b039485166001600160a01b031991821617909155600e805493851693821693909317909255600f8054919093169116179055565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610ab4918590610c0590866113bf565b6000546001600160a01b03163314610d325760405162461bcd60e51b8152600401610ae89061248a565b6040516001600160a01b038216904780156108fc02916000818181858888f19350505050158015610d67573d6000803e3d6000fd5b5050565b6000546001600160a01b03163314610d955760405162461bcd60e51b8152600401610ae89061248a565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610e095760405162461bcd60e51b8152600401610ae89061248a565b601155565b6000546001600160a01b03163314610e385760405162461bcd60e51b8152600401610ae89061248a565b60165462010000900460ff1615610e835760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e48195b98589b1959608a1b6044820152606401610ae8565b6016805462ffffff19166201010117905542601555565b606060088054610a2490612450565b6000546001600160a01b03163314610ed35760405162461bcd60e51b8152600401610ae89061248a565b601255565b6000610ab43384610c0585604051806060016040528060218152602001612648602191393360009081526002602090815260408083206001600160a01b038d168452909152902054919061182f565b6000546001600160a01b03163314610f515760405162461bcd60e51b8152600401610ae89061248a565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000610ab433848461141e565b6000546001600160a01b03163314610fb35760405162461bcd60e51b8152600401610ae89061248a565b601680549115156101000261ff0019909216919091179055565b6000546001600160a01b03163314610ff75760405162461bcd60e51b8152600401610ae89061248a565b601883905560198190556017829055601354610b4b90600a611270565b6000546001600160a01b0316331461103e5760405162461bcd60e51b8152600401610ae89061248a565b6001600160a01b03166000908152600660205260409020805460ff19169055565b6000546001600160a01b031633146110895760405162461bcd60e51b8152600401610ae89061248a565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b6000806110ea6013546110e46110dd601954610b596017546018546113bf90919063ffffffff16565b8690611869565b90611270565b9392505050565b6000546001600160a01b0316331461111b5760405162461bcd60e51b8152600401610ae89061248a565b600081116111585760405162461bcd60e51b815260206004820152600a602482015269043616e277420626520360b41b6044820152606401610ae8565b601055565b6000546001600160a01b031633146111875760405162461bcd60e51b8152600401610ae89061248a565b6001600160a01b0381166111ec5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ae8565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000806110ea6013546110e46110dd601c54610b59601a54601b546113bf90919063ffffffff16565b60006110ea83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506118eb565b6001600160a01b0383166113085760405162461bcd60e51b815260206004820152601d60248201527f417070726f76652066726f6d20746865207a65726f20616464726573730000006044820152606401610ae8565b6001600160a01b03821661135e5760405162461bcd60e51b815260206004820152601b60248201527f417070726f766520746f20746865207a65726f206164647265737300000000006044820152606401610ae8565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000806113cc83856124d5565b9050838110156110ea5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610ae8565b6001600160a01b0383166114745760405162461bcd60e51b815260206004820152601e60248201527f5472616e736665722066726f6d20746865207a65726f206164647265737300006044820152606401610ae8565b6001600160a01b0382166114ca5760405162461bcd60e51b815260206004820152601c60248201527f5472616e7366657220746f20746865207a65726f2061646472657373000000006044820152606401610ae8565b6000811161151a5760405162461bcd60e51b815260206004820181905260248201527f416d6f756e74206d7573742062652067726561746572207468616e207a65726f6044820152606401610ae8565b6001600160a01b03831660009081526006602052604090205460ff16156115725760405162461bcd60e51b815260206004820152600c60248201526b109bdd0819195d1958dd195960a21b6044820152606401610ae8565b6001600160a01b03831660009081526004602052604090205460ff161580156115b457506001600160a01b03821660009081526004602052604090205460ff16155b15611728576012548111156116035760405162461bcd60e51b81526020600482015260156024820152744d61782074786e206c696d6974206578636565647360581b6044820152606401610ae8565b60165462010000900460ff1661168157600c546001600160a01b0384811691161480159061163f5750600c546001600160a01b03838116911614155b6116815760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81a5cc8191a5cd8589b1959606a1b6044820152606401610ae8565b60145460155461169191906124d5565b421080156116ad5750600b546001600160a01b03848116911614155b1561172857600c546001600160a01b038085169116036116ef576001600160a01b0382166000908152600660205260409020805460ff19166001179055611728565b600c546001600160a01b03808416911603611728576001600160a01b0383166000908152600660205260409020805460ff191660011790555b6001600160a01b03821660009081526005602052604090205460ff166117b55760115461176e82610b59856001600160a01b031660009081526001602052604090205490565b11156117b55760405162461bcd60e51b81526020600482015260166024820152754d617820686f6c64206c696d6974206578636565647360501b6044820152606401610ae8565b6117bf8383611919565b6001600160a01b03831660009081526003602052604090205460019060ff168061180157506001600160a01b03831660009081526003602052604090205460ff165b806118145750601654610100900460ff16155b1561181d575060005b61182984848484611b53565b50505050565b600081848411156118535760405162461bcd60e51b8152600401610ae89190612232565b50600061186084866124e8565b95945050505050565b60008260000361187b57506000610ab8565b600061188783856124fb565b9050826118948583612512565b146110ea5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610ae8565b6000818361190c5760405162461bcd60e51b8152600401610ae89190612232565b5060006118608486612512565b306000908152600160205260409020546010548110801590819061194b5750600c546001600160a01b03858116911614155b8015611959575060165460ff165b801561198757506001600160a01b038416301480156119855750600c546001600160a01b038481169116145b155b1561182957600b546119a49030906001600160a01b0316846112b2565b601d546000906119b5906002611270565b905060006119ce82601d54611e8390919063ffffffff16565b905060006119dc8583611e83565b600b5490915047906119f7906001600160a01b031683611ec5565b6000611a034783611e83565b90506000611a15846110e48489611869565b90506000611a32856110e4601e548661186990919063ffffffff16565b90506000611a4a82611a448686611e83565b90611e83565b90508215611ab257600b54600f54611a70916001600160a01b0390811691168986612019565b60408051898152602081018590529081018890527f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619060600160405180910390a15b8115611af457600d546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015611af2573d6000803e3d6000fd5b505b8015611b3657600e546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611b34573d6000803e3d6000fd5b505b50506000601d819055601e819055601f5550505050505050505050565b600c546001600160a01b038581169116148015611b6d5750805b15611c86576000611b7d836110b4565b90506000611b8b8483611e83565b9050611bf38460405180604001604052806014815260200173496e73756666696369656e742062616c616e636560601b815250600160008a6001600160a01b03166001600160a01b031681526020019081526020016000205461182f9092919063ffffffff16565b6001600160a01b038088166000908152600160205260408082209390935590871681522054611c2290826113bf565b6001600160a01b03808716600081815260016020526040908190209390935591519088169060008051602061262883398151915290611c649085815260200190565b60405180910390a3611c7686836120ce565b611c7f84612133565b5050611829565b600c546001600160a01b038481169116148015611ca05750805b15611db2576000611cb083611247565b90506000611cbe8483611e83565b9050611d268460405180604001604052806014815260200173496e73756666696369656e742062616c616e636560601b815250600160008a6001600160a01b03166001600160a01b031681526020019081526020016000205461182f9092919063ffffffff16565b6001600160a01b038088166000908152600160205260408082209390935590871681522054611d5590826113bf565b6001600160a01b03808716600081815260016020526040908190209390935591519088169060008051602061262883398151915290611d979085815260200190565b60405180910390a3611da986836120ce565b611c7f846121bf565b6040805180820182526014815273496e73756666696369656e742062616c616e636560601b6020808301919091526001600160a01b038716600090815260019091529190912054611e0491849061182f565b6001600160a01b038086166000908152600160205260408082209390935590851681522054611e3390836113bf565b6001600160a01b03808516600081815260016020526040908190209390935591519086169060008051602061262883398151915290611e759086815260200190565b60405180910390a350505050565b60006110ea83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061182f565b604080516002808252606082018352849260009291906020830190803683370190505090503081600081518110611efe57611efe612534565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f80919061254a565b81600181518110611f9357611f93612534565b6001600160a01b039283166020918202929092010152821663791ac9478460008430611fc14261012c6124d5565b6040518663ffffffff1660e01b8152600401611fe1959493929190612567565b600060405180830381600087803b158015611ffb57600080fd5b505af115801561200f573d6000803e3d6000fd5b5050505050505050565b836001600160a01b03811663f305d7198330866000808a61203c4261012c6124d5565b60405160e089901b6001600160e01b03191681526001600160a01b039687166004820152602481019590955260448501939093526064840191909152909216608482015260a481019190915260c40160606040518083038185885af11580156120a9573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061200f91906125d8565b306000908152600160205260409020546120e890826113bf565b30600081815260016020526040908190209290925590516001600160a01b03841690600080516020612628833981519152906121279085815260200190565b60405180910390a35050565b61214e6013546110e46017548461186990919063ffffffff16565b601d600082825461215f91906124d5565b909155505060135460185461217a91906110e4908490611869565b601e600082825461218b91906124d5565b90915550506013546019546121a691906110e4908490611869565b601f60008282546121b791906124d5565b909155505050565b6121da6013546110e4601a548461186990919063ffffffff16565b601d60008282546121eb91906124d5565b9091555050601354601b5461220691906110e4908490611869565b601e600082825461221791906124d5565b9091555050601354601c546121a691906110e4908490611869565b600060208083528351808285015260005b8181101561225f57858101830151858201604001528201612243565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461229557600080fd5b50565b600080604083850312156122ab57600080fd5b82356122b681612280565b946020939093013593505050565b803580151581146122d457600080fd5b919050565b6000602082840312156122eb57600080fd5b6110ea826122c4565b60008060006060848603121561230957600080fd5b505081359360208301359350604090920135919050565b60008060006060848603121561233557600080fd5b833561234081612280565b9250602084013561235081612280565b929592945050506040919091013590565b6000806040838503121561237457600080fd5b823561237f81612280565b915061238d602084016122c4565b90509250929050565b6000806000606084860312156123ab57600080fd5b83356123b681612280565b925060208401356123c681612280565b915060408401356123d681612280565b809150509250925092565b6000602082840312156123f357600080fd5b81356110ea81612280565b60006020828403121561241057600080fd5b5035919050565b6000806040838503121561242a57600080fd5b823561243581612280565b9150602083013561244581612280565b809150509250929050565b600181811c9082168061246457607f821691505b60208210810361248457634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610ab857610ab86124bf565b81810381811115610ab857610ab86124bf565b8082028115828204841417610ab857610ab86124bf565b60008261252f57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561255c57600080fd5b81516110ea81612280565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125b75784516001600160a01b031683529383019391830191600101612592565b50506001600160a01b03969096166060850152505050608001529392505050565b6000806000606084860312156125ed57600080fd5b835192506020840151915060408401519050925092509256fe5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef44656372656173656420616c6c6f77616e6365206f722062656c6f77207a65726fa264697066735822122045cde83ce310eb0f518d991023af666bd5aa76e8437549683f6bc2bf759a790c64736f6c63430008120033

Deployed Bytecode Sourcemap

3183:16714:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7010:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3902:27;;;;;;;;;;-1:-1:-1;3902:27:0;;;;-1:-1:-1;;;;;3902:27:0;;;;;;-1:-1:-1;;;;;749:32:1;;;731:51;;719:2;704:18;3902:27:0;567:221:1;7921:193:0;;;;;;;;;;-1:-1:-1;7921:193:0;;;;;:::i;:::-;;:::i;:::-;;;1414:14:1;;1407:22;1389:41;;1377:2;1362:18;7921:193:0;1249:187:1;11170:115:0;;;;;;;;;;-1:-1:-1;11170:115:0;;;;;:::i;:::-;;:::i;:::-;;10733:429;;;;;;;;;;-1:-1:-1;10733:429:0;;;;;:::i;:::-;;:::i;7287:100::-;;;;;;;;;;-1:-1:-1;7367:12:0;;7287:100;;;2258:25:1;;;2246:2;2231:18;7287:100:0;2112:177:1;4086:53:0;;;;;;;;;;;;;;;;8122:439;;;;;;;;;;-1:-1:-1;8122:439:0;;;;;:::i;:::-;;:::i;5161:40::-;;;;;;;;;;;;;;;;9617:171;;;;;;;;;;-1:-1:-1;9617:171:0;;;;;:::i;:::-;;:::i;7196:83::-;;;;;;;;;;-1:-1:-1;7262:9:0;;7196:83;;7262:9;;;;3217:36:1;;3205:2;3190:18;7196:83:0;3075:184:1;4714:39:0;;;;;;;;;;;;;;;;11537:289;;;;;;;;;;-1:-1:-1;11537:289:0;;;;;:::i;:::-;;:::i;4002:30::-;;;;;;;;;;-1:-1:-1;4002:30:0;;;;-1:-1:-1;;;;;4002:30:0;;;8569:300;;;;;;;;;;-1:-1:-1;8569:300:0;;;;;:::i;:::-;;:::i;3579:37::-;;;;;;;;;;-1:-1:-1;3579:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3401:49;;;;;;;;;;-1:-1:-1;3401:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;11400:129;;;;;;;;;;-1:-1:-1;11400:129:0;;;;;:::i;:::-;;:::i;4283:41::-;;;;;;;;;;;;;;;;7395:119;;;;;;;;;;-1:-1:-1;7395:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;7488:18:0;7461:7;7488:18;;;:9;:18;;;;;;;7395:119;2730:157;;;;;;;;;;;;;:::i;3965:30::-;;;;;;;;;;-1:-1:-1;3965:30:0;;;;-1:-1:-1;;;;;3965:30:0;;;4490:38;;;;;;;;;;-1:-1:-1;4490:38:0;;;;;;;;4797:40;;;;;;;;;;;;;;;;4411:38;;;;;;;;;;;;;;;;5068:41;;;;;;;;;;;;;;;;3516:56;;;;;;;;;;-1:-1:-1;3516:56:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10082:102;;;;;;;;;;-1:-1:-1;10082:102:0;;;;;:::i;:::-;;:::i;4586:29::-;;;;;;;;;;-1:-1:-1;4586:29:0;;;;;;;;;;;11834:235;;;;;;;;;;;;;:::i;2516:79::-;;;;;;;;;;-1:-1:-1;2554:7:0;2581:6;-1:-1:-1;;;;;2581:6:0;2516:79;;7101:87;;;;;;;;;;;;;:::i;3457:52::-;;;;;;;;;;-1:-1:-1;3457:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;4194:42;;;;;;;;;;;;;;;;10192:100;;;;;;;;;;-1:-1:-1;10192:100:0;;;;;:::i;:::-;;:::i;8877:396::-;;;;;;;;;;-1:-1:-1;8877:396:0;;;;;:::i;:::-;;:::i;9446:163::-;;;;;;;;;;-1:-1:-1;9446:163:0;;;;;:::i;:::-;;:::i;7522:199::-;;;;;;;;;;-1:-1:-1;7522:199:0;;;;;:::i;:::-;;:::i;4039:38::-;;;;;;;;;;-1:-1:-1;4039:38:0;;;;-1:-1:-1;;;;;4039:38:0;;;11293:99;;;;;;;;;;-1:-1:-1;11293:99:0;;;;;:::i;:::-;;:::i;10300:425::-;;;;;;;;;;-1:-1:-1;10300:425:0;;;;;:::i;:::-;;:::i;4456:25::-;;;;;;;;;;;;;;;;4889:39;;;;;;;;;;;;;;;;7729:184;;;;;;;;;;-1:-1:-1;7729:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7878:18:0;;;7846:7;7878:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7729:184;9796:120;;;;;;;;;;-1:-1:-1;9796:120:0;;;;;:::i;:::-;;:::i;4984:40::-;;;;;;;;;;;;;;;;9281:157;;;;;;;;;;-1:-1:-1;9281:157:0;;;;;:::i;:::-;;:::i;4643:19::-;;;;;;;;;;-1:-1:-1;4643:19:0;;;;;;;;;;;12077:254;;;;;;;;;;-1:-1:-1;12077:254:0;;;;;:::i;:::-;;:::i;9924:150::-;;;;;;;;;;-1:-1:-1;9924:150:0;;;;;:::i;:::-;;:::i;3936:22::-;;;;;;;;;;-1:-1:-1;3936:22:0;;;;-1:-1:-1;;;;;3936:22:0;;;2895:281;;;;;;;;;;-1:-1:-1;2895:281:0;;;;;:::i;:::-;;:::i;12339:262::-;;;;;;;;;;-1:-1:-1;12339:262:0;;;;;:::i;:::-;;:::i;4368:36::-;;;;;;;;;;;;;;;;7010:83;7047:13;7080:5;7073:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7010:83;:::o;7921:193::-;8023:4;8045:39;1948:10;8068:7;8077:6;8045:8;:39::i;:::-;-1:-1:-1;8102:4:0;7921:193;;;;;:::o;11170:115::-;2643:6;;-1:-1:-1;;;;;2643:6:0;1948:10;2643:22;2635:67;;;;-1:-1:-1;;;2635:67:0;;;;;;;:::i;:::-;;;;;;;;;11242:26:::1;:35:::0;;-1:-1:-1;;11242:35:0::1;::::0;::::1;;::::0;;;::::1;::::0;;11170:115::o;10733:429::-;2643:6;;-1:-1:-1;;;;;2643:6:0;1948:10;2643:22;2635:67;;;;-1:-1:-1;;;2635:67:0;;;;;;;:::i;:::-;10875:21:::1;:30:::0;;;10916:21:::1;:37:::0;;;10964:21:::1;:37:::0;;;11082:14:::1;::::0;:22:::1;::::0;11101:2:::1;11082:18;:22::i;:::-;11034:44;11064:13:::0;11034:25:::1;:6:::0;11045:13;11034:10:::1;:25::i;:::-;:29:::0;::::1;:44::i;:::-;:70;;11012:142;;;::::0;-1:-1:-1;;;11012:142:0;;5784:2:1;11012:142:0::1;::::0;::::1;5766:21:1::0;5823:2;5803:18;;;5796:30;-1:-1:-1;;;5842:18:1;;;5835:52;5904:18;;11012:142:0::1;5582:346:1::0;11012:142:0::1;10733:429:::0;;;:::o;8122:439::-;8254:4;8271:36;8281:6;8289:9;8300:6;8271:9;:36::i;:::-;8318:213;8341:6;1948:10;8389:131;8445:6;8389:131;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8389:19:0;;;;;;:11;:19;;;;;;;;1948:10;8389:33;;;;;;;;;;:37;:131::i;:::-;8318:8;:213::i;:::-;-1:-1:-1;8549:4:0;8122:439;;;;;:::o;9617:171::-;2643:6;;-1:-1:-1;;;;;2643:6:0;1948:10;2643:22;2635:67;;;;-1:-1:-1;;;2635:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9739:33:0;;;::::1;;::::0;;;:24:::1;:33;::::0;;;;:41;;-1:-1:-1;;9739:41:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9617:171::o;11537:289::-;2643:6;;-1:-1:-1;;;;;2643:6:0;1948:10;2643:22;2635:67;;;;-1:-1:-1;;;2635:67:0;;;;;;;:::i;:::-;11678:15:::1;:34:::0;;-1:-1:-1;;;;;11678:34:0;;::::1;-1:-1:-1::0;;;;;;11678:34:0;;::::1;;::::0;;;11723:15:::1;:34:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;11768:23:::1;:50:::0;;;;;::::1;::::0;::::1;;::::0;;11537:289::o;8569:300::-;1948:10;8684:4;8778:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8778:34:0;;;;;;;;;;8684:4;;8706:133;;8756:7;;8778:50;;8817:10;8778:38;:50::i;11400:129::-;2643:6;;-1:-1:-1;;;;;2643:6:0;1948:10;2643:22;2635:67;;;;-1:-1:-1;;;2635:67:0;;;;;;;:::i;:::-;11471:50:::1;::::0;-1:-1:-1;;;;;11471:27:0;::::1;::::0;11499:21:::1;11471:50:::0;::::1;;;::::0;::::1;::::0;;;11499:21;11471:27;:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11400:129:::0;:::o;2730:157::-;2643:6;;-1:-1:-1;;;;;2643:6:0;1948:10;2643:22;2635:67;;;;-1:-1:-1;;;2635:67:0;;;;;;;:::i;:::-;2837:1:::1;2821:6:::0;;2800:40:::1;::::0;-1:-1:-1;;;;;2821:6:0;;::::1;::::0;2800:40:::1;::::0;2837:1;;2800:40:::1;2876:1;2851:28:::0;;-1:-1:-1;;;;;;2851:28:0::1;::::0;;2730:157::o;10082:102::-;2643:6;;-1:-1:-1;;;;;2643:6:0;1948:10;2643:22;2635:67;;;;-1:-1:-1;;;2635:67:0;;;;;;;:::i;:::-;10154:12:::1;:22:::0;10082:102::o;11834:235::-;2643:6;;-1:-1:-1;;;;;2643:6:0;1948:10;2643:22;2635:67;;;;-1:-1:-1;;;2635:67:0;;;;;;;:::i;:::-;11898:7:::1;::::0;;;::::1;;;11897:8;11889:36;;;::::0;-1:-1:-1;;;11889:36:0;;6135:2:1;11889:36:0::1;::::0;::::1;6117:21:1::0;6174:2;6154:18;;;6147:30;-1:-1:-1;;;6193:18:1;;;6186:45;6248:18;;11889:36:0::1;5933:339:1::0;11889:36:0::1;11936:7;:14:::0;;-1:-1:-1;;11989:33:0;;;;;12046:15:::1;12033:10;:28:::0;11834:235::o;7101:87::-;7140:13;7173:7;7166:14;;;;;:::i;10192:100::-;2643:6;;-1:-1:-1;;;;;2643:6:0;1948:10;2643:22;2635:67;;;;-1:-1:-1;;;2635:67:0;;;;;;;:::i;:::-;10263:11:::1;:21:::0;10192:100::o;8877:396::-;8997:4;9019:224;1948:10;9069:7;9091:141;9148:15;9091:141;;;;;;;;;;;;;;;;;1948:10;9091:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9091:34:0;;;;;;;;;;;;:38;:141::i;9446:163::-;2643:6;;-1:-1:-1;;;;;2643:6:0;1948:10;2643:22;2635:67;;;;-1:-1:-1;;;2635:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9564:29:0;;;::::1;;::::0;;;:20:::1;:29;::::0;;;;:37;;-1:-1:-1;;9564:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9446:163::o;7522:199::-;7627:4;7649:42;1948:10;7673:9;7684:6;7649:9;:42::i;11293:99::-;2643:6;;-1:-1:-1;;;;;2643:6:0;1948:10;2643:22;2635:67;;;;-1:-1:-1;;;2635:67:0;;;;;;;:::i;:::-;11365:10:::1;:19:::0;;;::::1;;;;-1:-1:-1::0;;11365:19:0;;::::1;::::0;;;::::1;::::0;;11293:99::o;10300:425::-;2643:6;;-1:-1:-1;;;;;2643:6:0;1948:10;2643:22;2635:67;;;;-1:-1:-1;;;2635:67:0;;;;;;;:::i;:::-;10441:20:::1;:29:::0;;;10481:20:::1;:36:::0;;;10528:20:::1;:36:::0;;;10645:14:::1;::::0;:22:::1;::::0;10664:2:::1;10645:18;:22::i;9796:120::-:0;2643:6;;-1:-1:-1;;;;;2643:6:0;1948:10;2643:22;2635:67;;;;-1:-1:-1;;;2635:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9886:14:0::1;9903:5;9886:14:::0;;;:5:::1;:14;::::0;;;;:22;;-1:-1:-1;;9886:22:0::1;::::0;;9796:120::o;9281:157::-;2643:6;;-1:-1:-1;;;;;2643:6:0;1948:10;2643:22;2635:67;;;;-1:-1:-1;;;2635:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9396:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:34;;-1:-1:-1;;9396:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9281:157::o;12077:254::-;12140:7;12160:11;12174:128;12277:14;;12174:84;12185:72;12236:20;;12185:46;12210:20;;12185;;:24;;:46;;;;:::i;:72::-;12174:6;;:10;:84::i;:::-;:88;;:128::i;:::-;12160:142;12077:254;-1:-1:-1;;;12077:254:0:o;9924:150::-;2643:6;;-1:-1:-1;;;;;2643:6:0;1948:10;2643:22;2635:67;;;;-1:-1:-1;;;2635:67:0;;;;;;;:::i;:::-;10016:1:::1;10006:7;:11;9998:33;;;::::0;-1:-1:-1;;;9998:33:0;;6479:2:1;9998:33:0::1;::::0;::::1;6461:21:1::0;6518:2;6498:18;;;6491:30;-1:-1:-1;;;6537:18:1;;;6530:40;6587:18;;9998:33:0::1;6277:334:1::0;9998:33:0::1;10042:14;:24:::0;9924:150::o;2895:281::-;2643:6;;-1:-1:-1;;;;;2643:6:0;1948:10;2643:22;2635:67;;;;-1:-1:-1;;;2635:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2998:22:0;::::1;2976:110;;;::::0;-1:-1:-1;;;2976:110:0;;6818:2:1;2976:110:0::1;::::0;::::1;6800:21:1::0;6857:2;6837:18;;;6830:30;6896:34;6876:18;;;6869:62;-1:-1:-1;;;6947:18:1;;;6940:36;6993:19;;2976:110:0::1;6616:402:1::0;2976:110:0::1;3123:6;::::0;;3102:38:::1;::::0;-1:-1:-1;;;;;3102:38:0;;::::1;::::0;3123:6;::::1;::::0;3102:38:::1;::::0;::::1;3151:6;:17:::0;;-1:-1:-1;;;;;;3151:17:0::1;-1:-1:-1::0;;;;;3151:17:0;;;::::1;::::0;;;::::1;::::0;;2895:281::o;12339:262::-;12403:7;12423:11;12437:135;12557:14;;12437:101;12462:75;12515:21;;12462:48;12488:21;;12462;;:25;;:48;;;;:::i;22193:132::-;22251:7;22278:39;22282:1;22285;22278:39;;;;;;;;;;;;;;;;;:3;:39::i;12609:357::-;-1:-1:-1;;;;;12736:19:0;;12728:61;;;;-1:-1:-1;;;12728:61:0;;7225:2:1;12728:61:0;;;7207:21:1;7264:2;7244:18;;;7237:30;7303:31;7283:18;;;7276:59;7352:18;;12728:61:0;7023:353:1;12728:61:0;-1:-1:-1;;;;;12808:21:0;;12800:61;;;;-1:-1:-1;;;12800:61:0;;7583:2:1;12800:61:0;;;7565:21:1;7622:2;7602:18;;;7595:30;7661:29;7641:18;;;7634:57;7708:18;;12800:61:0;7381:351:1;12800:61:0;-1:-1:-1;;;;;12874:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12926:32;;2258:25:1;;;12926:32:0;;2231:18:1;12926:32:0;;;;;;;12609:357;;;:::o;21147:181::-;21205:7;;21237:5;21241:1;21237;:5;:::i;:::-;21225:17;;21266:1;21261;:6;;21253:46;;;;-1:-1:-1;;;21253:46:0;;8201:2:1;21253:46:0;;;8183:21:1;8240:2;8220:18;;;8213:30;8279:29;8259:18;;;8252:57;8326:18;;21253:46:0;7999:351:1;12974:1810:0;-1:-1:-1;;;;;13096:18:0;;13088:61;;;;-1:-1:-1;;;13088:61:0;;8557:2:1;13088:61:0;;;8539:21:1;8596:2;8576:18;;;8569:30;8635:32;8615:18;;;8608:60;8685:18;;13088:61:0;8355:354:1;13088:61:0;-1:-1:-1;;;;;13168:16:0;;13160:57;;;;-1:-1:-1;;;13160:57:0;;8916:2:1;13160:57:0;;;8898:21:1;8955:2;8935:18;;;8928:30;8994;8974:18;;;8967:58;9042:18;;13160:57:0;8714:352:1;13160:57:0;13245:1;13236:6;:10;13228:55;;;;-1:-1:-1;;;13228:55:0;;9273:2:1;13228:55:0;;;9255:21:1;;;9292:18;;;9285:30;9351:34;9331:18;;;9324:62;9403:18;;13228:55:0;9071:356:1;13228:55:0;-1:-1:-1;;;;;13303:11:0;;;;;;:5;:11;;;;;;;;13302:12;13294:37;;;;-1:-1:-1;;;13294:37:0;;9634:2:1;13294:37:0;;;9616:21:1;9673:2;9653:18;;;9646:30;-1:-1:-1;;;9692:18:1;;;9685:42;9744:18;;13294:37:0;9432:336:1;13294:37:0;-1:-1:-1;;;;;13349:26:0;;;;;;:20;:26;;;;;;;;13348:27;:56;;;;-1:-1:-1;;;;;;13380:24:0;;;;;;:20;:24;;;;;;;;13379:25;13348:56;13344:743;;;13439:11;;13429:6;:21;;13421:55;;;;-1:-1:-1;;;13421:55:0;;9975:2:1;13421:55:0;;;9957:21:1;10014:2;9994:18;;;9987:30;-1:-1:-1;;;10033:18:1;;;10026:51;10094:18;;13421:55:0;9773:345:1;13421:55:0;13542:7;;;;;;;13537:174;;13600:7;;-1:-1:-1;;;;;13600:15:0;;;:7;;:15;;;;:32;;-1:-1:-1;13619:7:0;;-1:-1:-1;;;;;13619:13:0;;;:7;;:13;;13600:32;13570:125;;;;-1:-1:-1;;;13570:125:0;;10325:2:1;13570:125:0;;;10307:21:1;10364:2;10344:18;;;10337:30;-1:-1:-1;;;10383:18:1;;;10376:49;10442:18;;13570:125:0;10123:343:1;13570:125:0;13802:11;;13789:10;;:24;;;;:::i;:::-;13771:15;:42;:89;;;;-1:-1:-1;13850:9:0;;-1:-1:-1;;;;;13834:26:0;;;13850:9;;13834:26;;13771:89;13749:327;;;13899:7;;-1:-1:-1;;;;;13899:15:0;;;:7;;:15;13895:166;;-1:-1:-1;;;;;13939:9:0;;;;;;:5;:9;;;;;:16;;-1:-1:-1;;13939:16:0;13951:4;13939:16;;;13895:166;;;13985:7;;-1:-1:-1;;;;;13985:13:0;;;:7;;:13;13981:80;;-1:-1:-1;;;;;14023:11:0;;;;;;:5;:11;;;;;:18;;-1:-1:-1;;14023:18:0;14037:4;14023:18;;;13981:80;-1:-1:-1;;;;;14104:28:0;;;;;;:24;:28;;;;;;;;14099:187;;14204:12;;14175:25;14193:6;14175:13;14185:2;-1:-1:-1;;;;;7488:18:0;7461:7;7488:18;;;:9;:18;;;;;;;7395:119;14175:25;:41;;14149:125;;;;-1:-1:-1;;;14149:125:0;;10673:2:1;14149:125:0;;;10655:21:1;10712:2;10692:18;;;10685:30;-1:-1:-1;;;10731:18:1;;;10724:52;10793:18;;14149:125:0;10471:346:1;14149:125:0;14327:30;14348:4;14354:2;14327:20;:30::i;:::-;-1:-1:-1;;;;;14550:23:0;;14431:12;14550:23;;;:17;:23;;;;;;14446:4;;14550:23;;;:48;;-1:-1:-1;;;;;;14577:21:0;;;;;;:17;:21;;;;;;;;14550:48;:63;;;-1:-1:-1;14603:10:0;;;;;;;14602:11;14550:63;14546:111;;;-1:-1:-1;14640:5:0;14546:111;14735:41;14750:4;14756:2;14760:6;14768:7;14735:14;:41::i;:::-;13077:1707;12974:1810;;;:::o;21480:226::-;21600:7;21636:12;21628:6;;;;21620:29;;;;-1:-1:-1;;;21620:29:0;;;;;;;;:::i;:::-;-1:-1:-1;21660:9:0;21672:5;21676:1;21672;:5;:::i;:::-;21660:17;21480:226;-1:-1:-1;;;;;21480:226:0:o;21714:471::-;21772:7;22017:1;22022;22017:6;22013:47;;-1:-1:-1;22047:1:0;22040:8;;22013:47;22072:9;22084:5;22088:1;22084;:5;:::i;:::-;22072:17;-1:-1:-1;22117:1:0;22108:5;22112:1;22072:17;22108:5;:::i;:::-;:10;22100:56;;;;-1:-1:-1;;;22100:56:0;;11552:2:1;22100:56:0;;;11534:21:1;11591:2;11571:18;;;11564:30;11630:34;11610:18;;;11603:62;-1:-1:-1;;;11681:18:1;;;11674:31;11722:19;;22100:56:0;11350:397:1;22333:312:0;22453:7;22488:12;22481:5;22473:28;;;;-1:-1:-1;;;22473:28:0;;;;;;;;:::i;:::-;-1:-1:-1;22512:9:0;22524:5;22528:1;22524;:5;:::i;17157:2737::-;17559:4;17510:28;7488:18;;;:9;:18;;;;;;17620:14;;17596:38;;;;;;;17665:42;;-1:-1:-1;17700:7:0;;-1:-1:-1;;;;;17692:15:0;;;17700:7;;17692:15;;17665:42;:85;;;;-1:-1:-1;17724:26:0;;;;17665:85;:152;;;;-1:-1:-1;;;;;;17769:21:0;;17785:4;17769:21;:47;;;;-1:-1:-1;17808:7:0;;-1:-1:-1;;;;;17794:22:0;;;17808:7;;17794:22;17769:47;17767:50;17665:152;17647:2240;;;17924:9;;17892:65;;17909:4;;-1:-1:-1;;;;;17924:9:0;17936:20;17892:8;:65::i;:::-;17998:19;;17974:21;;17998:26;;18022:1;17998:23;:26::i;:::-;17974:50;;18039:26;18068:38;18092:13;18068:19;;:23;;:38;;;;:::i;:::-;18039:67;-1:-1:-1;18123:30:0;18156:76;:20;18039:67;18156:24;:76::i;:::-;18392:9;;18123:109;;-1:-1:-1;18273:21:0;;18361:66;;-1:-1:-1;;;;;18392:9:0;18123:109;18361:22;:66::i;:::-;18444:20;18467:40;:21;18493:13;18467:25;:40::i;:::-;18444:63;-1:-1:-1;18522:31:0;18556:95;18628:22;18556:49;18444:63;18591:13;18556:34;:49::i;:95::-;18522:129;;18666:23;18692:97;18752:22;18692:37;18709:19;;18692:12;:16;;:37;;;;:::i;:97::-;18666:123;-1:-1:-1;18804:23:0;18830:94;18666:123;18830:41;:12;18847:23;18830:16;:41::i;:::-;:45;;:94::i;:::-;18804:120;-1:-1:-1;18982:27:0;;18978:461;;19079:9;;19112:23;;19030:211;;-1:-1:-1;;;;;19079:9:0;;;;19112:23;19158:18;19199:23;19030:18;:211::i;:::-;19267:156;;;11954:25:1;;;12010:2;11995:18;;11988:34;;;12038:18;;;12031:34;;;19267:156:0;;11942:2:1;11927:18;19267:156:0;;;;;;;18978:461;19507:19;;19503:75;;19536:15;;19528:50;;-1:-1:-1;;;;;19536:15:0;;;;19528:50;;;;;19562:15;;19536;19528:50;19536:15;19528:50;19562:15;19536;19528:50;;;;;;;;;;;;;;;;;;;;;19503:75;19649:19;;19645:75;;19678:15;;19670:50;;-1:-1:-1;;;;;19678:15:0;;;;19670:50;;;;;19704:15;;19678;19670:50;19678:15;19670:50;19704:15;19678;19670:50;;;;;;;;;;;;;;;;;;;;;19645:75;-1:-1:-1;;19798:1:0;19776:19;:23;;;19814:19;:23;;;19852:19;:23;-1:-1:-1;;;;;;17221:2673:0;;17157:2737;;:::o;14865:1363::-;15020:7;;-1:-1:-1;;;;;15020:17:0;;;:7;;:17;:28;;;;;15041:7;15020:28;15016:1205;;;15065:14;15082:24;15099:6;15082:16;:24::i;:::-;15065:41;-1:-1:-1;15121:23:0;15147:18;:6;15065:41;15147:10;:18::i;:::-;15121:44;;15200:52;15222:6;15200:52;;;;;;;;;;;;;-1:-1:-1;;;15200:52:0;;;:9;:17;15210:6;-1:-1:-1;;;;;15200:17:0;-1:-1:-1;;;;;15200:17:0;;;;;;;;;;;;;:21;;:52;;;;;:::i;:::-;-1:-1:-1;;;;;15180:17:0;;;;;;;:9;:17;;;;;;:72;;;;15290:20;;;;;;;:41;;15315:15;15290:24;:41::i;:::-;-1:-1:-1;;;;;15267:20:0;;;;;;;:9;:20;;;;;;;:64;;;;15353:44;;;;;;-1:-1:-1;;;;;;;;;;;15353:44:0;;;15381:15;2258:25:1;;2246:2;2231:18;;2112:177;15353:44:0;;;;;;;;15412:28;15425:6;15433;15412:12;:28::i;:::-;15455:30;15478:6;15455:22;:30::i;:::-;15050:447;;15016:1205;;;15507:7;;-1:-1:-1;;;;;15507:20:0;;;:7;;:20;:31;;;;;15531:7;15507:31;15503:718;;;15555:14;15572:25;15590:6;15572:17;:25::i;:::-;15555:42;-1:-1:-1;15612:23:0;15638:18;:6;15555:42;15638:10;:18::i;:::-;15612:44;;15691:52;15713:6;15691:52;;;;;;;;;;;;;-1:-1:-1;;;15691:52:0;;;:9;:17;15701:6;-1:-1:-1;;;;;15691:17:0;-1:-1:-1;;;;;15691:17:0;;;;;;;;;;;;;:21;;:52;;;;;:::i;:::-;-1:-1:-1;;;;;15671:17:0;;;;;;;:9;:17;;;;;;:72;;;;15781:20;;;;;;;:41;;15806:15;15781:24;:41::i;:::-;-1:-1:-1;;;;;15758:20:0;;;;;;;:9;:20;;;;;;;:64;;;;15844:44;;;;;;-1:-1:-1;;;;;;;;;;;15844:44:0;;;15872:15;2258:25:1;;2246:2;2231:18;;2112:177;15844:44:0;;;;;;;;15903:28;15916:6;15924;15903:12;:28::i;:::-;15946:31;15970:6;15946:23;:31::i;15503:718::-;16030:52;;;;;;;;;;;-1:-1:-1;;;16030:52:0;;;;;;;;-1:-1:-1;;;;;16030:17:0;;-1:-1:-1;16030:17:0;;;:9;:17;;;;;;;;:52;;16052:6;;16030:21;:52::i;:::-;-1:-1:-1;;;;;16010:17:0;;;;;;;:9;:17;;;;;;:72;;;;16120:20;;;;;;;:32;;16145:6;16120:24;:32::i;:::-;-1:-1:-1;;;;;16097:20:0;;;;;;;:9;:20;;;;;;;:55;;;;16174:35;;;;;;-1:-1:-1;;;;;;;;;;;16174:35:0;;;16202:6;2258:25:1;;2246:2;2231:18;;2112:177;16174:35:0;;;;;;;;14865:1363;;;;:::o;21336:136::-;21394:7;21421:43;21425:1;21428;21421:43;;;;;;;;;;;;;;;;;:3;:43::i;19993:603::-;20238:16;;;20252:1;20238:16;;;;;;;;20131:13;;20097:20;;20238:16;20252:1;20238:16;;;;;;;;;;-1:-1:-1;20238:16:0;20214:40;;20283:4;20265;20270:1;20265:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;20265:23:0;;;-1:-1:-1;;;;;20265:23:0;;;;;20309:9;-1:-1:-1;;;;;20309:14:0;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20299:4;20304:1;20299:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20299:26:0;;;:7;;;;;;;;;:26;20364:60;;;20439:11;20465:1;20509:4;20536;20556:21;:15;20574:3;20556:21;:::i;:::-;20364:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20086:510;;19993:603;;:::o;20604:512::-;20801:13;-1:-1:-1;;;;;20858:25:0;;;20891:9;20924:4;20944:11;20767:20;;21056:5;21076:21;:15;21094:3;21076:21;:::i;:::-;20858:250;;;;;;-1:-1:-1;;;;;;20858:250:0;;;-1:-1:-1;;;;;13940:15:1;;;20858:250:0;;;13922:34:1;13972:18;;;13965:34;;;;14015:18;;;14008:34;;;;14058:18;;;14051:34;;;;14122:15;;;14101:19;;;14094:44;14154:19;;;14147:35;;;;13856:19;;20858:250:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;16236:201::-;16354:4;16336:24;;;;:9;:24;;;;;;:36;;16365:6;16336:28;:36::i;:::-;16327:4;16309:24;;;;:9;:24;;;;;;;:63;;;;16390:39;;-1:-1:-1;;;;;16390:39:0;;;-1:-1:-1;;;;;;;;;;;16390:39:0;;;16422:6;2258:25:1;;2246:2;2231:18;;2112:177;16390:39:0;;;;;;;;16236:201;;:::o;16445:346::-;16535:76;16586:14;;16535:32;16546:20;;16535:6;:10;;:32;;;;:::i;:76::-;16512:19;;:99;;;;;;;:::i;:::-;;;;-1:-1:-1;;16682:14:0;;16656:20;;16645:52;;16682:14;16645:32;;:6;;:10;:32::i;:52::-;16622:19;;:75;;;;;;;:::i;:::-;;;;-1:-1:-1;;16768:14:0;;16742:20;;16731:52;;16768:14;16731:32;;:6;;:10;:32::i;:52::-;16708:19;;:75;;;;;;;:::i;:::-;;;;-1:-1:-1;;;16445:346:0:o;16799:350::-;16890:77;16942:14;;16890:33;16901:21;;16890:6;:10;;:33;;;;:::i;:77::-;16867:19;;:100;;;;;;;:::i;:::-;;;;-1:-1:-1;;17039:14:0;;17012:21;;17001:53;;17039:14;17001:33;;:6;;:10;:33::i;:53::-;16978:19;;:76;;;;;;;:::i;:::-;;;;-1:-1:-1;;17126:14:0;;17099:21;;17088:53;;17126:14;17088:33;;:6;;:10;:33::i;14:548: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;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;793:131::-;-1:-1:-1;;;;;868:31:1;;858:42;;848:70;;914:1;911;904:12;848:70;793:131;:::o;929:315::-;997:6;1005;1058:2;1046:9;1037:7;1033:23;1029:32;1026:52;;;1074:1;1071;1064:12;1026:52;1113:9;1100:23;1132:31;1157:5;1132:31;:::i;:::-;1182:5;1234:2;1219:18;;;;1206:32;;-1:-1:-1;;;929:315:1:o;1441:160::-;1506:20;;1562:13;;1555:21;1545:32;;1535:60;;1591:1;1588;1581:12;1535:60;1441:160;;;:::o;1606:180::-;1662:6;1715:2;1703:9;1694:7;1690:23;1686:32;1683:52;;;1731:1;1728;1721:12;1683:52;1754:26;1770:9;1754:26;:::i;1791:316::-;1868:6;1876;1884;1937:2;1925:9;1916:7;1912:23;1908:32;1905:52;;;1953:1;1950;1943:12;1905:52;-1:-1:-1;;1976:23:1;;;2046:2;2031:18;;2018:32;;-1:-1:-1;2097:2:1;2082:18;;;2069:32;;1791:316;-1:-1:-1;1791:316:1:o;2294:456::-;2371:6;2379;2387;2440:2;2428:9;2419:7;2415:23;2411:32;2408:52;;;2456:1;2453;2446:12;2408:52;2495:9;2482:23;2514:31;2539:5;2514:31;:::i;:::-;2564:5;-1:-1:-1;2621:2:1;2606:18;;2593:32;2634:33;2593:32;2634:33;:::i;:::-;2294:456;;2686:7;;-1:-1:-1;;;2740:2:1;2725:18;;;;2712:32;;2294:456::o;2755:315::-;2820:6;2828;2881:2;2869:9;2860:7;2856:23;2852:32;2849:52;;;2897:1;2894;2887:12;2849:52;2936:9;2923:23;2955:31;2980:5;2955:31;:::i;:::-;3005:5;-1:-1:-1;3029:35:1;3060:2;3045:18;;3029:35;:::i;:::-;3019:45;;2755:315;;;;;:::o;3264:529::-;3341:6;3349;3357;3410:2;3398:9;3389:7;3385:23;3381:32;3378:52;;;3426:1;3423;3416:12;3378:52;3465:9;3452:23;3484:31;3509:5;3484:31;:::i;:::-;3534:5;-1:-1:-1;3591:2:1;3576:18;;3563:32;3604:33;3563:32;3604:33;:::i;:::-;3656:7;-1:-1:-1;3715:2:1;3700:18;;3687:32;3728:33;3687:32;3728:33;:::i;:::-;3780:7;3770:17;;;3264:529;;;;;:::o;4006:247::-;4065:6;4118:2;4106:9;4097:7;4093:23;4089:32;4086:52;;;4134:1;4131;4124:12;4086:52;4173:9;4160:23;4192:31;4217:5;4192:31;:::i;4258:180::-;4317:6;4370:2;4358:9;4349:7;4345:23;4341:32;4338:52;;;4386:1;4383;4376:12;4338:52;-1:-1:-1;4409:23:1;;4258:180;-1:-1:-1;4258:180:1:o;4443:388::-;4511:6;4519;4572:2;4560:9;4551:7;4547:23;4543:32;4540:52;;;4588:1;4585;4578:12;4540:52;4627:9;4614:23;4646:31;4671:5;4646:31;:::i;:::-;4696:5;-1:-1:-1;4753:2:1;4738:18;;4725:32;4766:33;4725:32;4766:33;:::i;:::-;4818:7;4808:17;;;4443:388;;;;;:::o;4836:380::-;4915:1;4911:12;;;;4958;;;4979:61;;5033:4;5025:6;5021:17;5011:27;;4979:61;5086:2;5078:6;5075:14;5055:18;5052:38;5049:161;;5132:10;5127:3;5123:20;5120:1;5113:31;5167:4;5164:1;5157:15;5195:4;5192:1;5185:15;5049:161;;4836:380;;;:::o;5221:356::-;5423:2;5405:21;;;5442:18;;;5435:30;5501:34;5496:2;5481:18;;5474:62;5568:2;5553:18;;5221:356::o;7737:127::-;7798:10;7793:3;7789:20;7786:1;7779:31;7829:4;7826:1;7819:15;7853:4;7850:1;7843:15;7869:125;7934:9;;;7955:10;;;7952:36;;;7968:18;;:::i;10822:128::-;10889:9;;;10910:11;;;10907:37;;;10924:18;;:::i;10955:168::-;11028:9;;;11059;;11076:15;;;11070:22;;11056:37;11046:71;;11097:18;;:::i;11128:217::-;11168:1;11194;11184:132;;11238:10;11233:3;11229:20;11226:1;11219:31;11273:4;11270:1;11263:15;11301:4;11298:1;11291:15;11184:132;-1:-1:-1;11330:9:1;;11128:217::o;12208:127::-;12269:10;12264:3;12260:20;12257:1;12250:31;12300:4;12297:1;12290:15;12324:4;12321:1;12314:15;12340:251;12410:6;12463:2;12451:9;12442:7;12438:23;12434:32;12431:52;;;12479:1;12476;12469:12;12431:52;12511:9;12505:16;12530:31;12555:5;12530:31;:::i;12596:980::-;12858:4;12906:3;12895:9;12891:19;12937:6;12926:9;12919:25;12963:2;13001:6;12996:2;12985:9;12981:18;12974:34;13044:3;13039:2;13028:9;13024:18;13017:31;13068:6;13103;13097:13;13134:6;13126;13119:22;13172:3;13161:9;13157:19;13150:26;;13211:2;13203:6;13199:15;13185:29;;13232:1;13242:195;13256:6;13253:1;13250:13;13242:195;;;13321:13;;-1:-1:-1;;;;;13317:39:1;13305:52;;13412:15;;;;13377:12;;;;13353:1;13271:9;13242:195;;;-1:-1:-1;;;;;;;13493:32:1;;;;13488:2;13473:18;;13466:60;-1:-1:-1;;;13557:3:1;13542:19;13535:35;13454:3;12596:980;-1:-1:-1;;;12596:980:1:o;14193:306::-;14281:6;14289;14297;14350:2;14338:9;14329:7;14325:23;14321:32;14318:52;;;14366:1;14363;14356:12;14318:52;14395:9;14389:16;14379:26;;14445:2;14434:9;14430:18;14424:25;14414:35;;14489:2;14478:9;14474:18;14468:25;14458:35;;14193:306;;;;;:::o

Swarm Source

ipfs://45cde83ce310eb0f518d991023af666bd5aa76e8437549683f6bc2bf759a790c
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.