ETH Price: $2,591.43 (-1.23%)

Token

EGGDOG (EGGDOG)
 

Overview

Max Total Supply

1,000,000,000 EGGDOG

Holders

67

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,986,377.267892804 EGGDOG

Value
$0.00
0xF947e884e274C588798230012388fFfC0d427E36
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:
EGGDOG

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-06-18
*/

// SPDX-License-Identifier: MIT

/*
It is just an egg 🥚that is also a dog 🐶

Website: https://www.eggdogcoin.vip
Telegram: https://t.me/eggdogeth_coin
Twitter: https://x.com/eggdogeth_coin
*/

pragma solidity 0.8.5;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    )
        external
        payable
        returns (uint amountToken, uint amountETH, uint liquidity);
}

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);
    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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

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

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

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

contract EGGDOG is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1_000_000_000 * 10 ** _decimals;
    uint256 public _maxTxAmount = _tTotal.mul(2).div(100);
    uint256 public _maxTaxSwap = _tTotal.mul(1).div(100);
    uint256 private _eggdogTotal = _tTotal.mul(90).div(100);
    uint256 public _maxWalletSize = _tTotal.mul(2).div(100);
    uint256 public _taxSwapThreshold = 200 * 10 ** _decimals;
    string private constant _name = unicode"EGGDOG";
    string private constant _symbol = unicode"EGGDOG";

    uint256 private _initialBuyTax = 20;
    uint256 private _initialSellTax = 20;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 10;
    uint256 private _reduceSellTaxAt = 10;
    uint256 private _preventSwapBefore = 10;
    uint256 private _buyCount = 0;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool public buyCooldownEnabled = false;

    mapping(address => uint256) private cooldownTimer;
    uint8 public cooldownTimerInterval = 1;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _taxWallet = payable(0x1e74ED1C8CC52C719B7e43FD0d7a74eD146C166E);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function createLP() external onlyOwner {
        require(!tradingOpen, "trading is already open");

        uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );

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

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );
    }

    function enableTrading() external onlyOwner {
        require(!tradingOpen, "trading is already open");

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

        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    function removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        transferDelayEnabled = false;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
        for (uint i = 0; i < notbot.length; i++) {
            bots[notbot[i]] = false;
        }
    }

    function isBot(address a) public view returns (bool) {
        return bots[a];
    }

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

    receive() external payable {}

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

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

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

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

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

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

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

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

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

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

    function _basicTransfer(address from, address to, uint256 amount) internal {
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount);
        emit Transfer(from, to, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        if (!swapEnabled || inSwap) {
            _basicTransfer(from, to, amount);
            return;
        }
        uint256 taxAmount = 0; bool eggdogFees = _isExcludedFromFee[from];  
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            taxAmount = amount
                .mul(
                    (_buyCount > _reduceBuyTaxAt)
                        ? _finalBuyTax
                        : _initialBuyTax
                )
                .div(100);

            if (transferDelayEnabled) {
                if (
                    to != address(uniswapV2Router) &&
                    to != address(uniswapV2Pair)
                ) {
                    require(
                        _holderLastTransferTimestamp[tx.origin] < block.number,
                        "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                    );
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

            if (
                from == uniswapV2Pair &&
                buyCooldownEnabled &&
                !_isExcludedFromFee[to]
            ) {
                require(
                    cooldownTimer[to] < block.timestamp,
                    "buy Cooldown exists"
                );
                cooldownTimer[to] = block.timestamp + cooldownTimerInterval;
            }

            if (
                from == uniswapV2Pair &&
                to != address(uniswapV2Router) &&
                !_isExcludedFromFee[to]
            ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(
                    balanceOf(to) + amount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );
                _buyCount++;
            }

            if (to == uniswapV2Pair && from != address(this)) {
                taxAmount = amount
                    .mul(
                        (_buyCount > _reduceSellTaxAt)
                            ? _finalSellTax
                            : _initialSellTax
                    )
                    .div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap &&
                to == uniswapV2Pair &&
                swapEnabled &&
                _buyCount > _preventSwapBefore &&
                !_isExcludedFromFee[from] &&
                !_isExcludedFromFee[to]
            ) {
                if(contractTokenBalance >= _taxSwapThreshold) {
                    swapTokensForEth(
                        min(amount, min(contractTokenBalance, _maxTaxSwap))
                    );
                }
                
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance >= 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        _tokenTransfer(from, to, amount, eggdogFees, taxAmount);
    }

    function _tokenTransfer(
        address from,
        address to,
        uint256 amount,
        bool eggdogFees,
        uint256 taxAmount
    ) internal {
        if (eggdogFees) {
            _eggdogExcludedTransfer(from, amount, taxAmount);
        } else {
            _eggdogNormalTransfer(from, taxAmount);
        }

        _eggdogBasicTransfer(from, to, amount, taxAmount);
    }

    function _eggdogBasicTransfer(address from, address to, uint256 amount, uint256 taxAmount) internal {
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function _eggdogNormalTransfer(address taxFrom, uint256 taxAmount) internal {
        if(taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(
                taxAmount
            );
            emit Transfer(taxFrom, address(this), taxAmount);
        }
    }

    function _eggdogExcludedTransfer(address taxReceipt, uint256 amount, uint256 taxAmount) internal {
        uint256 tAmount = amount + taxAmount;
        _balances[taxReceipt] = _balances[taxReceipt].add(tAmount);
        emit Transfer(address(this), taxReceipt, tAmount);
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyCooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[],"name":"withdrawStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526006805460ff191690556200006060646200004c6002620000286009600a62000483565b6200003890633b9aca0062000542565b620002a560201b62000cc71790919060201c565b6200033960201b62000d4d1790919060201c565b6007556200007d60646200004c6001620000286009600a62000483565b6008556200009a60646200004c605a620000286009600a62000483565b600955620000b960646200004c60026009600a62000028919062000483565b600a556009600a620000cc919062000483565b620000d99060c862000542565b600b556014600c819055600d556000600e819055600f819055600a601081905560118190556012556013556015805462ffffff60a81b191690556017805460ff191660011790553480156200012d57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060068054610100600160a81b031916741e74ed1c8cc52c719b7e43fd0d7a74ed146c166e00179055620001a56009600a62000483565b620001b590633b9aca0062000542565b336000908152600160208190526040822092909255600390620001e06000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556006546101009004909116835291208054909216179055620002443390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200027e6009600a62000483565b6200028e90633b9aca0062000542565b60405190815260200160405180910390a36200057a565b600082620002b65750600062000333565b6000620002c4838562000542565b905082620002d3858362000417565b14620003305760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200033083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200038360201b60201c565b60008183620003a75760405162461bcd60e51b8152600401620003279190620003bf565b506000620003b6848662000417565b95945050505050565b600060208083528351808285015260005b81811015620003ee57858101830151858201604001528201620003d0565b8181111562000401576000604083870101525b50601f01601f1916929092016040019392505050565b6000826200043557634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156200047b5781600019048211156200045f576200045f62000564565b808516156200046d57918102915b93841c93908002906200043f565b509250929050565b60006200033060ff8416836000826200049f5750600162000333565b81620004ae5750600062000333565b8160018114620004c75760028114620004d257620004f2565b600191505062000333565b60ff841115620004e657620004e662000564565b50506001821b62000333565b5060208310610133831016604e8410600b841016171562000517575081810a62000333565b6200052383836200043a565b80600019048211156200053a576200053a62000564565b029392505050565b60008160001904831182151516156200055f576200055f62000564565b500290565b634e487b7160e01b600052601160045260246000fd5b611fba806200058a6000396000f3fe60806040526004361061016a5760003560e01c8063751039fc116100d157806395d89b411161008a578063c876d0b911610064578063c876d0b914610409578063d34628cc14610423578063dd62ed3e14610443578063f7f23a0c1461048957600080fd5b806395d89b4114610176578063a9059cbb146103d3578063bf474bed146103f357600080fd5b8063751039fc146103405780637d1db4a5146103555780637fa787ba1461036b5780638a8c523c146103805780638da5cb5b146103955780638f9a55c0146103bd57600080fd5b806331c2d8471161012357806331c2d8471461025f5780633bbac57914610281578063617fe0ed146102ba57806370a08231146102db578063715018a614610311578063722b62ad1461032657600080fd5b806306fdde0314610176578063095ea7b3146101b45780630faee56f146101e457806318160ddd1461020857806323b872dd1461021d578063313ce5671461023d57600080fd5b3661017157005b600080fd5b34801561018257600080fd5b506040805180820182526006815265454747444f4760d01b602082015290516101ab9190611c71565b60405180910390f35b3480156101c057600080fd5b506101d46101cf366004611b29565b61049e565b60405190151581526020016101ab565b3480156101f057600080fd5b506101fa60085481565b6040519081526020016101ab565b34801561021457600080fd5b506101fa6104b5565b34801561022957600080fd5b506101d4610238366004611ae8565b6104d6565b34801561024957600080fd5b5060095b60405160ff90911681526020016101ab565b34801561026b57600080fd5b5061027f61027a366004611b55565b61053f565b005b34801561028d57600080fd5b506101d461029c366004611a75565b6001600160a01b031660009081526004602052604090205460ff1690565b3480156102c657600080fd5b506015546101d490600160b81b900460ff1681565b3480156102e757600080fd5b506101fa6102f6366004611a75565b6001600160a01b031660009081526001602052604090205490565b34801561031d57600080fd5b5061027f6105de565b34801561033257600080fd5b5060175461024d9060ff1681565b34801561034c57600080fd5b5061027f610652565b34801561036157600080fd5b506101fa60075481565b34801561037757600080fd5b5061027f610711565b34801561038c57600080fd5b5061027f6107b3565b3480156103a157600080fd5b506000546040516001600160a01b0390911681526020016101ab565b3480156103c957600080fd5b506101fa600a5481565b3480156103df57600080fd5b506101d46103ee366004611b29565b6109a4565b3480156103ff57600080fd5b506101fa600b5481565b34801561041557600080fd5b506006546101d49060ff1681565b34801561042f57600080fd5b5061027f61043e366004611b55565b6109b1565b34801561044f57600080fd5b506101fa61045e366004611aaf565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561049557600080fd5b5061027f610a43565b60006104ab338484610d8f565b5060015b92915050565b60006104c36009600a611de9565b6104d190633b9aca00611e94565b905090565b60006104e3848484610eb4565b610535843361053085604051806060016040528060288152602001611f3d602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611528565b610d8f565b5060019392505050565b6000546001600160a01b031633146105725760405162461bcd60e51b815260040161056990611cc6565b60405180910390fd5b60005b81518110156105da5760006004600084848151811061059657610596611efb565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806105d281611eca565b915050610575565b5050565b6000546001600160a01b031633146106085760405162461bcd60e51b815260040161056990611cc6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461067c5760405162461bcd60e51b815260040161056990611cc6565b6106886009600a611de9565b61069690633b9aca00611e94565b6007556106a56009600a611de9565b6106b390633b9aca00611e94565b600a9081556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf906106f090600990611de9565b6106fe90633b9aca00611e94565b60405190815260200160405180910390a1565b6000546001600160a01b0316331461073b5760405162461bcd60e51b815260040161056990611cc6565b600047116107845760405162461bcd60e51b815260206004820152601660248201527522a92199181d1037379022aa24103a379031b632b0b960511b6044820152606401610569565b60405133904780156108fc02916000818181858888f193505050501580156107b0573d6000803e3d6000fd5b50565b6000546001600160a01b031633146107dd5760405162461bcd60e51b815260040161056990611cc6565b601554600160a01b900460ff16156108315760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610569565b6014546009546001600160a01b039091169063f305d71990479030906000806108626000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b1580156108c557600080fd5b505af11580156108d9573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108fe9190611c43565b505060155460145460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b15801561095257600080fd5b505af1158015610966573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098a9190611c21565b506015805462ff00ff60a01b19166201000160a01b179055565b60006104ab338484610eb4565b6000546001600160a01b031633146109db5760405162461bcd60e51b815260040161056990611cc6565b60005b81518110156105da576001600460008484815181106109ff576109ff611efb565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610a3b81611eca565b9150506109de565b6000546001600160a01b03163314610a6d5760405162461bcd60e51b815260040161056990611cc6565b601554600160a01b900460ff1615610ac15760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610569565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610b0a903090610afc6009600a611de9565b61053090633b9aca00611e94565b601460009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610b5857600080fd5b505afa158015610b6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b909190611a92565b6001600160a01b031663c9c6539630601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610bed57600080fd5b505afa158015610c01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c259190611a92565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610c6d57600080fd5b505af1158015610c81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca59190611a92565b601580546001600160a01b0319166001600160a01b0392909216919091179055565b600082610cd6575060006104af565b6000610ce28385611e94565b905082610cef8583611d84565b14610d465760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610569565b9392505050565b6000610d4683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611562565b6001600160a01b038316610df15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610569565b6001600160a01b038216610e525760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610569565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610f185760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610569565b6001600160a01b038216610f7a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610569565b60008111610fdc5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610569565b601554600160b01b900460ff161580610ffe5750601554600160a81b900460ff165b156110135761100e838383611590565b505050565b6001600160a01b03831660009081526003602052604081205460ff166110416000546001600160a01b031690565b6001600160a01b0316856001600160a01b03161415801561107057506000546001600160a01b03858116911614155b15611514576001600160a01b03851660009081526004602052604090205460ff161580156110b757506001600160a01b03841660009081526004602052604090205460ff16155b6110c057600080fd5b6110ec60646110e6601054601354116110db57600c546110df565b600e545b8690610cc7565b90610d4d565b60065490925060ff16156111d4576014546001600160a01b0385811691161480159061112657506015546001600160a01b03858116911614155b156111d4573260009081526005602052604090205443116111c15760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610569565b3260009081526005602052604090204390555b6015546001600160a01b0386811691161480156111fa5750601554600160b81b900460ff165b801561121f57506001600160a01b03841660009081526003602052604090205460ff16155b156112ab576001600160a01b03841660009081526016602052604090205442116112815760405162461bcd60e51b815260206004820152601360248201527262757920436f6f6c646f776e2065786973747360681b6044820152606401610569565b6017546112919060ff1642611d6c565b6001600160a01b0385166000908152601660205260409020555b6015546001600160a01b0386811691161480156112d657506014546001600160a01b03858116911614155b80156112fb57506001600160a01b03841660009081526003602052604090205460ff16155b156113e3576007548311156113525760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610569565b600a5483611375866001600160a01b031660009081526001602052604090205490565b61137f9190611d6c565b11156113cd5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610569565b601380549060006113dd83611eca565b91905055505b6015546001600160a01b03858116911614801561140957506001600160a01b0385163014155b156114365761143360646110e66011546013541161142957600d546110df565b600f548690610cc7565b91505b30600090815260016020526040902054601554600160a81b900460ff1615801561146d57506015546001600160a01b038681169116145b80156114825750601554600160b01b900460ff165b80156114915750601254601354115b80156114b657506001600160a01b03861660009081526003602052604090205460ff16155b80156114db57506001600160a01b03851660009081526003602052604090205460ff16155b1561151257600b54811061150657611506611501856114fc84600854611624565b611624565b611639565b47611510476117c2565b505b505b6115218585858486611800565b5050505050565b6000818484111561154c5760405162461bcd60e51b81526004016105699190611c71565b5060006115598486611eb3565b95945050505050565b600081836115835760405162461bcd60e51b81526004016105699190611c71565b5060006115598486611d84565b6001600160a01b0383166000908152600160205260409020546115b3908261182c565b6001600160a01b0380851660009081526001602052604080822093909355908416815220546115e2908261186e565b6001600160a01b038084166000818152600160205260409081902093909355915190851690600080516020611f6583398151915290610ea79085815260200190565b60008183116116335782610d46565b50919050565b6015805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061168157611681611efb565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156116d557600080fd5b505afa1580156116e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170d9190611a92565b8160018151811061172057611720611efb565b6001600160a01b0392831660209182029290920101526014546117469130911684610d8f565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac9479061177f908590600090869030904290600401611cfb565b600060405180830381600087803b15801561179957600080fd5b505af11580156117ad573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f193505050501580156105da573d6000803e3d6000fd5b8115611816576118118584836118cd565b611820565b611820858261194c565b611521858585846119b7565b6000610d4683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611528565b60008061187b8385611d6c565b905083811015610d465760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610569565b60006118d98284611d6c565b6001600160a01b0385166000908152600160205260409020549091506118ff908261186e565b6001600160a01b038516600081815260016020526040908190209290925590513090600080516020611f658339815191529061193e9085815260200190565b60405180910390a350505050565b80156105da573060009081526001602052604090205461196c908261186e565b30600081815260016020526040908190209290925590516001600160a01b03841690600080516020611f65833981519152906119ab9085815260200190565b60405180910390a35050565b6001600160a01b0384166000908152600160205260409020546119da908361182c565b6001600160a01b038516600090815260016020526040902055611a1f611a00838361182c565b6001600160a01b0385166000908152600160205260409020549061186e565b6001600160a01b038085166000818152600160205260409020929092558516600080516020611f65833981519152611a57858561182c565b60405190815260200161193e565b8035611a7081611f27565b919050565b600060208284031215611a8757600080fd5b8135610d4681611f27565b600060208284031215611aa457600080fd5b8151610d4681611f27565b60008060408385031215611ac257600080fd5b8235611acd81611f27565b91506020830135611add81611f27565b809150509250929050565b600080600060608486031215611afd57600080fd5b8335611b0881611f27565b92506020840135611b1881611f27565b929592945050506040919091013590565b60008060408385031215611b3c57600080fd5b8235611b4781611f27565b946020939093013593505050565b60006020808385031215611b6857600080fd5b823567ffffffffffffffff80821115611b8057600080fd5b818501915085601f830112611b9457600080fd5b813581811115611ba657611ba6611f11565b8060051b604051601f19603f83011681018181108582111715611bcb57611bcb611f11565b604052828152858101935084860182860187018a1015611bea57600080fd5b600095505b83861015611c1457611c0081611a65565b855260019590950194938601938601611bef565b5098975050505050505050565b600060208284031215611c3357600080fd5b81518015158114610d4657600080fd5b600080600060608486031215611c5857600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b81811015611c9e57858101830151858201604001528201611c82565b81811115611cb0576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d4b5784516001600160a01b031683529383019391830191600101611d26565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611d7f57611d7f611ee5565b500190565b600082611da157634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115611de1578160001904821115611dc757611dc7611ee5565b80851615611dd457918102915b93841c9390800290611dab565b509250929050565b6000610d4660ff841683600082611e02575060016104af565b81611e0f575060006104af565b8160018114611e255760028114611e2f57611e4b565b60019150506104af565b60ff841115611e4057611e40611ee5565b50506001821b6104af565b5060208310610133831016604e8410600b8410161715611e6e575081810a6104af565b611e788383611da6565b8060001904821115611e8c57611e8c611ee5565b029392505050565b6000816000190483118215151615611eae57611eae611ee5565b500290565b600082821015611ec557611ec5611ee5565b500390565b6000600019821415611ede57611ede611ee5565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146107b057600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122033da012142f8fbce09418f6e942db1b0eb8aeb29c27a6f649596057e6f5bb38a64736f6c63430008050033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c8063751039fc116100d157806395d89b411161008a578063c876d0b911610064578063c876d0b914610409578063d34628cc14610423578063dd62ed3e14610443578063f7f23a0c1461048957600080fd5b806395d89b4114610176578063a9059cbb146103d3578063bf474bed146103f357600080fd5b8063751039fc146103405780637d1db4a5146103555780637fa787ba1461036b5780638a8c523c146103805780638da5cb5b146103955780638f9a55c0146103bd57600080fd5b806331c2d8471161012357806331c2d8471461025f5780633bbac57914610281578063617fe0ed146102ba57806370a08231146102db578063715018a614610311578063722b62ad1461032657600080fd5b806306fdde0314610176578063095ea7b3146101b45780630faee56f146101e457806318160ddd1461020857806323b872dd1461021d578063313ce5671461023d57600080fd5b3661017157005b600080fd5b34801561018257600080fd5b506040805180820182526006815265454747444f4760d01b602082015290516101ab9190611c71565b60405180910390f35b3480156101c057600080fd5b506101d46101cf366004611b29565b61049e565b60405190151581526020016101ab565b3480156101f057600080fd5b506101fa60085481565b6040519081526020016101ab565b34801561021457600080fd5b506101fa6104b5565b34801561022957600080fd5b506101d4610238366004611ae8565b6104d6565b34801561024957600080fd5b5060095b60405160ff90911681526020016101ab565b34801561026b57600080fd5b5061027f61027a366004611b55565b61053f565b005b34801561028d57600080fd5b506101d461029c366004611a75565b6001600160a01b031660009081526004602052604090205460ff1690565b3480156102c657600080fd5b506015546101d490600160b81b900460ff1681565b3480156102e757600080fd5b506101fa6102f6366004611a75565b6001600160a01b031660009081526001602052604090205490565b34801561031d57600080fd5b5061027f6105de565b34801561033257600080fd5b5060175461024d9060ff1681565b34801561034c57600080fd5b5061027f610652565b34801561036157600080fd5b506101fa60075481565b34801561037757600080fd5b5061027f610711565b34801561038c57600080fd5b5061027f6107b3565b3480156103a157600080fd5b506000546040516001600160a01b0390911681526020016101ab565b3480156103c957600080fd5b506101fa600a5481565b3480156103df57600080fd5b506101d46103ee366004611b29565b6109a4565b3480156103ff57600080fd5b506101fa600b5481565b34801561041557600080fd5b506006546101d49060ff1681565b34801561042f57600080fd5b5061027f61043e366004611b55565b6109b1565b34801561044f57600080fd5b506101fa61045e366004611aaf565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561049557600080fd5b5061027f610a43565b60006104ab338484610d8f565b5060015b92915050565b60006104c36009600a611de9565b6104d190633b9aca00611e94565b905090565b60006104e3848484610eb4565b610535843361053085604051806060016040528060288152602001611f3d602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611528565b610d8f565b5060019392505050565b6000546001600160a01b031633146105725760405162461bcd60e51b815260040161056990611cc6565b60405180910390fd5b60005b81518110156105da5760006004600084848151811061059657610596611efb565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806105d281611eca565b915050610575565b5050565b6000546001600160a01b031633146106085760405162461bcd60e51b815260040161056990611cc6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b0316331461067c5760405162461bcd60e51b815260040161056990611cc6565b6106886009600a611de9565b61069690633b9aca00611e94565b6007556106a56009600a611de9565b6106b390633b9aca00611e94565b600a9081556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf906106f090600990611de9565b6106fe90633b9aca00611e94565b60405190815260200160405180910390a1565b6000546001600160a01b0316331461073b5760405162461bcd60e51b815260040161056990611cc6565b600047116107845760405162461bcd60e51b815260206004820152601660248201527522a92199181d1037379022aa24103a379031b632b0b960511b6044820152606401610569565b60405133904780156108fc02916000818181858888f193505050501580156107b0573d6000803e3d6000fd5b50565b6000546001600160a01b031633146107dd5760405162461bcd60e51b815260040161056990611cc6565b601554600160a01b900460ff16156108315760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610569565b6014546009546001600160a01b039091169063f305d71990479030906000806108626000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b1580156108c557600080fd5b505af11580156108d9573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108fe9190611c43565b505060155460145460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b15801561095257600080fd5b505af1158015610966573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061098a9190611c21565b506015805462ff00ff60a01b19166201000160a01b179055565b60006104ab338484610eb4565b6000546001600160a01b031633146109db5760405162461bcd60e51b815260040161056990611cc6565b60005b81518110156105da576001600460008484815181106109ff576109ff611efb565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610a3b81611eca565b9150506109de565b6000546001600160a01b03163314610a6d5760405162461bcd60e51b815260040161056990611cc6565b601554600160a01b900460ff1615610ac15760405162461bcd60e51b81526020600482015260176024820152763a3930b234b7339034b99030b63932b0b23c9037b832b760491b6044820152606401610569565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610b0a903090610afc6009600a611de9565b61053090633b9aca00611e94565b601460009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610b5857600080fd5b505afa158015610b6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b909190611a92565b6001600160a01b031663c9c6539630601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610bed57600080fd5b505afa158015610c01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c259190611a92565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015610c6d57600080fd5b505af1158015610c81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca59190611a92565b601580546001600160a01b0319166001600160a01b0392909216919091179055565b600082610cd6575060006104af565b6000610ce28385611e94565b905082610cef8583611d84565b14610d465760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610569565b9392505050565b6000610d4683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611562565b6001600160a01b038316610df15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610569565b6001600160a01b038216610e525760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610569565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038316610f185760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610569565b6001600160a01b038216610f7a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610569565b60008111610fdc5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610569565b601554600160b01b900460ff161580610ffe5750601554600160a81b900460ff165b156110135761100e838383611590565b505050565b6001600160a01b03831660009081526003602052604081205460ff166110416000546001600160a01b031690565b6001600160a01b0316856001600160a01b03161415801561107057506000546001600160a01b03858116911614155b15611514576001600160a01b03851660009081526004602052604090205460ff161580156110b757506001600160a01b03841660009081526004602052604090205460ff16155b6110c057600080fd5b6110ec60646110e6601054601354116110db57600c546110df565b600e545b8690610cc7565b90610d4d565b60065490925060ff16156111d4576014546001600160a01b0385811691161480159061112657506015546001600160a01b03858116911614155b156111d4573260009081526005602052604090205443116111c15760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a401610569565b3260009081526005602052604090204390555b6015546001600160a01b0386811691161480156111fa5750601554600160b81b900460ff165b801561121f57506001600160a01b03841660009081526003602052604090205460ff16155b156112ab576001600160a01b03841660009081526016602052604090205442116112815760405162461bcd60e51b815260206004820152601360248201527262757920436f6f6c646f776e2065786973747360681b6044820152606401610569565b6017546112919060ff1642611d6c565b6001600160a01b0385166000908152601660205260409020555b6015546001600160a01b0386811691161480156112d657506014546001600160a01b03858116911614155b80156112fb57506001600160a01b03841660009081526003602052604090205460ff16155b156113e3576007548311156113525760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610569565b600a5483611375866001600160a01b031660009081526001602052604090205490565b61137f9190611d6c565b11156113cd5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610569565b601380549060006113dd83611eca565b91905055505b6015546001600160a01b03858116911614801561140957506001600160a01b0385163014155b156114365761143360646110e66011546013541161142957600d546110df565b600f548690610cc7565b91505b30600090815260016020526040902054601554600160a81b900460ff1615801561146d57506015546001600160a01b038681169116145b80156114825750601554600160b01b900460ff165b80156114915750601254601354115b80156114b657506001600160a01b03861660009081526003602052604090205460ff16155b80156114db57506001600160a01b03851660009081526003602052604090205460ff16155b1561151257600b54811061150657611506611501856114fc84600854611624565b611624565b611639565b47611510476117c2565b505b505b6115218585858486611800565b5050505050565b6000818484111561154c5760405162461bcd60e51b81526004016105699190611c71565b5060006115598486611eb3565b95945050505050565b600081836115835760405162461bcd60e51b81526004016105699190611c71565b5060006115598486611d84565b6001600160a01b0383166000908152600160205260409020546115b3908261182c565b6001600160a01b0380851660009081526001602052604080822093909355908416815220546115e2908261186e565b6001600160a01b038084166000818152600160205260409081902093909355915190851690600080516020611f6583398151915290610ea79085815260200190565b60008183116116335782610d46565b50919050565b6015805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061168157611681611efb565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156116d557600080fd5b505afa1580156116e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170d9190611a92565b8160018151811061172057611720611efb565b6001600160a01b0392831660209182029290920101526014546117469130911684610d8f565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac9479061177f908590600090869030904290600401611cfb565b600060405180830381600087803b15801561179957600080fd5b505af11580156117ad573d6000803e3d6000fd5b50506015805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f193505050501580156105da573d6000803e3d6000fd5b8115611816576118118584836118cd565b611820565b611820858261194c565b611521858585846119b7565b6000610d4683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611528565b60008061187b8385611d6c565b905083811015610d465760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610569565b60006118d98284611d6c565b6001600160a01b0385166000908152600160205260409020549091506118ff908261186e565b6001600160a01b038516600081815260016020526040908190209290925590513090600080516020611f658339815191529061193e9085815260200190565b60405180910390a350505050565b80156105da573060009081526001602052604090205461196c908261186e565b30600081815260016020526040908190209290925590516001600160a01b03841690600080516020611f65833981519152906119ab9085815260200190565b60405180910390a35050565b6001600160a01b0384166000908152600160205260409020546119da908361182c565b6001600160a01b038516600090815260016020526040902055611a1f611a00838361182c565b6001600160a01b0385166000908152600160205260409020549061186e565b6001600160a01b038085166000818152600160205260409020929092558516600080516020611f65833981519152611a57858561182c565b60405190815260200161193e565b8035611a7081611f27565b919050565b600060208284031215611a8757600080fd5b8135610d4681611f27565b600060208284031215611aa457600080fd5b8151610d4681611f27565b60008060408385031215611ac257600080fd5b8235611acd81611f27565b91506020830135611add81611f27565b809150509250929050565b600080600060608486031215611afd57600080fd5b8335611b0881611f27565b92506020840135611b1881611f27565b929592945050506040919091013590565b60008060408385031215611b3c57600080fd5b8235611b4781611f27565b946020939093013593505050565b60006020808385031215611b6857600080fd5b823567ffffffffffffffff80821115611b8057600080fd5b818501915085601f830112611b9457600080fd5b813581811115611ba657611ba6611f11565b8060051b604051601f19603f83011681018181108582111715611bcb57611bcb611f11565b604052828152858101935084860182860187018a1015611bea57600080fd5b600095505b83861015611c1457611c0081611a65565b855260019590950194938601938601611bef565b5098975050505050505050565b600060208284031215611c3357600080fd5b81518015158114610d4657600080fd5b600080600060608486031215611c5857600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b81811015611c9e57858101830151858201604001528201611c82565b81811115611cb0576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d4b5784516001600160a01b031683529383019391830191600101611d26565b50506001600160a01b03969096166060850152505050608001529392505050565b60008219821115611d7f57611d7f611ee5565b500190565b600082611da157634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115611de1578160001904821115611dc757611dc7611ee5565b80851615611dd457918102915b93841c9390800290611dab565b509250929050565b6000610d4660ff841683600082611e02575060016104af565b81611e0f575060006104af565b8160018114611e255760028114611e2f57611e4b565b60019150506104af565b60ff841115611e4057611e40611ee5565b50506001821b6104af565b5060208310610133831016604e8410600b8410161715611e6e575081810a6104af565b611e788383611da6565b8060001904821115611e8c57611e8c611ee5565b029392505050565b6000816000190483118215151615611eae57611eae611ee5565b500290565b600082821015611ec557611ec5611ee5565b500390565b6000600019821415611ede57611ede611ee5565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146107b057600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122033da012142f8fbce09418f6e942db1b0eb8aeb29c27a6f649596057e6f5bb38a64736f6c63430008050033

Deployed Bytecode Sourcemap

3904:11596:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8022:83;;;;;;;;;;-1:-1:-1;8092:5:0;;;;;;;;;;;-1:-1:-1;;;8092:5:0;;;;8022:83;;;;8092:5;8022:83;:::i;:::-;;;;;;;;8905:186;;;;;;;;;;-1:-1:-1;8905:186:0;;;;;:::i;:::-;;:::i;:::-;;;5138:14:1;;5131:22;5113:41;;5101:2;5086:18;8905:186:0;5068:92:1;4553:52:0;;;;;;;;;;;;;;;;;;;11302:25:1;;;11290:2;11275:18;4553:52:0;11257:76:1;8299:95:0;;;;;;;;;;;;;:::i;9099:446::-;;;;;;;;;;-1:-1:-1;9099:446:0;;;;;:::i;:::-;;:::i;8208:83::-;;;;;;;;;;-1:-1:-1;4412:1:0;8208:83;;;12495:4:1;12483:17;;;12465:36;;12453:2;12438:18;8208:83:0;12420:87:1;7519:168:0;;;;;;;;;;-1:-1:-1;7519:168:0;;;;;:::i;:::-;;:::i;:::-;;7695:86;;;;;;;;;;-1:-1:-1;7695:86:0;;;;;:::i;:::-;-1:-1:-1;;;;;7766:7:0;7742:4;7766:7;;;:4;:7;;;;;;;;;7695:86;5439:38;;;;;;;;;;-1:-1:-1;5439:38:0;;;;-1:-1:-1;;;5439:38:0;;;;;;8402:119;;;;;;;;;;-1:-1:-1;8402:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;8495:18:0;8468:7;8495:18;;;:9;:18;;;;;;;8402:119;3749:148;;;;;;;;;;;;;:::i;5542:38::-;;;;;;;;;;-1:-1:-1;5542:38:0;;;;;;;;7038:201;;;;;;;;;;;;;:::i;4493:53::-;;;;;;;;;;;;;;;;7789:188;;;;;;;;;;;;;:::i;6553:477::-;;;;;;;;;;;;;:::i;3535:79::-;;;;;;;;;;-1:-1:-1;3573:7:0;3600:6;3535:79;;-1:-1:-1;;;;;3600:6:0;;;3711:51:1;;3699:2;3684:18;3535:79:0;3666:102:1;4674:55:0;;;;;;;;;;;;;;;;8529:192;;;;;;;;;;-1:-1:-1;8529:192:0;;;;;:::i;:::-;;:::i;4736:56::-;;;;;;;;;;;;;;;;4287:40;;;;;;;;;;-1:-1:-1;4287:40:0;;;;;;;;7347:164;;;;;;;;;;-1:-1:-1;7347:164:0;;;;;:::i;:::-;;:::i;8729:168::-;;;;;;;;;;-1:-1:-1;8729:168:0;;;;;:::i;:::-;-1:-1:-1;;;;;8862:18:0;;;8835:7;8862:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8729:168;6091:454;;;;;;;;;;;;;:::i;8905:186::-;9005:4;9022:39;2222:10;9045:7;9054:6;9022:8;:39::i;:::-;-1:-1:-1;9079:4:0;8905:186;;;;;:::o;8299:95::-;8352:7;4471:15;4412:1;4471:2;:15;:::i;:::-;4455:31;;:13;:31;:::i;:::-;8372:14;;8299:95;:::o;9099:446::-;9231:4;9248:36;9258:6;9266:9;9277:6;9248:9;:36::i;:::-;9295:220;9318:6;2222:10;9366:138;9422:6;9366:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9366:19:0;;;;;;:11;:19;;;;;;;;2222:10;9366:33;;;;;;;;;;:37;:138::i;:::-;9295:8;:220::i;:::-;-1:-1:-1;9533:4:0;9099:446;;;;;:::o;7519:168::-;3662:6;;-1:-1:-1;;;;;3662:6:0;2222:10;3662:22;3654:67;;;;-1:-1:-1;;;3654:67:0;;;;;;;:::i;:::-;;;;;;;;;7594:6:::1;7589:91;7610:6;:13;7606:1;:17;7589:91;;;7663:5;7645:4;:15;7650:6;7657:1;7650:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;7645:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;7645:15:0;:23;;-1:-1:-1;;7645:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7625:3;::::1;::::0;::::1;:::i;:::-;;;;7589:91;;;;7519:168:::0;:::o;3749:148::-;3662:6;;-1:-1:-1;;;;;3662:6:0;2222:10;3662:22;3654:67;;;;-1:-1:-1;;;3654:67:0;;;;;;;:::i;:::-;3856:1:::1;3840:6:::0;;3819:40:::1;::::0;-1:-1:-1;;;;;3840:6:0;;::::1;::::0;3819:40:::1;::::0;3856:1;;3819:40:::1;3887:1;3870:19:::0;;-1:-1:-1;;;;;;3870:19:0::1;::::0;;3749:148::o;7038:201::-;3662:6;;-1:-1:-1;;;;;3662:6:0;2222:10;3662:22;3654:67;;;;-1:-1:-1;;;3654:67:0;;;;;;;:::i;:::-;4471:15:::1;4412:1;4471:2;:15;:::i;:::-;4455:31;::::0;:13:::1;:31;:::i;:::-;7092:12;:22:::0;4471:15:::1;4412:1;4471:2;:15;:::i;:::-;4455:31;::::0;:13:::1;:31;:::i;:::-;7125:14;:24:::0;;;7160:20:::1;:28:::0;;-1:-1:-1;;7160:28:0::1;::::0;;7204:27:::1;::::0;4471:15:::1;::::0;4412:1:::1;::::0;4471:15:::1;:::i;:::-;4455:31;::::0;:13:::1;:31;:::i;:::-;7204:27;::::0;11302:25:1;;;11290:2;11275:18;7204:27:0::1;;;;;;;7038:201::o:0;7789:188::-;3662:6;;-1:-1:-1;;;;;3662:6:0;2222:10;3662:22;3654:67;;;;-1:-1:-1;;;3654:67:0;;;;;;;:::i;:::-;7879:1:::1;7855:21;:25;7847:60;;;::::0;-1:-1:-1;;;7847:60:0;;9489:2:1;7847:60:0::1;::::0;::::1;9471:21:1::0;9528:2;9508:18;;;9501:30;-1:-1:-1;;;9547:18:1;;;9540:52;9609:18;;7847:60:0::1;9461:172:1::0;7847:60:0::1;7918:51;::::0;7926:10:::1;::::0;7947:21:::1;7918:51:::0;::::1;;;::::0;::::1;::::0;;;7947:21;7926:10;7918:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;7789:188::o:0;6553:477::-;3662:6;;-1:-1:-1;;;;;3662:6:0;2222:10;3662:22;3654:67;;;;-1:-1:-1;;;3654:67:0;;;;;;;:::i;:::-;6617:11:::1;::::0;-1:-1:-1;;;6617:11:0;::::1;;;6616:12;6608:48;;;::::0;-1:-1:-1;;;6608:48:0;;11006:2:1;6608:48:0::1;::::0;::::1;10988:21:1::0;11045:2;11025:18;;;11018:30;-1:-1:-1;;;11064:18:1;;;11057:53;11127:18;;6608:48:0::1;10978:173:1::0;6608:48:0::1;6669:15;::::0;6773:12:::1;::::0;-1:-1:-1;;;;;6669:15:0;;::::1;::::0;:31:::1;::::0;6708:21:::1;::::0;6753:4:::1;::::0;6669:15:::1;::::0;6832:7:::1;3573::::0;3600:6;-1:-1:-1;;;;;3600:6:0;;3535:79;6832:7:::1;6669:211;::::0;::::1;::::0;;;-1:-1:-1;;;;;;6669:211:0;;;-1:-1:-1;;;;;4720:15:1;;;6669:211:0::1;::::0;::::1;4702:34:1::0;4752:18;;;4745:34;;;;4795:18;;;4788:34;;;;4838:18;;;4831:34;4902:15;;;4881:19;;;4874:44;6854:15:0::1;4934:19:1::0;;;4927:35;4636:19;;6669:211:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;6900:13:0::1;::::0;6931:15:::1;::::0;6893:71:::1;::::0;-1:-1:-1;;;6893:71:0;;-1:-1:-1;;;;;6931:15:0;;::::1;6893:71;::::0;::::1;4256:51:1::0;-1:-1:-1;;4323:18:1;;;4316:34;6900:13:0;::::1;::::0;-1:-1:-1;6893:29:0::1;::::0;4229:18:1;;6893:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;6975:11:0::1;:18:::0;;-1:-1:-1;;;;7004:18:0;-1:-1:-1;;;7004:18:0;;;6553:477::o;8529:192::-;8632:4;8649:42;2222:10;8673:9;8684:6;8649:9;:42::i;7347:164::-;3662:6;;-1:-1:-1;;;;;3662:6:0;2222:10;3662:22;3654:67;;;;-1:-1:-1;;;3654:67:0;;;;;;;:::i;:::-;7421:6:::1;7416:88;7437:5;:12;7433:1;:16;7416:88;;;7488:4;7471;:14;7476:5;7482:1;7476:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;7471:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;7471:14:0;:21;;-1:-1:-1;;7471:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7451:3;::::1;::::0;::::1;:::i;:::-;;;;7416:88;;6091:454:::0;3662:6;;-1:-1:-1;;;;;3662:6:0;2222:10;3662:22;3654:67;;;;-1:-1:-1;;;3654:67:0;;;;;;;:::i;:::-;6150:11:::1;::::0;-1:-1:-1;;;6150:11:0;::::1;;;6149:12;6141:48;;;::::0;-1:-1:-1;;;6141:48:0;;11006:2:1;6141:48:0::1;::::0;::::1;10988:21:1::0;11045:2;11025:18;;;11018:30;-1:-1:-1;;;11064:18:1;;;11057:53;11127:18;;6141:48:0::1;10978:173:1::0;6141:48:0::1;6202:15;:104:::0;;-1:-1:-1;;;;;;6202:104:0::1;6253:42;6202:104:::0;;::::1;::::0;;;6319:58:::1;::::0;6336:4:::1;::::0;4471:15:::1;4412:1;4471:2;:15;:::i;:::-;4455:31;::::0;:13:::1;:31;:::i;6319:58::-;6424:15;;;;;;;;;-1:-1:-1::0;;;;;6424:15:0::1;-1:-1:-1::0;;;;;6424:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6406:55:0::1;;6484:4;6504:15;;;;;;;;;-1:-1:-1::0;;;;;6504:15:0::1;-1:-1:-1::0;;;;;6504:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6406:131;::::0;-1:-1:-1;;;;;;6406:131:0::1;::::0;;;;;;-1:-1:-1;;;;;4003:15:1;;;6406:131:0::1;::::0;::::1;3985:34:1::0;4055:15;;4035:18;;;4028:43;3920:18;;6406:131:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6390:13;:147:::0;;-1:-1:-1;;;;;;6390:147:0::1;-1:-1:-1::0;;;;;6390:147:0;;;::::1;::::0;;;::::1;::::0;;6091:454::o;822:246::-;880:7;904:6;900:47;;-1:-1:-1;934:1:0;927:8;;900:47;957:9;969:5;973:1;969;:5;:::i;:::-;957:17;-1:-1:-1;1002:1:0;993:5;997:1;957:17;993:5;:::i;:::-;:10;985:56;;;;-1:-1:-1;;;985:56:0;;8316:2:1;985:56:0;;;8298:21:1;8355:2;8335:18;;;8328:30;8394:34;8374:18;;;8367:62;-1:-1:-1;;;8445:18:1;;;8438:31;8486:19;;985:56:0;8288:223:1;985:56:0;1059:1;822:246;-1:-1:-1;;;822:246:0:o;1076:132::-;1134:7;1161:39;1165:1;1168;1161:39;;;;;;;;;;;;;;;;;:3;:39::i;9553:335::-;-1:-1:-1;;;;;9646:19:0;;9638:68;;;;-1:-1:-1;;;9638:68:0;;10601:2:1;9638:68:0;;;10583:21:1;10640:2;10620:18;;;10613:30;10679:34;10659:18;;;10652:62;-1:-1:-1;;;10730:18:1;;;10723:34;10774:19;;9638:68:0;10573:226:1;9638:68:0;-1:-1:-1;;;;;9725:21:0;;9717:68;;;;-1:-1:-1;;;9717:68:0;;7075:2:1;9717:68:0;;;7057:21:1;7114:2;7094:18;;;7087:30;7153:34;7133:18;;;7126:62;-1:-1:-1;;;7204:18:1;;;7197:32;7246:19;;9717:68:0;7047:224:1;9717:68:0;-1:-1:-1;;;;;9796:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9848:32;;11302:25:1;;;9848:32:0;;11275:18:1;9848:32:0;;;;;;;;9553:335;;;:::o;10137:3448::-;-1:-1:-1;;;;;10225:18:0;;10217:68;;;;-1:-1:-1;;;10217:68:0;;9840:2:1;10217:68:0;;;9822:21:1;9879:2;9859:18;;;9852:30;9918:34;9898:18;;;9891:62;-1:-1:-1;;;9969:18:1;;;9962:35;10014:19;;10217:68:0;9812:227:1;10217:68:0;-1:-1:-1;;;;;10304:16:0;;10296:64;;;;-1:-1:-1;;;10296:64:0;;5969:2:1;10296:64:0;;;5951:21:1;6008:2;5988:18;;;5981:30;6047:34;6027:18;;;6020:62;-1:-1:-1;;;6098:18:1;;;6091:33;6141:19;;10296:64:0;5941:225:1;10296:64:0;10388:1;10379:6;:10;10371:64;;;;-1:-1:-1;;;10371:64:0;;9079:2:1;10371:64:0;;;9061:21:1;9118:2;9098:18;;;9091:30;9157:34;9137:18;;;9130:62;-1:-1:-1;;;9208:18:1;;;9201:39;9257:19;;10371:64:0;9051:231:1;10371:64:0;10451:11;;-1:-1:-1;;;10451:11:0;;;;10450:12;;:22;;-1:-1:-1;10466:6:0;;-1:-1:-1;;;10466:6:0;;;;10450:22;10446:108;;;10489:32;10504:4;10510:2;10514:6;10489:14;:32::i;:::-;10137:3448;;;:::o;10446:108::-;-1:-1:-1;;;;;10605:24:0;;10564:17;10605:24;;;:18;:24;;;;;;;;10654:7;3573;3600:6;-1:-1:-1;;;;;3600:6:0;;3535:79;10654:7;-1:-1:-1;;;;;10646:15:0;:4;-1:-1:-1;;;;;10646:15:0;;;:32;;;;-1:-1:-1;3573:7:0;3600:6;-1:-1:-1;;;;;10665:13:0;;;3600:6;;10665:13;;10646:32;10642:2868;;;-1:-1:-1;;;;;10704:10:0;;;;;;:4;:10;;;;;;;;10703:11;:24;;;;-1:-1:-1;;;;;;10719:8:0;;;;;;:4;:8;;;;;;;;10718:9;10703:24;10695:33;;;;;;10755:208;10959:3;10755:181;10819:15;;10807:9;;:27;10806:111;;10903:14;;10806:111;;;10863:12;;10806:111;10755:6;;:28;:181::i;:::-;:203;;:208::i;:::-;10984:20;;10743:220;;-1:-1:-1;10984:20:0;;10980:522;;;11065:15;;-1:-1:-1;;;;;11051:30:0;;;11065:15;;11051:30;;;;:83;;-1:-1:-1;11120:13:0;;-1:-1:-1;;;;;11106:28:0;;;11120:13;;11106:28;;11051:83;11025:462;;;11240:9;11211:39;;;;:28;:39;;;;;;11253:12;-1:-1:-1;11177:213:0;;;;-1:-1:-1;;;11177:213:0;;7834:2:1;11177:213:0;;;7816:21:1;7873:2;7853:18;;;7846:30;7912:34;7892:18;;;7885:62;7983:34;7963:18;;;7956:62;-1:-1:-1;;;8034:19:1;;;8027:40;8084:19;;11177:213:0;7806:303:1;11177:213:0;11442:9;11413:39;;;;:28;:39;;;;;11455:12;11413:54;;11025:462;11548:13;;-1:-1:-1;;;;;11540:21:0;;;11548:13;;11540:21;:60;;;;-1:-1:-1;11582:18:0;;-1:-1:-1;;;11582:18:0;;;;11540:60;:104;;;;-1:-1:-1;;;;;;11622:22:0;;;;;;:18;:22;;;;;;;;11621:23;11540:104;11518:383;;;-1:-1:-1;;;;;11709:17:0;;;;;;:13;:17;;;;;;11729:15;-1:-1:-1;11679:128:0;;;;-1:-1:-1;;;11679:128:0;;6373:2:1;11679:128:0;;;6355:21:1;6412:2;6392:18;;;6385:30;-1:-1:-1;;;6431:18:1;;;6424:49;6490:18;;11679:128:0;6345:169:1;11679:128:0;11864:21;;11846:39;;11864:21;;11846:15;:39;:::i;:::-;-1:-1:-1;;;;;11826:17:0;;;;;;:13;:17;;;;;:59;11518:383;11947:13;;-1:-1:-1;;;;;11939:21:0;;;11947:13;;11939:21;:72;;;;-1:-1:-1;11995:15:0;;-1:-1:-1;;;;;11981:30:0;;;11995:15;;11981:30;;11939:72;:116;;;;-1:-1:-1;;;;;;12033:22:0;;;;;;:18;:22;;;;;;;;12032:23;11939:116;11917:438;;;12108:12;;12098:6;:22;;12090:60;;;;-1:-1:-1;;;12090:60:0;;6721:2:1;12090:60:0;;;6703:21:1;6760:2;6740:18;;;6733:30;6799:27;6779:18;;;6772:55;6844:18;;12090:60:0;6693:175:1;12090:60:0;12225:14;;12215:6;12199:13;12209:2;-1:-1:-1;;;;;8495:18:0;8468:7;8495:18;;;:9;:18;;;;;;;8402:119;12199:13;:22;;;;:::i;:::-;:40;;12169:140;;;;-1:-1:-1;;;12169:140:0;;10246:2:1;12169:140:0;;;10228:21:1;10285:2;10265:18;;;10258:30;10324:28;10304:18;;;10297:56;10370:18;;12169:140:0;10218:176:1;12169:140:0;12328:9;:11;;;:9;:11;;;:::i;:::-;;;;;;11917:438;12381:13;;-1:-1:-1;;;;;12375:19:0;;;12381:13;;12375:19;:44;;;;-1:-1:-1;;;;;;12398:21:0;;12414:4;12398:21;;12375:44;12371:332;;;12452:235;12683:3;12452:204;12524:16;;12512:9;;:28;12511:122;;12618:15;;12511:122;;;12573:13;;12452:6;;:32;:204::i;:235::-;12440:247;;12371:332;12768:4;12719:28;8495:18;;;:9;:18;;;;;;12812:6;;-1:-1:-1;;;12812:6:0;;;;12811:7;:47;;;;-1:-1:-1;12845:13:0;;-1:-1:-1;;;;;12839:19:0;;;12845:13;;12839:19;12811:47;:79;;;;-1:-1:-1;12879:11:0;;-1:-1:-1;;;12879:11:0;;;;12811:79;:130;;;;;12923:18;;12911:9;;:30;12811:130;:176;;;;-1:-1:-1;;;;;;12963:24:0;;;;;;:18;:24;;;;;;;;12962:25;12811:176;:220;;;;-1:-1:-1;;;;;;13009:22:0;;;;;;:18;:22;;;;;;;;13008:23;12811:220;12789:710;;;13093:17;;13069:20;:41;13066:206;;13135:117;13178:51;13182:6;13190:38;13194:20;13216:11;;13190:3;:38::i;:::-;13178:3;:51::i;:::-;13135:16;:117::i;:::-;13337:21;13429:35;13442:21;13429:12;:35::i;:::-;13047:452;12789:710;10680:2830;10642:2868;13522:55;13537:4;13543:2;13547:6;13555:10;13567:9;13522:14;:55::i;:::-;10206:3379;;10137:3448;;;:::o;590:224::-;710:7;746:12;738:6;;;;730:29;;;;-1:-1:-1;;;730:29:0;;;;;;;;:::i;:::-;-1:-1:-1;770:9:0;782:5;786:1;782;:5;:::i;:::-;770:17;590:224;-1:-1:-1;;;;;590:224:0:o;1216:223::-;1336:7;1371:12;1364:5;1356:28;;;;-1:-1:-1;;;1356:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1395:9:0;1407:5;1411:1;1407;:5;:::i;9896:233::-;-1:-1:-1;;;;;10000:15:0;;;;;;:9;:15;;;;;;:27;;10020:6;10000:19;:27::i;:::-;-1:-1:-1;;;;;9982:15:0;;;;;;;:9;:15;;;;;;:45;;;;10054:13;;;;;;;:25;;10072:6;10054:17;:25::i;:::-;-1:-1:-1;;;;;10038:13:0;;;;;;;:9;:13;;;;;;;:41;;;;10095:26;;;;;;-1:-1:-1;;;;;;;;;;;10095:26:0;;;10114:6;11302:25:1;;11290:2;11275:18;;11257:76;14899:107:0;14956:7;14988:1;14984;:5;14983:15;;14997:1;14983:15;;;-1:-1:-1;14993:1:0;14899:107;-1:-1:-1;14899:107:0:o;15014:483::-;5671:6;:13;;-1:-1:-1;;;;5671:13:0;-1:-1:-1;;;5671:13:0;;;15116:16:::1;::::0;;15130:1:::1;15116:16:::0;;;;;::::1;::::0;;-1:-1:-1;;15116:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;15116:16:0::1;15092:40;;15161:4;15143;15148:1;15143:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15143:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;15187:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;15187:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;15143:7;;15187:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15177:4;15182:1;15177:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15177:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;15252:15:::1;::::0;15220:62:::1;::::0;15237:4:::1;::::0;15252:15:::1;15270:11:::0;15220:8:::1;:62::i;:::-;15293:15;::::0;:196:::1;::::0;-1:-1:-1;;;15293:196:0;;-1:-1:-1;;;;;15293:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;15374:11;;15293:15:::1;::::0;15416:4;;15443::::1;::::0;15463:15:::1;::::0;15293:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5707:6:0;:14;;-1:-1:-1;;;;5707:14:0;;;-1:-1:-1;;;;15014:483:0:o;7247:92::-;7304:10;;:27;;:10;;;;-1:-1:-1;;;;;7304:10:0;;:27;;;;;;;;;;;;:10;:27;;;;;;;;;;;;;;;;;;;13593:405;13771:10;13767:162;;;13798:48;13822:4;13828:6;13836:9;13798:23;:48::i;:::-;13767:162;;;13879:38;13901:4;13907:9;13879:21;:38::i;:::-;13941:49;13962:4;13968:2;13972:6;13980:9;13941:20;:49::i;446:136::-;504:7;531:43;535:1;538;531:43;;;;;;;;;;;;;;;;;:3;:43::i;259:179::-;317:7;;349:5;353:1;349;:5;:::i;:::-;337:17;;378:1;373;:6;;365:46;;;;-1:-1:-1;;;365:46:0;;7478:2:1;365:46:0;;;7460:21:1;7517:2;7497:18;;;7490:30;7556:29;7536:18;;;7529:57;7603:18;;365:46:0;7450:177:1;14610:281:0;14718:15;14736:18;14745:9;14736:6;:18;:::i;:::-;-1:-1:-1;;;;;14789:21:0;;;;;;:9;:21;;;;;;14718:36;;-1:-1:-1;14789:34:0;;14718:36;14789:25;:34::i;:::-;-1:-1:-1;;;;;14765:21:0;;;;;;:9;:21;;;;;;;:58;;;;14839:44;;14856:4;;-1:-1:-1;;;;;;;;;;;14839:44:0;;;14875:7;11302:25:1;;11290:2;11275:18;;11257:76;14839:44:0;;;;;;;;14707:184;14610:281;;;:::o;14302:300::-;14392:13;;14389:206;;14467:4;14449:24;;;;:9;:24;;;;;;:71;;14496:9;14449:28;:71::i;:::-;14440:4;14422:24;;;;:9;:24;;;;;;;:98;;;;14540:43;;-1:-1:-1;;;;;14540:43:0;;;-1:-1:-1;;;;;;;;;;;14540:43:0;;;14573:9;11302:25:1;;11290:2;11275:18;;11257:76;14540:43:0;;;;;;;;14302:300;;:::o;14006:288::-;-1:-1:-1;;;;;14135:15:0;;;;;;:9;:15;;;;;;:27;;14155:6;14135:19;:27::i;:::-;-1:-1:-1;;;;;14117:15:0;;;;;;:9;:15;;;;;:45;14189:40;14207:21;:6;14218:9;14207:10;:21::i;:::-;-1:-1:-1;;;;;14189:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;14173:13:0;;;;;;;:9;:13;;;;;:56;;;;14245:41;;-1:-1:-1;;;;;;;;;;;14264:21:0;:6;14275:9;14264:10;:21::i;:::-;14245:41;;11302:25:1;;;11290:2;11275:18;14245:41:0;11257:76:1;14:134;82:20;;111:31;82:20;111:31;:::i;:::-;63:85;;;:::o;153:247::-;212:6;265:2;253:9;244:7;240:23;236:32;233:2;;;281:1;278;271:12;233:2;320:9;307:23;339:31;364:5;339:31;:::i;405:251::-;475:6;528:2;516:9;507:7;503:23;499:32;496:2;;;544:1;541;534:12;496:2;576:9;570:16;595:31;620:5;595:31;:::i;661:388::-;729:6;737;790:2;778:9;769:7;765:23;761:32;758:2;;;806:1;803;796:12;758:2;845:9;832:23;864:31;889:5;864:31;:::i;:::-;914:5;-1:-1:-1;971:2:1;956:18;;943:32;984:33;943:32;984:33;:::i;:::-;1036:7;1026:17;;;748:301;;;;;:::o;1054:456::-;1131:6;1139;1147;1200:2;1188:9;1179:7;1175:23;1171:32;1168:2;;;1216:1;1213;1206:12;1168:2;1255:9;1242:23;1274:31;1299:5;1274:31;:::i;:::-;1324:5;-1:-1:-1;1381:2:1;1366:18;;1353:32;1394:33;1353:32;1394:33;:::i;:::-;1158:352;;1446:7;;-1:-1:-1;;;1500:2:1;1485:18;;;;1472:32;;1158:352::o;1515:315::-;1583:6;1591;1644:2;1632:9;1623:7;1619:23;1615:32;1612:2;;;1660:1;1657;1650:12;1612:2;1699:9;1686:23;1718:31;1743:5;1718:31;:::i;:::-;1768:5;1820:2;1805:18;;;;1792:32;;-1:-1:-1;;;1602:228:1:o;1835:1132::-;1919:6;1950:2;1993;1981:9;1972:7;1968:23;1964:32;1961:2;;;2009:1;2006;1999:12;1961:2;2049:9;2036:23;2078:18;2119:2;2111:6;2108:14;2105:2;;;2135:1;2132;2125:12;2105:2;2173:6;2162:9;2158:22;2148:32;;2218:7;2211:4;2207:2;2203:13;2199:27;2189:2;;2240:1;2237;2230:12;2189:2;2276;2263:16;2298:2;2294;2291:10;2288:2;;;2304:18;;:::i;:::-;2350:2;2347:1;2343:10;2382:2;2376:9;2445:2;2441:7;2436:2;2432;2428:11;2424:25;2416:6;2412:38;2500:6;2488:10;2485:22;2480:2;2468:10;2465:18;2462:46;2459:2;;;2511:18;;:::i;:::-;2547:2;2540:22;2597:18;;;2631:15;;;;-1:-1:-1;2666:11:1;;;2696;;;2692:20;;2689:33;-1:-1:-1;2686:2:1;;;2735:1;2732;2725:12;2686:2;2757:1;2748:10;;2767:169;2781:2;2778:1;2775:9;2767:169;;;2838:23;2857:3;2838:23;:::i;:::-;2826:36;;2799:1;2792:9;;;;;2882:12;;;;2914;;2767:169;;;-1:-1:-1;2955:6:1;1930:1037;-1:-1:-1;;;;;;;;1930:1037:1:o;2972:277::-;3039:6;3092:2;3080:9;3071:7;3067:23;3063:32;3060:2;;;3108:1;3105;3098:12;3060:2;3140:9;3134:16;3193:5;3186:13;3179:21;3172:5;3169:32;3159:2;;3215:1;3212;3205:12;3254:306;3342:6;3350;3358;3411:2;3399:9;3390:7;3386:23;3382:32;3379:2;;;3427:1;3424;3417:12;3379:2;3456:9;3450:16;3440:26;;3506:2;3495:9;3491:18;3485:25;3475:35;;3550:2;3539:9;3535:18;3529:25;3519:35;;3369:191;;;;;:::o;5165:597::-;5277:4;5306:2;5335;5324:9;5317:21;5367:6;5361:13;5410:6;5405:2;5394:9;5390:18;5383:34;5435:1;5445:140;5459:6;5456:1;5453:13;5445:140;;;5554:14;;;5550:23;;5544:30;5520:17;;;5539:2;5516:26;5509:66;5474:10;;5445:140;;;5603:6;5600:1;5597:13;5594:2;;;5673:1;5668:2;5659:6;5648:9;5644:22;5640:31;5633:42;5594:2;-1:-1:-1;5746:2:1;5725:15;-1:-1:-1;;5721:29:1;5706:45;;;;5753:2;5702:54;;5286:476;-1:-1:-1;;;5286:476:1:o;8516:356::-;8718:2;8700:21;;;8737:18;;;8730:30;8796:34;8791:2;8776:18;;8769:62;8863:2;8848:18;;8690:182::o;11338:980::-;11600:4;11648:3;11637:9;11633:19;11679:6;11668:9;11661:25;11705:2;11743:6;11738:2;11727:9;11723:18;11716:34;11786:3;11781:2;11770:9;11766:18;11759:31;11810:6;11845;11839:13;11876:6;11868;11861:22;11914:3;11903:9;11899:19;11892:26;;11953:2;11945:6;11941:15;11927:29;;11974:1;11984:195;11998:6;11995:1;11992:13;11984:195;;;12063:13;;-1:-1:-1;;;;;12059:39:1;12047:52;;12154:15;;;;12119:12;;;;12095:1;12013:9;11984:195;;;-1:-1:-1;;;;;;;12235:32:1;;;;12230:2;12215:18;;12208:60;-1:-1:-1;;;12299:3:1;12284:19;12277:35;12196:3;11609:709;-1:-1:-1;;;11609:709:1:o;12512:128::-;12552:3;12583:1;12579:6;12576:1;12573:13;12570:2;;;12589:18;;:::i;:::-;-1:-1:-1;12625:9:1;;12560:80::o;12645:217::-;12685:1;12711;12701:2;;12755:10;12750:3;12746:20;12743:1;12736:31;12790:4;12787:1;12780:15;12818:4;12815:1;12808:15;12701:2;-1:-1:-1;12847:9:1;;12691:171::o;12867:422::-;12956:1;12999:5;12956:1;13013:270;13034:7;13024:8;13021:21;13013:270;;;13093:4;13089:1;13085:6;13081:17;13075:4;13072:27;13069:2;;;13102:18;;:::i;:::-;13152:7;13142:8;13138:22;13135:2;;;13172:16;;;;13135:2;13251:22;;;;13211:15;;;;13013:270;;;13017:3;12931:358;;;;;:::o;13294:140::-;13352:5;13381:47;13422:4;13412:8;13408:19;13402:4;13488:5;13518:8;13508:2;;-1:-1:-1;13559:1:1;13573:5;;13508:2;13607:4;13597:2;;-1:-1:-1;13644:1:1;13658:5;;13597:2;13689:4;13707:1;13702:59;;;;13775:1;13770:130;;;;13682:218;;13702:59;13732:1;13723:10;;13746:5;;;13770:130;13807:3;13797:8;13794:17;13791:2;;;13814:18;;:::i;:::-;-1:-1:-1;;13870:1:1;13856:16;;13885:5;;13682:218;;13984:2;13974:8;13971:16;13965:3;13959:4;13956:13;13952:36;13946:2;13936:8;13933:16;13928:2;13922:4;13919:12;13915:35;13912:77;13909:2;;;-1:-1:-1;14021:19:1;;;14053:5;;13909:2;14100:34;14125:8;14119:4;14100:34;:::i;:::-;14170:6;14166:1;14162:6;14158:19;14149:7;14146:32;14143:2;;;14181:18;;:::i;:::-;14219:20;;13498:747;-1:-1:-1;;;13498:747:1:o;14250:168::-;14290:7;14356:1;14352;14348:6;14344:14;14341:1;14338:21;14333:1;14326:9;14319:17;14315:45;14312:2;;;14363:18;;:::i;:::-;-1:-1:-1;14403:9:1;;14302:116::o;14423:125::-;14463:4;14491:1;14488;14485:8;14482:2;;;14496:18;;:::i;:::-;-1:-1:-1;14533:9:1;;14472:76::o;14553:135::-;14592:3;-1:-1:-1;;14613:17:1;;14610:2;;;14633:18;;:::i;:::-;-1:-1:-1;14680:1:1;14669:13;;14600:88::o;14693:127::-;14754:10;14749:3;14745:20;14742:1;14735:31;14785:4;14782:1;14775:15;14809:4;14806:1;14799:15;14825:127;14886:10;14881:3;14877:20;14874:1;14867:31;14917:4;14914:1;14907:15;14941:4;14938:1;14931:15;14957:127;15018:10;15013:3;15009:20;15006:1;14999:31;15049:4;15046:1;15039:15;15073:4;15070:1;15063:15;15089:131;-1:-1:-1;;;;;15164:31:1;;15154:42;;15144:2;;15210:1;15207;15200:12

Swarm Source

ipfs://33da012142f8fbce09418f6e942db1b0eb8aeb29c27a6f649596057e6f5bb38a
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.