ETH Price: $3,246.56 (-0.41%)
Gas: 1 Gwei

Token

Bullepe (BULLEPE)
 

Overview

Max Total Supply

1,000,000,000 BULLEPE

Holders

40

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
17,364,434.104479100902965674 BULLEPE

Value
$0.00
0xeedafa1b6505d0c0ceadc2a3efd2fda09cc6f62a
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:
BULLEPE

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-09
*/

/**
Website:  https://bullepe.com
X:  https://x.com/bullepeoneth
Telegram:  https://t.me/bullepeoneth
 */


// SPDX-License-Identifier: MIT

pragma solidity ^0.8.19;
pragma experimental ABIEncoderV2;

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

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

interface IUniswapV2Router02 {
    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;
}

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

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );

    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address to, 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 from,
        address to,
        uint256 amount
    ) external returns (bool);
}

abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

contract BULLEPE is IERC20, Ownable {
    mapping(address => uint256) private _balances;

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

    IUniswapV2Router02 public immutable _uniswapV2Router;
    address private uniswapV2Pair;
    address private deployerWallet;
    address private marketingWallet;
    address private constant deadAddress = address(0xdead);

    bool private swapping;

    string private constant _name = "Bullepe";
    string private constant _symbol = "BULLEPE";

    uint256 public initialTotalSupply = 1_000_000_000 * 1e18;
    uint256 public maxTransactionAmount = 20_000_000 * 1e18;
    uint256 public maxWallet = 20_000_000 * 1e18;
    uint256 public swapTokensAtAmount = 5_000 * 1e18;
    uint256 public maxSwapAt = 10_000_000 * 1e18;

    bool public tradingOpen = false;
    bool public swapEnabled = false;

    uint256 public BuyFee = 30;
    uint256 public SellFee = 30;

    mapping(address => bool) public _isExcludedFromFees;
    mapping(address => bool) public _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;

    event ExcludeFromFees(address indexed account, bool isExcluded);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);

    constructor() {
        _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        marketingWallet = payable(0xe7A846a8F59A1d0977EB5d051b80A6278559Da98);

        deployerWallet = payable(_msgSender());
        excludeFromFees(marketingWallet, true);

        excludeFromMaxTransaction(owner(), true);
        excludeFromMaxTransaction(address(this), true);
        excludeFromMaxTransaction(address(marketingWallet), true);
        excludeFromMaxTransaction(address(0xdead), true);

        _balances[deployerWallet] = initialTotalSupply;
    }

    function createPair() external onlyOwner {
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);

        _approve(address(this), address(_uniswapV2Router), initialTotalSupply);

        _uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
    }

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

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

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

    function totalSupply() public view virtual returns (uint256) {
        return initialTotalSupply;
    }

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

    function transfer(address to, uint256 amount)
        public
        virtual
        returns (bool)
    {
        address owner = _msgSender();
        _transfer(owner, to, amount);
        return true;
    }

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

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

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue)
        public
        virtual
        returns (bool)
    {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        virtual
        returns (bool)
    {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(
            currentAllowance >= subtractedValue,
            "ERC20: decreased allowance below zero"
        );
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

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

    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(
                currentAllowance >= amount,
                "ERC20: insufficient allowance"
            );
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }

    receive() external payable {}

    function openTrade() external onlyOwner {
        require(!tradingOpen, "Trading is already enabled");
        tradingOpen = true;
        swapEnabled = true;
    }

    function excludeFromMaxTransaction(address updAds, bool isEx) private {
        _isExcludedMaxTransactionAmount[updAds] = isEx;
    }

    function excludeFromFees(address account, bool excluded) private {
        _isExcludedFromFees[account] = excluded;
        emit ExcludeFromFees(account, excluded);
    }

    function setAutomatedMarketMakerPair(address pair, bool value)
        public
        onlyOwner
    {
        require(
            pair != uniswapV2Pair,
            "The pair cannot be removed from automatedMarketMakerPairs"
        );
        _setAutomatedMarketMakerPair(pair, value);
    }

    function _setAutomatedMarketMakerPair(address pair, bool value) private {
        automatedMarketMakerPairs[pair] = value;
        emit SetAutomatedMarketMakerPair(pair, value);
    }

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

        bool isTransfer = !automatedMarketMakerPairs[from] &&
            !automatedMarketMakerPairs[to];

        if (
            from != owner() &&
            to != owner() &&
            to != address(0) &&
            to != address(0xdead) &&
            !swapping
        ) {
            if (!tradingOpen) {
                require(
                    _isExcludedMaxTransactionAmount[from] ||
                        _isExcludedMaxTransactionAmount[to],
                    "Trading is not active."
                );
            }

            if (
                automatedMarketMakerPairs[from] &&
                !_isExcludedMaxTransactionAmount[to]
            ) {
                require(
                    amount <= maxTransactionAmount,
                    "Max transaction amount exceeded"
                );
                require(
                    amount + balanceOf(to) <= maxWallet,
                    "Max wallet exceeded"
                );
            } else if (
                automatedMarketMakerPairs[to] &&
                !_isExcludedMaxTransactionAmount[from]
            ) {
                require(
                    amount <= maxTransactionAmount,
                    "Max transaction amount exceeded"
                );
            } else if (
                !_isExcludedMaxTransactionAmount[to] &&
                !automatedMarketMakerPairs[to]
            ) {
                require(
                    amount + balanceOf(to) <= maxWallet,
                    "Max wallet exceeded"
                );
            }
        }

        bool canSwap = amount >= swapTokensAtAmount && !isTransfer;

        if (
            canSwap &&
            !swapping &&
            swapEnabled &&
            !automatedMarketMakerPairs[from] &&
            !_isExcludedFromFees[from] &&
            !_isExcludedFromFees[to]
        ) {
            swapBack();
            payable(marketingWallet).transfer(address(this).balance);
        }

        bool takeFee = true;
        uint256 tookAmount;

        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 fees = 0;

        if (takeFee) {
            if (
                !(from == address(this) ||
                    to == address(this) ||
                    from == owner() ||
                    to == owner())
            ) {
                if (automatedMarketMakerPairs[to]) {
                    fees = (amount * (SellFee)) / (100);
                } else {
                    fees = (amount * (BuyFee)) / (100);
                }
            }

            tookAmount = amount;

            if (fees > 0) {
                _balances[address(this)] += fees;
                emit Transfer(from, address(this), fees);
            }
            amount -= fees;
        }

        _balances[from] -= tookAmount;
        _balances[to] += (amount);
        emit Transfer(from, to, amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();

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

        _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removeLimits() external onlyOwner {
        maxTransactionAmount = type(uint256).max;
        maxWallet = type(uint256).max;
    }

    function clearStuckEth() external onlyOwner {
        require(address(this).balance > 0, "Token: no ETH to clear");
        payable(msg.sender).transfer(address(this).balance);
    }

    function clearStuckTokens(address tokenAddress) external onlyOwner {
        IERC20 tokenContract = IERC20(tokenAddress);
        uint256 balance = tokenContract.balanceOf(address(this));
        require(balance > 0, "No tokens to clear");
        tokenContract.transfer(deployerWallet, balance);
    }

    function setTax(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 40 && _sellFee <= 40, "Fees cannot exceed 40%");
        BuyFee = _buyFee;
        SellFee = _sellFee;
    }

    function manualSwap(uint256 percent) external {
        require(_msgSender() == deployerWallet);
        uint256 totalSupplyAmount = totalSupply();
        uint256 contractBalance = balanceOf(address(this));
        uint256 tokensToSwap;

        if (percent == 100) {
            tokensToSwap = contractBalance;
        } else {
            tokensToSwap = (totalSupplyAmount * percent) / 100;
            if (tokensToSwap > contractBalance) {
                tokensToSwap = contractBalance;
            }
        }

        require(
            tokensToSwap <= contractBalance,
            "Swap amount exceeds contract balance"
        );
        swapTokensForEth(tokensToSwap);
    }

    function swapBack() private {
        uint256 contractBalance = balanceOf(address(this));

        if (contractBalance > maxSwapAt) {
            contractBalance = maxSwapAt;
        }

        if (contractBalance > swapTokensAtAmount) {
            swapping = true;
            swapTokensForEth(contractBalance);
            swapping = false;
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":"BuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","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":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"clearStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"createPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxSwapAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"setTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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"},{"stateMutability":"payable","type":"receive"}]

60a06040526b033b2e3c9fd0803ce80000006006556a108b2a2c28029094000000600781905560085569010f0cf064dd592000006009556a084595161401484a000000600a55600b805461ffff19169055601e600c819055600d553480156200006757600080fd5b5062000073336200019f565b737a250d5630b4cf539739df2c5dacb4c659f2488d608052600580546001600160a01b03191673e7a846a8f59a1d0977eb5d051b80a6278559da98179055620000b93390565b600480546001600160a01b0319166001600160a01b03928316179055600554620000e691166001620001ef565b62000121620000fd6000546001600160a01b031690565b6001600160a01b03166000908152600f60205260409020805460ff19166001179055565b306000908152600f602090815260408083208054600160ff1991821681179092556005546001600160a01b03908116865283862080548316841790557f99629f56119585bf27511b6b7d295dffb54757453fcc3dabcf51d92028301f108054909216831790915560065460045490911685529252909120556200024e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166000818152600e6020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7910160405180910390a25050565b608051611efa6200029b60003960008181610370015281816109bb01528181610a4c01528181610b6d01528181610b96015281816119e501528181611a9e0152611ada0152611efa6000f3fe6080604052600436106101fd5760003560e01c806395d89b411161010d578063cf9522fd116100a0578063e2f456051161006f578063e2f45605146105e9578063f2fde38b146105ff578063f8b45b051461061f578063fb201b1d14610635578063ffb54a991461064a57600080fd5b8063cf9522fd1461056d578063dd62ed3e14610583578063dd854652146105a3578063e0bf7fd1146105b957600080fd5b8063a9059cbb116100dc578063a9059cbb14610501578063b36608f814610521578063b70143c914610537578063c8c8ebe41461055757600080fd5b806395d89b411461047c5780639a7a23d6146104ac5780639e78fb4f146104cc578063a457c2d7146104e157600080fd5b8063395093511161019057806370a082311161015f57806370a08231146103e9578063715018a61461041f578063751039fc1461043457806389291a8f146104495780638da5cb5b1461045e57600080fd5b8063395093511461033e578063583e05681461035e578063667f6526146103aa5780636ddd1713146103ca57600080fd5b806323b872dd116101cc57806323b872dd146102ca578063311028af146102ea578063313ce56714610300578063346cc7be1461031c57600080fd5b806306fdde0314610209578063095ea7b31461024b57806310d5de531461027b57806318160ddd146102ab57600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5060408051808201909152600781526642756c6c65706560c81b60208201525b6040516102429190611ba3565b60405180910390f35b34801561025757600080fd5b5061026b610266366004611c06565b610664565b6040519015158152602001610242565b34801561028757600080fd5b5061026b610296366004611c32565b600f6020526000908152604090205460ff1681565b3480156102b757600080fd5b506006545b604051908152602001610242565b3480156102d657600080fd5b5061026b6102e5366004611c56565b61067e565b3480156102f657600080fd5b506102bc60065481565b34801561030c57600080fd5b5060405160128152602001610242565b34801561032857600080fd5b5061033c610337366004611c32565b6106a2565b005b34801561034a57600080fd5b5061026b610359366004611c06565b6107e2565b34801561036a57600080fd5b506103927f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610242565b3480156103b657600080fd5b5061033c6103c5366004611c97565b610804565b3480156103d657600080fd5b50600b5461026b90610100900460ff1681565b3480156103f557600080fd5b506102bc610404366004611c32565b6001600160a01b031660009081526001602052604090205490565b34801561042b57600080fd5b5061033c61086e565b34801561044057600080fd5b5061033c610882565b34801561045557600080fd5b5061033c610897565b34801561046a57600080fd5b506000546001600160a01b0316610392565b34801561048857600080fd5b5060408051808201909152600781526642554c4c45504560c81b6020820152610235565b3480156104b857600080fd5b5061033c6104c7366004611cc7565b610917565b3480156104d857600080fd5b5061033c6109b1565b3480156104ed57600080fd5b5061026b6104fc366004611c06565b610c8b565b34801561050d57600080fd5b5061026b61051c366004611c06565b610d06565b34801561052d57600080fd5b506102bc600a5481565b34801561054357600080fd5b5061033c610552366004611d00565b610d14565b34801561056357600080fd5b506102bc60075481565b34801561057957600080fd5b506102bc600d5481565b34801561058f57600080fd5b506102bc61059e366004611d19565b610dea565b3480156105af57600080fd5b506102bc600c5481565b3480156105c557600080fd5b5061026b6105d4366004611c32565b600e6020526000908152604090205460ff1681565b3480156105f557600080fd5b506102bc60095481565b34801561060b57600080fd5b5061033c61061a366004611c32565b610e15565b34801561062b57600080fd5b506102bc60085481565b34801561064157600080fd5b5061033c610e8b565b34801561065657600080fd5b50600b5461026b9060ff1681565b600033610672818585610ef7565b60019150505b92915050565b60003361068c85828561101b565b61069785858561108f565b506001949350505050565b6106aa611890565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156106f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107179190611d47565b9050600081116107635760405162461bcd60e51b81526020600482015260126024820152712737903a37b5b2b739903a379031b632b0b960711b60448201526064015b60405180910390fd5b6004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820183905283169063a9059cbb906044016020604051808303816000875af11580156107b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107dc9190611d60565b50505050565b6000336106728185856107f58383610dea565b6107ff9190611d93565b610ef7565b61080c611890565b6028821115801561081e575060288111155b6108635760405162461bcd60e51b8152602060048201526016602482015275466565732063616e6e6f74206578636565642034302560501b604482015260640161075a565b600c91909155600d55565b610876611890565b61088060006118ea565b565b61088a611890565b6000196007819055600855565b61089f611890565b600047116108e85760405162461bcd60e51b81526020600482015260166024820152752a37b5b2b71d1037379022aa24103a379031b632b0b960511b604482015260640161075a565b60405133904780156108fc02916000818181858888f19350505050158015610914573d6000803e3d6000fd5b50565b61091f611890565b6003546001600160a01b03908116908316036109a35760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000606482015260840161075a565b6109ad828261193a565b5050565b6109b9611890565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3b9190611da6565b6001600160a01b031663c9c65396307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610acc9190611da6565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610b19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3d9190611da6565b600380546001600160a01b0319166001600160a01b03929092169182179055610b6790600161193a565b610b94307f0000000000000000000000000000000000000000000000000000000000000000600654610ef7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d7194730610be4306001600160a01b031660009081526001602052604090205490565b600080610bf96000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610c61573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c869190611dc3565b505050565b60003381610c998286610dea565b905083811015610cf95760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161075a565b6106978286868403610ef7565b60003361067281858561108f565b6004546001600160a01b0316336001600160a01b031614610d3457600080fd5b6000610d3f60065490565b306000908152600160205260408120549192506064849003610d62575080610d85565b6064610d6e8585611df1565b610d789190611e08565b905081811115610d855750805b81811115610de15760405162461bcd60e51b8152602060048201526024808201527f5377617020616d6f756e74206578636565647320636f6e74726163742062616c604482015263616e636560e01b606482015260840161075a565b6107dc8161198e565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b610e1d611890565b6001600160a01b038116610e825760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161075a565b610914816118ea565b610e93611890565b600b5460ff1615610ee65760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c6564000000000000604482015260640161075a565b600b805461ffff1916610101179055565b6001600160a01b038316610f595760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161075a565b6001600160a01b038216610fba5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161075a565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006110278484610dea565b905060001981146107dc57818110156110825760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161075a565b6107dc8484848403610ef7565b6001600160a01b0383166110f35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161075a565b6001600160a01b0382166111555760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161075a565b600081116111bd5760405162461bcd60e51b815260206004820152602f60248201527f45524332303a207472616e7366657220616d6f756e742073686f756c6420626560448201526e02067726561746572207468616e203608c1b606482015260840161075a565b6001600160a01b03831660009081526010602052604081205460ff161580156111ff57506001600160a01b03831660009081526010602052604090205460ff16155b90506112136000546001600160a01b031690565b6001600160a01b0316846001600160a01b03161415801561124257506000546001600160a01b03848116911614155b801561125657506001600160a01b03831615155b801561126d57506001600160a01b03831661dead14155b80156112835750600554600160a01b900460ff16155b1561156657600b5460ff16611316576001600160a01b0384166000908152600f602052604090205460ff16806112d157506001600160a01b0383166000908152600f602052604090205460ff165b6113165760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161075a565b6001600160a01b03841660009081526010602052604090205460ff16801561135757506001600160a01b0383166000908152600f602052604090205460ff16155b1561141d576007548211156113ae5760405162461bcd60e51b815260206004820152601f60248201527f4d6178207472616e73616374696f6e20616d6f756e7420657863656564656400604482015260640161075a565b6008546001600160a01b0384166000908152600160205260409020546113d49084611d93565b11156114185760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161075a565b611566565b6001600160a01b03831660009081526010602052604090205460ff16801561145e57506001600160a01b0384166000908152600f602052604090205460ff16155b156114b5576007548211156114185760405162461bcd60e51b815260206004820152601f60248201527f4d6178207472616e73616374696f6e20616d6f756e7420657863656564656400604482015260640161075a565b6001600160a01b0383166000908152600f602052604090205460ff161580156114f757506001600160a01b03831660009081526010602052604090205460ff16155b15611566576008546001600160a01b0384166000908152600160205260409020546115229084611d93565b11156115665760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161075a565b60006009548310158015611578575081155b90508080156115915750600554600160a01b900460ff16155b80156115a45750600b54610100900460ff165b80156115c957506001600160a01b03851660009081526010602052604090205460ff16155b80156115ee57506001600160a01b0385166000908152600e602052604090205460ff16155b801561161357506001600160a01b0384166000908152600e602052604090205460ff16155b1561165b57611620611b4e565b6005546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611659573d6000803e3d6000fd5b505b6001600160a01b0385166000908152600e60205260408120546001919060ff168061169e57506001600160a01b0386166000908152600e602052604090205460ff165b156116a857600091505b600082156117dd576001600160a01b0388163014806116cf57506001600160a01b03871630145b806116e757506000546001600160a01b038981169116145b806116ff57506000546001600160a01b038881169116145b611762576001600160a01b03871660009081526010602052604090205460ff1615611745576064600d54876117349190611df1565b61173e9190611e08565b9050611762565b6064600c54876117559190611df1565b61175f9190611e08565b90505b85915080156117d057306000908152600160205260408120805483929061178a908490611d93565b909155505060405181815230906001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6117da8187611e2a565b95505b6001600160a01b03881660009081526001602052604081208054849290611805908490611e2a565b90915550506001600160a01b03871660009081526001602052604081208054889290611832908490611d93565b92505081905550866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8860405161187e91815260200190565b60405180910390a35050505050505050565b6000546001600160a01b031633146108805760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161075a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216600081815260106020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106119c3576119c3611e3d565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a659190611da6565b81600181518110611a7857611a78611e3d565b60200260200101906001600160a01b031690816001600160a01b031681525050611ac3307f000000000000000000000000000000000000000000000000000000000000000084610ef7565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063791ac94790611b18908590600090869030904290600401611e53565b600060405180830381600087803b158015611b3257600080fd5b505af1158015611b46573d6000803e3d6000fd5b505050505050565b30600090815260016020526040902054600a54811115611b6d5750600a545b600954811115610914576005805460ff60a01b1916600160a01b179055611b938161198e565b6005805460ff60a01b1916905550565b600060208083528351808285015260005b81811015611bd057858101830151858201604001528201611bb4565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461091457600080fd5b60008060408385031215611c1957600080fd5b8235611c2481611bf1565b946020939093013593505050565b600060208284031215611c4457600080fd5b8135611c4f81611bf1565b9392505050565b600080600060608486031215611c6b57600080fd5b8335611c7681611bf1565b92506020840135611c8681611bf1565b929592945050506040919091013590565b60008060408385031215611caa57600080fd5b50508035926020909101359150565b801515811461091457600080fd5b60008060408385031215611cda57600080fd5b8235611ce581611bf1565b91506020830135611cf581611cb9565b809150509250929050565b600060208284031215611d1257600080fd5b5035919050565b60008060408385031215611d2c57600080fd5b8235611d3781611bf1565b91506020830135611cf581611bf1565b600060208284031215611d5957600080fd5b5051919050565b600060208284031215611d7257600080fd5b8151611c4f81611cb9565b634e487b7160e01b600052601160045260246000fd5b8082018082111561067857610678611d7d565b600060208284031215611db857600080fd5b8151611c4f81611bf1565b600080600060608486031215611dd857600080fd5b8351925060208401519150604084015190509250925092565b808202811582820484141761067857610678611d7d565b600082611e2557634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561067857610678611d7d565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ea35784516001600160a01b031683529383019391830191600101611e7e565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122003eb75ccc412c24731c4cb0ac8183305b76819a0c8a0504ed30ef5daaf18262464736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101fd5760003560e01c806395d89b411161010d578063cf9522fd116100a0578063e2f456051161006f578063e2f45605146105e9578063f2fde38b146105ff578063f8b45b051461061f578063fb201b1d14610635578063ffb54a991461064a57600080fd5b8063cf9522fd1461056d578063dd62ed3e14610583578063dd854652146105a3578063e0bf7fd1146105b957600080fd5b8063a9059cbb116100dc578063a9059cbb14610501578063b36608f814610521578063b70143c914610537578063c8c8ebe41461055757600080fd5b806395d89b411461047c5780639a7a23d6146104ac5780639e78fb4f146104cc578063a457c2d7146104e157600080fd5b8063395093511161019057806370a082311161015f57806370a08231146103e9578063715018a61461041f578063751039fc1461043457806389291a8f146104495780638da5cb5b1461045e57600080fd5b8063395093511461033e578063583e05681461035e578063667f6526146103aa5780636ddd1713146103ca57600080fd5b806323b872dd116101cc57806323b872dd146102ca578063311028af146102ea578063313ce56714610300578063346cc7be1461031c57600080fd5b806306fdde0314610209578063095ea7b31461024b57806310d5de531461027b57806318160ddd146102ab57600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5060408051808201909152600781526642756c6c65706560c81b60208201525b6040516102429190611ba3565b60405180910390f35b34801561025757600080fd5b5061026b610266366004611c06565b610664565b6040519015158152602001610242565b34801561028757600080fd5b5061026b610296366004611c32565b600f6020526000908152604090205460ff1681565b3480156102b757600080fd5b506006545b604051908152602001610242565b3480156102d657600080fd5b5061026b6102e5366004611c56565b61067e565b3480156102f657600080fd5b506102bc60065481565b34801561030c57600080fd5b5060405160128152602001610242565b34801561032857600080fd5b5061033c610337366004611c32565b6106a2565b005b34801561034a57600080fd5b5061026b610359366004611c06565b6107e2565b34801561036a57600080fd5b506103927f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6040516001600160a01b039091168152602001610242565b3480156103b657600080fd5b5061033c6103c5366004611c97565b610804565b3480156103d657600080fd5b50600b5461026b90610100900460ff1681565b3480156103f557600080fd5b506102bc610404366004611c32565b6001600160a01b031660009081526001602052604090205490565b34801561042b57600080fd5b5061033c61086e565b34801561044057600080fd5b5061033c610882565b34801561045557600080fd5b5061033c610897565b34801561046a57600080fd5b506000546001600160a01b0316610392565b34801561048857600080fd5b5060408051808201909152600781526642554c4c45504560c81b6020820152610235565b3480156104b857600080fd5b5061033c6104c7366004611cc7565b610917565b3480156104d857600080fd5b5061033c6109b1565b3480156104ed57600080fd5b5061026b6104fc366004611c06565b610c8b565b34801561050d57600080fd5b5061026b61051c366004611c06565b610d06565b34801561052d57600080fd5b506102bc600a5481565b34801561054357600080fd5b5061033c610552366004611d00565b610d14565b34801561056357600080fd5b506102bc60075481565b34801561057957600080fd5b506102bc600d5481565b34801561058f57600080fd5b506102bc61059e366004611d19565b610dea565b3480156105af57600080fd5b506102bc600c5481565b3480156105c557600080fd5b5061026b6105d4366004611c32565b600e6020526000908152604090205460ff1681565b3480156105f557600080fd5b506102bc60095481565b34801561060b57600080fd5b5061033c61061a366004611c32565b610e15565b34801561062b57600080fd5b506102bc60085481565b34801561064157600080fd5b5061033c610e8b565b34801561065657600080fd5b50600b5461026b9060ff1681565b600033610672818585610ef7565b60019150505b92915050565b60003361068c85828561101b565b61069785858561108f565b506001949350505050565b6106aa611890565b6040516370a0823160e01b815230600482015281906000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156106f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107179190611d47565b9050600081116107635760405162461bcd60e51b81526020600482015260126024820152712737903a37b5b2b739903a379031b632b0b960711b60448201526064015b60405180910390fd5b6004805460405163a9059cbb60e01b81526001600160a01b03918216928101929092526024820183905283169063a9059cbb906044016020604051808303816000875af11580156107b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107dc9190611d60565b50505050565b6000336106728185856107f58383610dea565b6107ff9190611d93565b610ef7565b61080c611890565b6028821115801561081e575060288111155b6108635760405162461bcd60e51b8152602060048201526016602482015275466565732063616e6e6f74206578636565642034302560501b604482015260640161075a565b600c91909155600d55565b610876611890565b61088060006118ea565b565b61088a611890565b6000196007819055600855565b61089f611890565b600047116108e85760405162461bcd60e51b81526020600482015260166024820152752a37b5b2b71d1037379022aa24103a379031b632b0b960511b604482015260640161075a565b60405133904780156108fc02916000818181858888f19350505050158015610914573d6000803e3d6000fd5b50565b61091f611890565b6003546001600160a01b03908116908316036109a35760405162461bcd60e51b815260206004820152603960248201527f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060448201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000606482015260840161075a565b6109ad828261193a565b5050565b6109b9611890565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3b9190611da6565b6001600160a01b031663c9c65396307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610aa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610acc9190611da6565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610b19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3d9190611da6565b600380546001600160a01b0319166001600160a01b03929092169182179055610b6790600161193a565b610b94307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d600654610ef7565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663f305d7194730610be4306001600160a01b031660009081526001602052604090205490565b600080610bf96000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610c61573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610c869190611dc3565b505050565b60003381610c998286610dea565b905083811015610cf95760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161075a565b6106978286868403610ef7565b60003361067281858561108f565b6004546001600160a01b0316336001600160a01b031614610d3457600080fd5b6000610d3f60065490565b306000908152600160205260408120549192506064849003610d62575080610d85565b6064610d6e8585611df1565b610d789190611e08565b905081811115610d855750805b81811115610de15760405162461bcd60e51b8152602060048201526024808201527f5377617020616d6f756e74206578636565647320636f6e74726163742062616c604482015263616e636560e01b606482015260840161075a565b6107dc8161198e565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b610e1d611890565b6001600160a01b038116610e825760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161075a565b610914816118ea565b610e93611890565b600b5460ff1615610ee65760405162461bcd60e51b815260206004820152601a60248201527f54726164696e6720697320616c726561647920656e61626c6564000000000000604482015260640161075a565b600b805461ffff1916610101179055565b6001600160a01b038316610f595760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161075a565b6001600160a01b038216610fba5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161075a565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006110278484610dea565b905060001981146107dc57818110156110825760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161075a565b6107dc8484848403610ef7565b6001600160a01b0383166110f35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161075a565b6001600160a01b0382166111555760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161075a565b600081116111bd5760405162461bcd60e51b815260206004820152602f60248201527f45524332303a207472616e7366657220616d6f756e742073686f756c6420626560448201526e02067726561746572207468616e203608c1b606482015260840161075a565b6001600160a01b03831660009081526010602052604081205460ff161580156111ff57506001600160a01b03831660009081526010602052604090205460ff16155b90506112136000546001600160a01b031690565b6001600160a01b0316846001600160a01b03161415801561124257506000546001600160a01b03848116911614155b801561125657506001600160a01b03831615155b801561126d57506001600160a01b03831661dead14155b80156112835750600554600160a01b900460ff16155b1561156657600b5460ff16611316576001600160a01b0384166000908152600f602052604090205460ff16806112d157506001600160a01b0383166000908152600f602052604090205460ff165b6113165760405162461bcd60e51b81526020600482015260166024820152752a3930b234b7339034b9903737ba1030b1ba34bb329760511b604482015260640161075a565b6001600160a01b03841660009081526010602052604090205460ff16801561135757506001600160a01b0383166000908152600f602052604090205460ff16155b1561141d576007548211156113ae5760405162461bcd60e51b815260206004820152601f60248201527f4d6178207472616e73616374696f6e20616d6f756e7420657863656564656400604482015260640161075a565b6008546001600160a01b0384166000908152600160205260409020546113d49084611d93565b11156114185760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161075a565b611566565b6001600160a01b03831660009081526010602052604090205460ff16801561145e57506001600160a01b0384166000908152600f602052604090205460ff16155b156114b5576007548211156114185760405162461bcd60e51b815260206004820152601f60248201527f4d6178207472616e73616374696f6e20616d6f756e7420657863656564656400604482015260640161075a565b6001600160a01b0383166000908152600f602052604090205460ff161580156114f757506001600160a01b03831660009081526010602052604090205460ff16155b15611566576008546001600160a01b0384166000908152600160205260409020546115229084611d93565b11156115665760405162461bcd60e51b815260206004820152601360248201527213585e081dd85b1b195d08195e18d959591959606a1b604482015260640161075a565b60006009548310158015611578575081155b90508080156115915750600554600160a01b900460ff16155b80156115a45750600b54610100900460ff165b80156115c957506001600160a01b03851660009081526010602052604090205460ff16155b80156115ee57506001600160a01b0385166000908152600e602052604090205460ff16155b801561161357506001600160a01b0384166000908152600e602052604090205460ff16155b1561165b57611620611b4e565b6005546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015611659573d6000803e3d6000fd5b505b6001600160a01b0385166000908152600e60205260408120546001919060ff168061169e57506001600160a01b0386166000908152600e602052604090205460ff165b156116a857600091505b600082156117dd576001600160a01b0388163014806116cf57506001600160a01b03871630145b806116e757506000546001600160a01b038981169116145b806116ff57506000546001600160a01b038881169116145b611762576001600160a01b03871660009081526010602052604090205460ff1615611745576064600d54876117349190611df1565b61173e9190611e08565b9050611762565b6064600c54876117559190611df1565b61175f9190611e08565b90505b85915080156117d057306000908152600160205260408120805483929061178a908490611d93565b909155505060405181815230906001600160a01b038a16907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b6117da8187611e2a565b95505b6001600160a01b03881660009081526001602052604081208054849290611805908490611e2a565b90915550506001600160a01b03871660009081526001602052604081208054889290611832908490611d93565b92505081905550866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8860405161187e91815260200190565b60405180910390a35050505050505050565b6000546001600160a01b031633146108805760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161075a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038216600081815260106020526040808220805460ff191685151590811790915590519092917fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab91a35050565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106119c3576119c3611e3d565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a659190611da6565b81600181518110611a7857611a78611e3d565b60200260200101906001600160a01b031690816001600160a01b031681525050611ac3307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84610ef7565b60405163791ac94760e01b81526001600160a01b037f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d169063791ac94790611b18908590600090869030904290600401611e53565b600060405180830381600087803b158015611b3257600080fd5b505af1158015611b46573d6000803e3d6000fd5b505050505050565b30600090815260016020526040902054600a54811115611b6d5750600a545b600954811115610914576005805460ff60a01b1916600160a01b179055611b938161198e565b6005805460ff60a01b1916905550565b600060208083528351808285015260005b81811015611bd057858101830151858201604001528201611bb4565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461091457600080fd5b60008060408385031215611c1957600080fd5b8235611c2481611bf1565b946020939093013593505050565b600060208284031215611c4457600080fd5b8135611c4f81611bf1565b9392505050565b600080600060608486031215611c6b57600080fd5b8335611c7681611bf1565b92506020840135611c8681611bf1565b929592945050506040919091013590565b60008060408385031215611caa57600080fd5b50508035926020909101359150565b801515811461091457600080fd5b60008060408385031215611cda57600080fd5b8235611ce581611bf1565b91506020830135611cf581611cb9565b809150509250929050565b600060208284031215611d1257600080fd5b5035919050565b60008060408385031215611d2c57600080fd5b8235611d3781611bf1565b91506020830135611cf581611bf1565b600060208284031215611d5957600080fd5b5051919050565b600060208284031215611d7257600080fd5b8151611c4f81611cb9565b634e487b7160e01b600052601160045260246000fd5b8082018082111561067857610678611d7d565b600060208284031215611db857600080fd5b8151611c4f81611bf1565b600080600060608486031215611dd857600080fd5b8351925060208401519150604084015190509250925092565b808202811582820484141761067857610678611d7d565b600082611e2557634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561067857610678611d7d565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611ea35784516001600160a01b031683529383019391830191600101611e7e565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122003eb75ccc412c24731c4cb0ac8183305b76819a0c8a0504ed30ef5daaf18262464736f6c63430008130033

Deployed Bytecode Sourcemap

3251:12581:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5774:91;;;;;;;;;;-1:-1:-1;5852:5:0;;;;;;;;;;;;-1:-1:-1;;;5852:5:0;;;;5774:91;;;;;;;:::i;:::-;;;;;;;;6722:224;;;;;;;;;;-1:-1:-1;6722:224:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6722:224:0;1023:187:1;4276:63:0;;;;;;;;;;-1:-1:-1;4276:63:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6068:105;;;;;;;;;;-1:-1:-1;6147:18:0;;6068:105;;;1613:25:1;;;1601:2;1586:18;6068:105:0;1467:177:1;6954:286:0;;;;;;;;;;-1:-1:-1;6954:286:0;;;;;:::i;:::-;;:::i;3787:56::-;;;;;;;;;;;;;;;;5976:84;;;;;;;;;;-1:-1:-1;5976:84:0;;6050:2;2252:36:1;;2240:2;2225:18;5976:84:0;2110:184:1;14210:307:0;;;;;;;;;;-1:-1:-1;14210:307:0;;;;;:::i;:::-;;:::i;:::-;;7248:270;;;;;;;;;;-1:-1:-1;7248:270:0;;;;;:::i;:::-;;:::i;3424:52::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2488:32:1;;;2470:51;;2458:2;2443:18;3424:52:0;2299:228:1;14525:211:0;;;;;;;;;;-1:-1:-1;14525:211:0;;;;;:::i;:::-;;:::i;4109:31::-;;;;;;;;;;-1:-1:-1;4109:31:0;;;;;;;;;;;6181:118;;;;;;;;;;-1:-1:-1;6181:118:0;;;;;:::i;:::-;-1:-1:-1;;;;;6273:18:0;6246:7;6273:18;;;:9;:18;;;;;;;6181:118;2696:103;;;;;;;;;;;;;:::i;13867:142::-;;;;;;;;;;;;;:::i;14017:185::-;;;;;;;;;;;;;:::i;2461:87::-;;;;;;;;;;-1:-1:-1;2507:7:0;2534:6;-1:-1:-1;;;;;2534:6:0;2461:87;;5873:95;;;;;;;;;;-1:-1:-1;5953:7:0;;;;;;;;;;;;-1:-1:-1;;;5953:7:0;;;;5873:95;;9474:302;;;;;;;;;;-1:-1:-1;9474:302:0;;;;;:::i;:::-;;:::i;5189:577::-;;;;;;;;;;;;;:::i;7526:505::-;;;;;;;;;;-1:-1:-1;7526:505:0;;;;;:::i;:::-;;:::i;6307:216::-;;;;;;;;;;-1:-1:-1;6307:216:0;;;;;:::i;:::-;;:::i;4018:44::-;;;;;;;;;;;;;;;;14744:706;;;;;;;;;;-1:-1:-1;14744:706:0;;;;;:::i;:::-;;:::i;3850:55::-;;;;;;;;;;;;;;;;4182:27;;;;;;;;;;;;;;;;6531:183;;;;;;;;;;-1:-1:-1;6531:183:0;;;;;:::i;:::-;;:::i;4149:26::-;;;;;;;;;;;;;;;;4218:51;;;;;;;;;;-1:-1:-1;4218:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3963:48;;;;;;;;;;;;;;;;2807:238;;;;;;;;;;-1:-1:-1;2807:238:0;;;;;:::i;:::-;;:::i;3912:44::-;;;;;;;;;;;;;;;;8974:168;;;;;;;;;;;;;:::i;4071:31::-;;;;;;;;;;-1:-1:-1;4071:31:0;;;;;;;;6722:224;6823:4;326:10;6884:32;326:10;6900:7;6909:6;6884:8;:32::i;:::-;6934:4;6927:11;;;6722:224;;;;;:::o;6954:286::-;7076:4;326:10;7134:38;7150:4;326:10;7165:6;7134:15;:38::i;:::-;7183:27;7193:4;7199:2;7203:6;7183:9;:27::i;:::-;-1:-1:-1;7228:4:0;;6954:286;-1:-1:-1;;;;6954:286:0:o;14210:307::-;2420:13;:11;:13::i;:::-;14360:38:::1;::::0;-1:-1:-1;;;14360:38:0;;14392:4:::1;14360:38;::::0;::::1;2470:51:1::0;14318:12:0;;14288:20:::1;::::0;-1:-1:-1;;;;;14360:23:0;::::1;::::0;::::1;::::0;2443:18:1;;14360:38:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14342:56;;14427:1;14417:7;:11;14409:42;;;::::0;-1:-1:-1;;;14409:42:0;;4472:2:1;14409:42:0::1;::::0;::::1;4454:21:1::0;4511:2;4491:18;;;4484:30;-1:-1:-1;;;4530:18:1;;;4523:48;4588:18;;14409:42:0::1;;;;;;;;;14485:14;::::0;;14462:47:::1;::::0;-1:-1:-1;;;14462:47:0;;-1:-1:-1;;;;;14485:14:0;;::::1;14462:47:::0;;::::1;4791:51:1::0;;;;4858:18;;;4851:34;;;14462:22:0;::::1;::::0;::::1;::::0;4764:18:1;;14462:47:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14277:240;;14210:307:::0;:::o;7248:270::-;7363:4;326:10;7424:64;326:10;7440:7;7477:10;7449:25;326:10;7440:7;7449:9;:25::i;:::-;:38;;;;:::i;:::-;7424:8;:64::i;14525:211::-;2420:13;:11;:13::i;:::-;14625:2:::1;14614:7;:13;;:31;;;;;14643:2;14631:8;:14;;14614:31;14606:66;;;::::0;-1:-1:-1;;;14606:66:0;;5610:2:1;14606:66:0::1;::::0;::::1;5592:21:1::0;5649:2;5629:18;;;5622:30;-1:-1:-1;;;5668:18:1;;;5661:52;5730:18;;14606:66:0::1;5408:346:1::0;14606:66:0::1;14683:6;:16:::0;;;;14710:7:::1;:18:::0;14525:211::o;2696:103::-;2420:13;:11;:13::i;:::-;2761:30:::1;2788:1;2761:18;:30::i;:::-;2696:103::o:0;13867:142::-;2420:13;:11;:13::i;:::-;-1:-1:-1;;13921:20:0::1;:40:::0;;;13972:9:::1;:29:::0;13867:142::o;14017:185::-;2420:13;:11;:13::i;:::-;14104:1:::1;14080:21;:25;14072:60;;;::::0;-1:-1:-1;;;14072:60:0;;5961:2:1;14072:60:0::1;::::0;::::1;5943:21:1::0;6000:2;5980:18;;;5973:30;-1:-1:-1;;;6019:18:1;;;6012:52;6081:18;;14072:60:0::1;5759:346:1::0;14072:60:0::1;14143:51;::::0;14151:10:::1;::::0;14172:21:::1;14143:51:::0;::::1;;;::::0;::::1;::::0;;;14172:21;14151:10;14143:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14017:185::o:0;9474:302::-;2420:13;:11;:13::i;:::-;9618::::1;::::0;-1:-1:-1;;;;;9618:13:0;;::::1;9610:21:::0;;::::1;::::0;9588:128:::1;;;::::0;-1:-1:-1;;;9588:128:0;;6312:2:1;9588:128:0::1;::::0;::::1;6294:21:1::0;6351:2;6331:18;;;6324:30;6390:34;6370:18;;;6363:62;6461:27;6441:18;;;6434:55;6506:19;;9588:128:0::1;6110:421:1::0;9588:128:0::1;9727:41;9756:4;9762:5;9727:28;:41::i;:::-;9474:302:::0;;:::o;5189:577::-;2420:13;:11;:13::i;:::-;5275:16:::1;-1:-1:-1::0;;;;;5275:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5257:70:0::1;;5336:4;5343:16;-1:-1:-1::0;;;;;5343:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5257:110;::::0;-1:-1:-1;;;;;;5257:110:0::1;::::0;;;;;;-1:-1:-1;;;;;7022:15:1;;;5257:110:0::1;::::0;::::1;7004:34:1::0;7074:15;;7054:18;;;7047:43;6939:18;;5257:110:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5241:13;:126:::0;;-1:-1:-1;;;;;;5241:126:0::1;-1:-1:-1::0;;;;;5241:126:0;;;::::1;::::0;;::::1;::::0;;5380:58:::1;::::0;-1:-1:-1;5380:28:0::1;:58::i;:::-;5451:70;5468:4;5483:16;5502:18;;5451:8;:70::i;:::-;5534:16;-1:-1:-1::0;;;;;5534:32:0::1;;5574:21;5619:4;5639:24;5657:4;-1:-1:-1::0;;;;;6273:18:0;6246:7;6273:18;;;:9;:18;;;;;;;6181:118;5639:24:::1;5678:1;5694::::0;5710:7:::1;2507::::0;2534:6;-1:-1:-1;;;;;2534:6:0;;2461:87;5710:7:::1;5534:224;::::0;::::1;::::0;;;-1:-1:-1;;;;;;5534:224:0;;;-1:-1:-1;;;;;7460:15:1;;;5534:224:0::1;::::0;::::1;7442:34:1::0;7492:18;;;7485:34;;;;7535:18;;;7528:34;;;;7578:18;;;7571:34;7642:15;;;7621:19;;;7614:44;5732:15:0::1;7674:19:1::0;;;7667:35;7376:19;;5534:224:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;5189:577::o:0;7526:505::-;7646:4;326:10;7646:4;7734:25;326:10;7751:7;7734:9;:25::i;:::-;7707:52;;7812:15;7792:16;:35;;7770:122;;;;-1:-1:-1;;;7770:122:0;;8226:2:1;7770:122:0;;;8208:21:1;8265:2;8245:18;;;8238:30;8304:34;8284:18;;;8277:62;-1:-1:-1;;;8355:18:1;;;8348:35;8400:19;;7770:122:0;8024:401:1;7770:122:0;7928:60;7937:5;7944:7;7972:15;7953:16;:34;7928:8;:60::i;6307:216::-;6404:4;326:10;6465:28;326:10;6482:2;6486:6;6465:9;:28::i;14744:706::-;14825:14;;-1:-1:-1;;;;;14825:14:0;326:10;-1:-1:-1;;;;;14809:30:0;;14801:39;;;;;;14851:25;14879:13;6147:18;;;6068:105;14879:13;14947:4;14903:23;6273:18;;;:9;:18;;;;;;14851:41;;-1:-1:-1;15012:3:0;15001:14;;;14997:275;;-1:-1:-1;15047:15:0;14997:275;;;15142:3;15111:27;15131:7;15111:17;:27;:::i;:::-;15110:35;;;;:::i;:::-;15095:50;;15179:15;15164:12;:30;15160:101;;;-1:-1:-1;15230:15:0;15160:101;15322:15;15306:12;:31;;15284:117;;;;-1:-1:-1;;;15284:117:0;;9027:2:1;15284:117:0;;;9009:21:1;9066:2;9046:18;;;9039:30;9105:34;9085:18;;;9078:62;-1:-1:-1;;;9156:18:1;;;9149:34;9200:19;;15284:117:0;8825:400:1;15284:117:0;15412:30;15429:12;15412:16;:30::i;6531:183::-;-1:-1:-1;;;;;6679:18:0;;;6647:7;6679:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6531:183::o;2807:238::-;2420:13;:11;:13::i;:::-;-1:-1:-1;;;;;2910:22:0;::::1;2888:110;;;::::0;-1:-1:-1;;;2888:110:0;;9432:2:1;2888:110:0::1;::::0;::::1;9414:21:1::0;9471:2;9451:18;;;9444:30;9510:34;9490:18;;;9483:62;-1:-1:-1;;;9561:18:1;;;9554:36;9607:19;;2888:110:0::1;9230:402:1::0;2888:110:0::1;3009:28;3028:8;3009:18;:28::i;8974:168::-:0;2420:13;:11;:13::i;:::-;9034:11:::1;::::0;::::1;;9033:12;9025:51;;;::::0;-1:-1:-1;;;9025:51:0;;9839:2:1;9025:51:0::1;::::0;::::1;9821:21:1::0;9878:2;9858:18;;;9851:30;9917:28;9897:18;;;9890:56;9963:18;;9025:51:0::1;9637:350:1::0;9025:51:0::1;9087:11;:18:::0;;-1:-1:-1;;9116:18:0;;;;;8974:168::o;8039:380::-;-1:-1:-1;;;;;8175:19:0;;8167:68;;;;-1:-1:-1;;;8167:68:0;;10194:2:1;8167:68:0;;;10176:21:1;10233:2;10213:18;;;10206:30;10272:34;10252:18;;;10245:62;-1:-1:-1;;;10323:18:1;;;10316:34;10367:19;;8167:68:0;9992:400:1;8167:68:0;-1:-1:-1;;;;;8254:21:0;;8246:68;;;;-1:-1:-1;;;8246:68:0;;10599:2:1;8246:68:0;;;10581:21:1;10638:2;10618:18;;;10611:30;10677:34;10657:18;;;10650:62;-1:-1:-1;;;10728:18:1;;;10721:32;10770:19;;8246:68:0;10397:398:1;8246:68:0;-1:-1:-1;;;;;8327:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8379:32;;1613:25:1;;;8379:32:0;;1586:18:1;8379:32:0;;;;;;;8039:380;;;:::o;8427:502::-;8562:24;8589:25;8599:5;8606:7;8589:9;:25::i;:::-;8562:52;;-1:-1:-1;;8629:16:0;:37;8625:297;;8729:6;8709:16;:26;;8683:117;;;;-1:-1:-1;;;8683:117:0;;11002:2:1;8683:117:0;;;10984:21:1;11041:2;11021:18;;;11014:30;11080:31;11060:18;;;11053:59;11129:18;;8683:117:0;10800:353:1;8683:117:0;8844:51;8853:5;8860:7;8888:6;8869:16;:25;8844:8;:51::i;9978:3395::-;-1:-1:-1;;;;;10101:18:0;;10093:68;;;;-1:-1:-1;;;10093:68:0;;11360:2:1;10093:68:0;;;11342:21:1;11399:2;11379:18;;;11372:30;11438:34;11418:18;;;11411:62;-1:-1:-1;;;11489:18:1;;;11482:35;11534:19;;10093:68:0;11158:401:1;10093:68:0;-1:-1:-1;;;;;10180:16:0;;10172:64;;;;-1:-1:-1;;;10172:64:0;;11766:2:1;10172:64:0;;;11748:21:1;11805:2;11785:18;;;11778:30;11844:34;11824:18;;;11817:62;-1:-1:-1;;;11895:18:1;;;11888:33;11938:19;;10172:64:0;11564:399:1;10172:64:0;10264:1;10255:6;:10;10247:70;;;;-1:-1:-1;;;10247:70:0;;12170:2:1;10247:70:0;;;12152:21:1;12209:2;12189:18;;;12182:30;12248:34;12228:18;;;12221:62;-1:-1:-1;;;12299:18:1;;;12292:45;12354:19;;10247:70:0;11968:411:1;10247:70:0;-1:-1:-1;;;;;10349:31:0;;10330:15;10349:31;;;:25;:31;;;;;;;;10348:32;:79;;;;-1:-1:-1;;;;;;10398:29:0;;;;;;:25;:29;;;;;;;;10397:30;10348:79;10330:97;;10466:7;2507;2534:6;-1:-1:-1;;;;;2534:6:0;;2461:87;10466:7;-1:-1:-1;;;;;10458:15:0;:4;-1:-1:-1;;;;;10458:15:0;;;:45;;;;-1:-1:-1;2507:7:0;2534:6;-1:-1:-1;;;;;10490:13:0;;;2534:6;;10490:13;;10458:45;:78;;;;-1:-1:-1;;;;;;10520:16:0;;;;10458:78;:116;;;;-1:-1:-1;;;;;;10553:21:0;;10567:6;10553:21;;10458:116;:142;;;;-1:-1:-1;10592:8:0;;-1:-1:-1;;;10592:8:0;;;;10591:9;10458:142;10440:1503;;;10632:11;;;;10627:250;;-1:-1:-1;;;;;10694:37:0;;;;;;:31;:37;;;;;;;;;:101;;-1:-1:-1;;;;;;10760:35:0;;;;;;:31;:35;;;;;;;;10694:101;10664:197;;;;-1:-1:-1;;;10664:197:0;;12586:2:1;10664:197:0;;;12568:21:1;12625:2;12605:18;;;12598:30;-1:-1:-1;;;12644:18:1;;;12637:52;12706:18;;10664:197:0;12384:346:1;10664:197:0;-1:-1:-1;;;;;10915:31:0;;;;;;:25;:31;;;;;;;;:88;;;;-1:-1:-1;;;;;;10968:35:0;;;;;;:31;:35;;;;;;;;10967:36;10915:88;10893:1039;;;11078:20;;11068:6;:30;;11038:135;;;;-1:-1:-1;;;11038:135:0;;12937:2:1;11038:135:0;;;12919:21:1;12976:2;12956:18;;;12949:30;13015:33;12995:18;;;12988:61;13066:18;;11038:135:0;12735:355:1;11038:135:0;11248:9;;-1:-1:-1;;;;;6273:18:0;;6246:7;6273:18;;;:9;:18;;;;;;11222:22;;:6;:22;:::i;:::-;:35;;11192:128;;;;-1:-1:-1;;;11192:128:0;;13297:2:1;11192:128:0;;;13279:21:1;13336:2;13316:18;;;13309:30;-1:-1:-1;;;13355:18:1;;;13348:49;13414:18;;11192:128:0;13095:343:1;11192:128:0;10893:1039;;;-1:-1:-1;;;;;11364:29:0;;;;;;:25;:29;;;;;;;;:88;;;;-1:-1:-1;;;;;;11415:37:0;;;;;;:31;:37;;;;;;;;11414:38;11364:88;11342:590;;;11527:20;;11517:6;:30;;11487:135;;;;-1:-1:-1;;;11487:135:0;;12937:2:1;11487:135:0;;;12919:21:1;12976:2;12956:18;;;12949:30;13015:33;12995:18;;;12988:61;13066:18;;11487:135:0;12735:355:1;11342:590:0;-1:-1:-1;;;;;11667:35:0;;;;;;:31;:35;;;;;;;;11666:36;:87;;;;-1:-1:-1;;;;;;11724:29:0;;;;;;:25;:29;;;;;;;;11723:30;11666:87;11644:288;;;11844:9;;-1:-1:-1;;;;;6273:18:0;;6246:7;6273:18;;;:9;:18;;;;;;11818:22;;:6;:22;:::i;:::-;:35;;11788:128;;;;-1:-1:-1;;;11788:128:0;;13297:2:1;11788:128:0;;;13279:21:1;13336:2;13316:18;;;13309:30;-1:-1:-1;;;13355:18:1;;;13348:49;13414:18;;11788:128:0;13095:343:1;11788:128:0;11955:12;11980:18;;11970:6;:28;;:43;;;;;12003:10;12002:11;11970:43;11955:58;;12044:7;:33;;;;-1:-1:-1;12069:8:0;;-1:-1:-1;;;12069:8:0;;;;12068:9;12044:33;:61;;;;-1:-1:-1;12094:11:0;;;;;;;12044:61;:110;;;;-1:-1:-1;;;;;;12123:31:0;;;;;;:25;:31;;;;;;;;12122:32;12044:110;:153;;;;-1:-1:-1;;;;;;12172:25:0;;;;;;:19;:25;;;;;;;;12171:26;12044:153;:194;;;;-1:-1:-1;;;;;;12215:23:0;;;;;;:19;:23;;;;;;;;12214:24;12044:194;12026:332;;;12265:10;:8;:10::i;:::-;12298:15;;12290:56;;-1:-1:-1;;;;;12298:15:0;;;;12324:21;12290:56;;;;;12298:15;12290:56;12298:15;12290:56;12324:21;12298:15;12290:56;;;;;;;;;;;;;;;;;;;;;12026:332;-1:-1:-1;;;;;12435:25:0;;12370:12;12435:25;;;:19;:25;;;;;;12385:4;;12370:12;12435:25;;;:52;;-1:-1:-1;;;;;;12464:23:0;;;;;;:19;:23;;;;;;;;12435:52;12431:100;;;12514:5;12504:15;;12431:100;12543:12;12576:7;12572:674;;;-1:-1:-1;;;;;12624:21:0;;12640:4;12624:21;;:65;;-1:-1:-1;;;;;;12670:19:0;;12684:4;12670:19;12624:65;:105;;;-1:-1:-1;2507:7:0;2534:6;-1:-1:-1;;;;;12714:15:0;;;2534:6;;12714:15;12624:105;:143;;;-1:-1:-1;2507:7:0;2534:6;-1:-1:-1;;;;;12754:13:0;;;2534:6;;12754:13;12624:143;12600:414;;-1:-1:-1;;;;;12807:29:0;;;;;;:25;:29;;;;;;;;12803:196;;;12892:3;12879:7;;12869:6;:18;;;;:::i;:::-;12868:28;;;;:::i;:::-;12861:35;;12803:196;;;12975:3;12963:6;;12953;:17;;;;:::i;:::-;12952:27;;;;:::i;:::-;12945:34;;12803:196;13043:6;;-1:-1:-1;13070:8:0;;13066:140;;13117:4;13099:24;;;;:9;:24;;;;;:32;;13127:4;;13099:24;:32;;13127:4;;13099:32;:::i;:::-;;;;-1:-1:-1;;13155:35:0;;1613:25:1;;;13178:4:0;;-1:-1:-1;;;;;13155:35:0;;;;;1601:2:1;1586:18;13155:35:0;;;;;;;13066:140;13220:14;13230:4;13220:14;;:::i;:::-;;;12572:674;-1:-1:-1;;;;;13258:15:0;;;;;;:9;:15;;;;;:29;;13277:10;;13258:15;:29;;13277:10;;13258:29;:::i;:::-;;;;-1:-1:-1;;;;;;;13298:13:0;;;;;;:9;:13;;;;;:25;;13316:6;;13298:13;:25;;13316:6;;13298:25;:::i;:::-;;;;;;;;13354:2;-1:-1:-1;;;;;13339:26:0;13348:4;-1:-1:-1;;;;;13339:26:0;;13358:6;13339:26;;;;1613:25:1;;1601:2;1586:18;;1467:177;13339:26:0;;;;;;;;10082:3291;;;;;9978:3395;;;:::o;2556:132::-;2507:7;2534:6;-1:-1:-1;;;;;2534:6:0;326:10;2620:23;2612:68;;;;-1:-1:-1;;;2612:68:0;;13778:2:1;2612:68:0;;;13760:21:1;;;13797:18;;;13790:30;13856:34;13836:18;;;13829:62;13908:18;;2612:68:0;13576:356:1;3053:191:0;3127:16;3146:6;;-1:-1:-1;;;;;3163:17:0;;;-1:-1:-1;;;;;;3163:17:0;;;;;;3196:40;;3146:6;;;;;;;3196:40;;3127:16;3196:40;3116:128;3053:191;:::o;9784:186::-;-1:-1:-1;;;;;9867:31:0;;;;;;:25;:31;;;;;;:39;;-1:-1:-1;;9867:39:0;;;;;;;;;;9922:40;;9867:39;;:31;9922:40;;;9784:186;;:::o;13381:478::-;13471:16;;;13485:1;13471:16;;;;;;;;13447:21;;13471:16;;;;;;;;;;-1:-1:-1;13471:16:0;13447:40;;13516:4;13498;13503:1;13498:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;13498:23:0;;;-1:-1:-1;;;;;13498:23:0;;;;;13542:16;-1:-1:-1;;;;;13542:21:0;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13532:4;13537:1;13532:7;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1;;;;;13532:33:0;;;-1:-1:-1;;;;;13532:33:0;;;;;13578:63;13595:4;13610:16;13629:11;13578:8;:63::i;:::-;13654:197;;-1:-1:-1;;;13654:197:0;;-1:-1:-1;;;;;13654:16:0;:67;;;;:197;;13736:11;;13762:1;;13778:4;;13805;;13825:15;;13654:197;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13436:423;13381:478;:::o;15458:371::-;15541:4;15497:23;6273:18;;;:9;:18;;;;;;15582:9;;15564:27;;15560:87;;;-1:-1:-1;15626:9:0;;15560:87;15681:18;;15663:15;:36;15659:163;;;15716:8;:15;;-1:-1:-1;;;;15716:15:0;-1:-1:-1;;;15716:15:0;;;15746:33;15763:15;15746:16;:33::i;:::-;15794:8;:16;;-1:-1:-1;;;;15794:16:0;;;15486:343;15458:371::o;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;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:247::-;1274:6;1327:2;1315:9;1306:7;1302:23;1298:32;1295:52;;;1343:1;1340;1333:12;1295:52;1382:9;1369:23;1401:31;1426:5;1401:31;:::i;:::-;1451:5;1215:247;-1:-1:-1;;;1215:247:1:o;1649:456::-;1726:6;1734;1742;1795:2;1783:9;1774:7;1770:23;1766:32;1763:52;;;1811:1;1808;1801:12;1763:52;1850:9;1837:23;1869:31;1894:5;1869:31;:::i;:::-;1919:5;-1:-1:-1;1976:2:1;1961:18;;1948:32;1989:33;1948:32;1989:33;:::i;:::-;1649:456;;2041:7;;-1:-1:-1;;;2095:2:1;2080:18;;;;2067:32;;1649:456::o;2532:248::-;2600:6;2608;2661:2;2649:9;2640:7;2636:23;2632:32;2629:52;;;2677:1;2674;2667:12;2629:52;-1:-1:-1;;2700:23:1;;;2770:2;2755:18;;;2742:32;;-1:-1:-1;2532:248:1:o;2993:118::-;3079:5;3072:13;3065:21;3058:5;3055:32;3045:60;;3101:1;3098;3091:12;3116:382;3181:6;3189;3242:2;3230:9;3221:7;3217:23;3213:32;3210:52;;;3258:1;3255;3248:12;3210:52;3297:9;3284:23;3316:31;3341:5;3316:31;:::i;:::-;3366:5;-1:-1:-1;3423:2:1;3408:18;;3395:32;3436:30;3395:32;3436:30;:::i;:::-;3485:7;3475:17;;;3116:382;;;;;:::o;3503:180::-;3562:6;3615:2;3603:9;3594:7;3590:23;3586:32;3583:52;;;3631:1;3628;3621:12;3583:52;-1:-1:-1;3654:23:1;;3503:180;-1:-1:-1;3503:180:1:o;3688:388::-;3756:6;3764;3817:2;3805:9;3796:7;3792:23;3788:32;3785:52;;;3833:1;3830;3823:12;3785:52;3872:9;3859:23;3891:31;3916:5;3891:31;:::i;:::-;3941:5;-1:-1:-1;3998:2:1;3983:18;;3970:32;4011:33;3970:32;4011:33;:::i;4081:184::-;4151:6;4204:2;4192:9;4183:7;4179:23;4175:32;4172:52;;;4220:1;4217;4210:12;4172:52;-1:-1:-1;4243:16:1;;4081:184;-1:-1:-1;4081:184:1:o;4896:245::-;4963:6;5016:2;5004:9;4995:7;4991:23;4987:32;4984:52;;;5032:1;5029;5022:12;4984:52;5064:9;5058:16;5083:28;5105:5;5083:28;:::i;5146:127::-;5207:10;5202:3;5198:20;5195:1;5188:31;5238:4;5235:1;5228:15;5262:4;5259:1;5252:15;5278:125;5343:9;;;5364:10;;;5361:36;;;5377:18;;:::i;6536:251::-;6606:6;6659:2;6647:9;6638:7;6634:23;6630:32;6627:52;;;6675:1;6672;6665:12;6627:52;6707:9;6701:16;6726:31;6751:5;6726:31;:::i;7713:306::-;7801:6;7809;7817;7870:2;7858:9;7849:7;7845:23;7841:32;7838:52;;;7886:1;7883;7876:12;7838:52;7915:9;7909:16;7899:26;;7965:2;7954:9;7950:18;7944:25;7934:35;;8009:2;7998:9;7994:18;7988:25;7978:35;;7713:306;;;;;:::o;8430:168::-;8503:9;;;8534;;8551:15;;;8545:22;;8531:37;8521:71;;8572:18;;:::i;8603:217::-;8643:1;8669;8659:132;;8713:10;8708:3;8704:20;8701:1;8694:31;8748:4;8745:1;8738:15;8776:4;8773:1;8766:15;8659:132;-1:-1:-1;8805:9:1;;8603:217::o;13443:128::-;13510:9;;;13531:11;;;13528:37;;;13545:18;;:::i;14069:127::-;14130:10;14125:3;14121:20;14118:1;14111:31;14161:4;14158:1;14151:15;14185:4;14182:1;14175:15;14201:980;14463:4;14511:3;14500:9;14496:19;14542:6;14531:9;14524:25;14568:2;14606:6;14601:2;14590:9;14586:18;14579:34;14649:3;14644:2;14633:9;14629:18;14622:31;14673:6;14708;14702:13;14739:6;14731;14724:22;14777:3;14766:9;14762:19;14755:26;;14816:2;14808:6;14804:15;14790:29;;14837:1;14847:195;14861:6;14858:1;14855:13;14847:195;;;14926:13;;-1:-1:-1;;;;;14922:39:1;14910:52;;15017:15;;;;14982:12;;;;14958:1;14876:9;14847:195;;;-1:-1:-1;;;;;;;15098:32:1;;;;15093:2;15078:18;;15071:60;-1:-1:-1;;;15162:3:1;15147:19;15140:35;15059:3;14201:980;-1:-1:-1;;;14201:980:1:o

Swarm Source

ipfs://03eb75ccc412c24731c4cb0ac8183305b76819a0c8a0504ed30ef5daaf182624
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.