ETH Price: $3,417.80 (+1.07%)
Gas: 4 Gwei

Token

Buyz Clob (BZC)
 

Overview

Max Total Supply

420,690,000,000,000 BZC

Holders

84

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,365,520,000,000 BZC

Value
$0.00
0x66d64e0eb8caf4f120d8945f00c3a56d9b6d4a36
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:
BZC

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-04-22
*/

// SPDX-License-Identifier: MIT

/*
Buyz Clob - An Alternate Universe of Matt Furie's Famous Boys Club Comic

Telegram: https://t.me/BuyzClob
Twitter (X): https://twitter.com/BuyzClob
Website: http://buyzclob.com/
*/

pragma solidity 0.8.25;

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

}

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

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

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

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

contract BZC 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) public marketPair;
    address payable private _taxWallet;
    uint256 firstBlock;

    uint256 private _initialBuyTax=200;
    uint256 private _midBuyTax=100;
    uint256 private _initialSellTax=200;
    uint256 private _midSellTax=100;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;

    uint256 private _midBuyTaxAt=30;
    uint256 private _reduceBuyTaxAt=45;

    uint256 private _midSellTaxAt=30;
    uint256 private _reduceSellTaxAt=45;
    uint256 private _preventSwapBefore=40;
    uint256 private _buyCount=0;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420690000000000 * 10**_decimals;
    string private constant _name = unicode"Buyz Clob";
    string private constant _symbol = unicode"BZC";
    uint256 public _maxTxAmount =   4206900000000 * 10**_decimals;
    uint256 public _maxWalletSize = 4206900000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 42069000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 12020700000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool public rescueSwitch = false;
    bool private tradingOpen;
    uint256 public Zx = 3;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool public caSwitch = true;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {

        _taxWallet = payable(0x370AaF16279f89db6c6E1fE7fa0033d031f33522);
        _balances[_msgSender()] = _tTotal;
        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[address(uniswapV2Pair)] = true;
        isExcludedFromFee[_taxWallet] = 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 _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 setMarketPair(address addr) public onlyOwner {
        marketPair[addr] = true;
    }

    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 taxAmount=0;

        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount> _reduceBuyTaxAt)? _finalBuyTax: ((_buyCount> _midBuyTaxAt)? _midBuyTax: _initialBuyTax)).div(1000);

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

                if (firstBlock + 3  > block.number) {
                    require(!isContract(to));
                }
                _buyCount++;
            }

            if (!marketPair[to] && ! isExcludedFromFee[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }

            if(marketPair[to] && from!= address(this) ){
                taxAmount = amount.mul((_buyCount> _reduceSellTaxAt)? _finalSellTax: ((_buyCount> _midSellTaxAt)? _midSellTax: _initialSellTax)).div(1000);
            }

	    if (!marketPair[from] && !marketPair[to] && from!= address(this) ) {
                taxAmount = 0;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (caSwitch && !inSwap && marketPair[to] && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < Zx, "CA balance sell");
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }

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

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


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

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

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

    function enableRescue(bool _status) external onlyOwner {
        rescueSwitch = _status;
    }

    function setMaxTaxSwap(bool enabled, uint256 amount) public {
        require(_msgSender() == _taxWallet);
        swapEnabled = enabled;
        _maxTaxSwap = amount;
    }

    function setZx(uint256 amount) public {
        require(_msgSender() == _taxWallet);
        Zx = amount;
    }

    function excludeAddr(address addr, bool exempt) public {
        require(_msgSender() == _taxWallet);
        isExcludedFromFee[addr] = exempt;
    }

    function clearSwitch(bool _status) public {
        require(_msgSender() == _taxWallet);
        caSwitch = _status;
    }

    function freeStuckEth() public {
        require(rescueSwitch || tradingOpen);
        payable(_taxWallet).transfer(address(this).balance);
    }

    function rescueAnyERC20Tokens(address _tokenAddr, uint _amount) public {
        require(rescueSwitch || tradingOpen);
        IERC20(_tokenAddr).transfer(_taxWallet, _amount);
    }

    function setFeeWallet(address newTaxWallet) public {
        require(_msgSender() == _taxWallet);
        _taxWallet = payable(newTaxWallet);
    }

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

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

    function enableTrading() 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());
        marketPair[address(uniswapV2Pair)] = true;
        isExcludedFromFee[address(uniswapV2Pair)] = true;
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    receive() external payable {}
}

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":"Zx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"caSwitch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"clearSwitch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enableRescue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"excludeAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"freeStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"marketPair","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":[{"internalType":"address","name":"_tokenAddr","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueAnyERC20Tokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueSwitch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newTaxWallet","type":"address"}],"name":"setFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"setMarketPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enabled","type":"bool"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTaxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setZx","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":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260c8600755606460085560c86009556064600a555f600b555f600c55601e600d55602d600e55601e600f55602d60105560286011555f6012555f6013555f6014556009600a610053919061035f565b610063906503d37ec7b500610374565b6015556100726009600a61035f565b610082906503d37ec7b500610374565b6016556100916009600a61035f565b6100a0906409cb81ff40610374565b6017556100af6009600a61035f565b6100bf90650aeec98daf00610374565b601855601a805460ff60a01b191690556003601b55601c805462ffffff1916620100001790553480156100f0575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b03191673370aaf16279f89db6c6e1fe7fa0033d031f335221790556101636009600a61035f565b6101749066017e9d8602b400610374565b335f90815260016020819052604082209290925560039061019c5f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155601a5482168452828420805486168217905560055490911683529120805490921617905561020b3390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6102426009600a61035f565b6102539066017e9d8602b400610374565b60405190815260200160405180910390a361038b565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156102b757815f190482111561029d5761029d610269565b808516156102aa57918102915b93841c9390800290610282565b509250929050565b5f826102cd57506001610359565b816102d957505f610359565b81600181146102ef57600281146102f957610315565b6001915050610359565b60ff84111561030a5761030a610269565b50506001821b610359565b5060208310610133831016604e8410600b8410161715610338575081810a610359565b610342838361027d565b805f190482111561035557610355610269565b0290505b92915050565b5f61036d60ff8416836102bf565b9392505050565b808202811582820484141761035957610359610269565b612005806103985f395ff3fe6080604052600436106101de575f3560e01c806381b4473b116100fd578063c7a4bdf711610092578063ee10b87d11610062578063ee10b87d1461058b578063f2fde38b146105aa578063f468b445146105c9578063f5b3c3bf146105dd575f80fd5b8063c7a4bdf7146104e9578063cb2d9bd914610509578063dd62ed3e14610528578063e68d0b051461056c575f80fd5b806390d49b9d116100cd57806390d49b9d1461046b57806395d89b411461048a578063a9059cbb146104b5578063bf474bed146104d4575f80fd5b806381b4473b146104075780638a8c523c146104265780638da5cb5b1461043a5780638f9a55c014610456575f80fd5b806359b999cb11610173578063751039fc11610143578063751039fc146103a05780637a117553146103b45780637ab3c762146103d35780637d1db4a5146103f2575f80fd5b806359b999cb146103245780635bb9162c1461034357806370a0823114610358578063715018a61461038c575f80fd5b806323b872dd116101ae57806323b872dd14610292578063313ce567146102b157806349bd5a5e146102cc57806353bc13dc14610303575f80fd5b806306fdde03146101e9578063095ea7b31461022c5780630faee56f1461025b57806318160ddd1461027e575f80fd5b366101e557005b5f80fd5b3480156101f4575f80fd5b50604080518082019091526009815268213abcbd1021b637b160b91b60208201525b6040516102239190611b8c565b60405180910390f35b348015610237575f80fd5b5061024b610246366004611bd5565b61060b565b6040519015158152602001610223565b348015610266575f80fd5b5061027060185481565b604051908152602001610223565b348015610289575f80fd5b50610270610621565b34801561029d575f80fd5b5061024b6102ac366004611bff565b610644565b3480156102bc575f80fd5b5060405160098152602001610223565b3480156102d7575f80fd5b50601a546102eb906001600160a01b031681565b6040516001600160a01b039091168152602001610223565b34801561030e575f80fd5b5061032261031d366004611c3d565b6106ab565b005b34801561032f575f80fd5b5061032261033e366004611bd5565b610700565b34801561034e575f80fd5b50610270601b5481565b348015610363575f80fd5b50610270610372366004611c3d565b6001600160a01b03165f9081526001602052604090205490565b348015610397575f80fd5b506103226107a2565b3480156103ab575f80fd5b50610322610813565b3480156103bf575f80fd5b506103226103ce366004611c65565b6108cd565b3480156103de575f80fd5b50601c5461024b9062010000900460ff1681565b3480156103fd575f80fd5b5061027060155481565b348015610412575f80fd5b50610322610421366004611c80565b610908565b348015610431575f80fd5b50610322610951565b348015610445575f80fd5b505f546001600160a01b03166102eb565b348015610461575f80fd5b5061027060165481565b348015610476575f80fd5b50610322610485366004611c3d565b610d43565b348015610495575f80fd5b50604080518082019091526003815262425a4360e81b6020820152610216565b3480156104c0575f80fd5b5061024b6104cf366004611bd5565b610d84565b3480156104df575f80fd5b5061027060175481565b3480156104f4575f80fd5b50601a5461024b90600160a01b900460ff1681565b348015610514575f80fd5b50610322610523366004611c65565b610d90565b348015610533575f80fd5b50610270610542366004611cb7565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610577575f80fd5b50610322610586366004611ce3565b610dd7565b348015610596575f80fd5b506103226105a5366004611cff565b610e14565b3480156105b5575f80fd5b506103226105c4366004611c3d565b610e38565b3480156105d4575f80fd5b50610322610f1f565b3480156105e8575f80fd5b5061024b6105f7366004611c3d565b60046020525f908152604090205460ff1681565b5f610617338484610f81565b5060015b92915050565b5f61062e6009600a611e0a565b61063f9066017e9d8602b400611e18565b905090565b5f6106508484846110a4565b6106a1843361069c85604051806060016040528060288152602001611fa8602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061180d565b610f81565b5060019392505050565b5f546001600160a01b031633146106dd5760405162461bcd60e51b81526004016106d490611e2f565b60405180910390fd5b6001600160a01b03165f908152600460205260409020805460ff19166001179055565b601a54600160a01b900460ff16806107215750601a54600160a81b900460ff165b610729575f80fd5b60055460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303815f875af1158015610779573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061079d9190611e64565b505050565b5f546001600160a01b031633146107cb5760405162461bcd60e51b81526004016106d490611e2f565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461083c5760405162461bcd60e51b81526004016106d490611e2f565b6108486009600a611e0a565b6108599066017e9d8602b400611e18565b6015556108686009600a611e0a565b6108799066017e9d8602b400611e18565b6016557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108a96009600a611e0a565b6108ba9066017e9d8602b400611e18565b60405190815260200160405180910390a1565b6005546001600160a01b0316336001600160a01b0316146108ec575f80fd5b601c8054911515620100000262ff000019909216919091179055565b6005546001600160a01b0316336001600160a01b031614610927575f80fd5b6001600160a01b03919091165f908152600360205260409020805460ff1916911515919091179055565b5f546001600160a01b0316331461097a5760405162461bcd60e51b81526004016106d490611e2f565b601a54600160a81b900460ff16156109d45760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016106d4565b601980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610a20903090610a0f6009600a611e0a565b61069c9066017e9d8602b400611e18565b60195f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a949190611e7f565b6001600160a01b031663c9c653963060195f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610af3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b179190611e7f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610b61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b859190611e7f565b601a80546001600160a01b039283166001600160a01b0319909116811782555f908152600460209081526040808320805460ff199081166001908117909255945486168452600390925290912080549092161790556019541663f305d7194730610c03816001600160a01b03165f9081526001602052604090205490565b5f80610c165f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610c7c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ca19190611e9a565b5050601a5460195460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610cf6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d1a9190611e64565b50601c805461ff001916610100179055601a805460ff60a81b1916600160a81b17905543600655565b6005546001600160a01b0316336001600160a01b031614610d62575f80fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b5f6106173384846110a4565b5f546001600160a01b03163314610db95760405162461bcd60e51b81526004016106d490611e2f565b601a8054911515600160a01b0260ff60a01b19909216919091179055565b6005546001600160a01b0316336001600160a01b031614610df6575f80fd5b601c80549215156101000261ff001990931692909217909155601855565b6005546001600160a01b0316336001600160a01b031614610e33575f80fd5b601b55565b5f546001600160a01b03163314610e615760405162461bcd60e51b81526004016106d490611e2f565b6001600160a01b038116610ec65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106d4565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b601a54600160a01b900460ff1680610f405750601a54600160a81b900460ff165b610f48575f80fd5b6005546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610f7e573d5f803e3d5ffd5b50565b6001600160a01b038316610fe35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106d4565b6001600160a01b0382166110445760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106d4565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111085760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106d4565b6001600160a01b03821661116a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106d4565b5f81116111cb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106d4565b5f80546001600160a01b038581169116148015906111f657505f546001600160a01b03848116911614155b156116d05761123b6103e8611235600e546012541161122a57600d54601254116112225760075461122e565b60085461122e565b600b545b8590611845565b906118ca565b6001600160a01b0385165f9081526004602052604090205490915060ff16801561127357506019546001600160a01b03848116911614155b801561129757506001600160a01b0383165f9081526003602052604090205460ff16155b1561139e576015548211156112ee5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016106d4565b60165482611310856001600160a01b03165f9081526001602052604090205490565b61131a9190611ec5565b11156113685760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016106d4565b4360065460036113789190611ec5565b111561138957823b15611389575f80fd5b60128054905f61139883611ed8565b91905055505b6001600160a01b0383165f9081526004602052604090205460ff161580156113de57506001600160a01b0383165f9081526003602052604090205460ff16155b1561145d5760165482611405856001600160a01b03165f9081526001602052604090205490565b61140f9190611ec5565b111561145d5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016106d4565b6001600160a01b0383165f9081526004602052604090205460ff16801561148d57506001600160a01b0384163014155b156114ce576114cb6103e8611235601054601254116114c157600f54601254116114b95760095461122e565b600a5461122e565b600c548590611845565b90505b6001600160a01b0384165f9081526004602052604090205460ff1615801561150e57506001600160a01b0383165f9081526004602052604090205460ff16155b801561152357506001600160a01b0384163014155b1561152b57505f5b305f90815260016020526040902054601c5462010000900460ff1680156115555750601c5460ff16155b801561157857506001600160a01b0384165f9081526004602052604090205460ff165b801561158b5750601c54610100900460ff165b8015611598575060175481115b80156115a75750601154601254115b1561164b576014544311156115bb575f6013555b601b54601354106116005760405162461bcd60e51b815260206004820152600f60248201526e10d04818985b185b98d9481cd95b1b608a1b60448201526064016106d4565b61161d611618846116138460185461190b565b61190b565b61191f565b47801561162d5761162d47611a86565b60138054905f61163c83611ed8565b909155505043601455506116ce565b601c5460ff1615801561167557506001600160a01b0384165f9081526004602052604090205460ff165b80156116885750601c54610100900460ff165b8015611695575060175481115b80156116a45750601154601254115b156116ce576116bc611618846116138460185461190b565b4780156116cc576116cc47611a86565b505b505b801561174857305f908152600160205260409020546116ef9082611ac1565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061173f9085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461176a9083611b1f565b6001600160a01b0385165f908152600160205260409020556117ad61178f8383611b1f565b6001600160a01b0385165f9081526001602052604090205490611ac1565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6117f68585611b1f565b60405190815260200160405180910390a350505050565b5f81848411156118305760405162461bcd60e51b81526004016106d49190611b8c565b505f61183c8486611ef0565b95945050505050565b5f825f0361185457505f61061b565b5f61185f8385611e18565b90508261186c8583611f03565b146118c35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106d4565b9392505050565b5f6118c383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b60565b5f81831161191957826118c3565b50919050565b601c805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061195f5761195f611f22565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119da9190611e7f565b816001815181106119ed576119ed611f22565b6001600160a01b039283166020918202929092010152601954611a139130911684610f81565b60195460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a4b9085905f90869030904290600401611f36565b5f604051808303815f87803b158015611a62575f80fd5b505af1158015611a74573d5f803e3d5ffd5b5050601c805460ff1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611abd573d5f803e3d5ffd5b5050565b5f80611acd8385611ec5565b9050838110156118c35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106d4565b5f6118c383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061180d565b5f8183611b805760405162461bcd60e51b81526004016106d49190611b8c565b505f61183c8486611f03565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610f7e575f80fd5b5f8060408385031215611be6575f80fd5b8235611bf181611bc1565b946020939093013593505050565b5f805f60608486031215611c11575f80fd5b8335611c1c81611bc1565b92506020840135611c2c81611bc1565b929592945050506040919091013590565b5f60208284031215611c4d575f80fd5b81356118c381611bc1565b8015158114610f7e575f80fd5b5f60208284031215611c75575f80fd5b81356118c381611c58565b5f8060408385031215611c91575f80fd5b8235611c9c81611bc1565b91506020830135611cac81611c58565b809150509250929050565b5f8060408385031215611cc8575f80fd5b8235611cd381611bc1565b91506020830135611cac81611bc1565b5f8060408385031215611cf4575f80fd5b8235611bf181611c58565b5f60208284031215611d0f575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611d6457815f1904821115611d4a57611d4a611d16565b80851615611d5757918102915b93841c9390800290611d2f565b509250929050565b5f82611d7a5750600161061b565b81611d8657505f61061b565b8160018114611d9c5760028114611da657611dc2565b600191505061061b565b60ff841115611db757611db7611d16565b50506001821b61061b565b5060208310610133831016604e8410600b8410161715611de5575081810a61061b565b611def8383611d2a565b805f1904821115611e0257611e02611d16565b029392505050565b5f6118c360ff841683611d6c565b808202811582820484141761061b5761061b611d16565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611e74575f80fd5b81516118c381611c58565b5f60208284031215611e8f575f80fd5b81516118c381611bc1565b5f805f60608486031215611eac575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561061b5761061b611d16565b5f60018201611ee957611ee9611d16565b5060010190565b8181038181111561061b5761061b611d16565b5f82611f1d57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611f865784516001600160a01b031683529383019391830191600101611f61565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a57c121af672a7691d4d73ab86203f85cc440746b309578d887eacfd5e8403ea64736f6c63430008190033

Deployed Bytecode

0x6080604052600436106101de575f3560e01c806381b4473b116100fd578063c7a4bdf711610092578063ee10b87d11610062578063ee10b87d1461058b578063f2fde38b146105aa578063f468b445146105c9578063f5b3c3bf146105dd575f80fd5b8063c7a4bdf7146104e9578063cb2d9bd914610509578063dd62ed3e14610528578063e68d0b051461056c575f80fd5b806390d49b9d116100cd57806390d49b9d1461046b57806395d89b411461048a578063a9059cbb146104b5578063bf474bed146104d4575f80fd5b806381b4473b146104075780638a8c523c146104265780638da5cb5b1461043a5780638f9a55c014610456575f80fd5b806359b999cb11610173578063751039fc11610143578063751039fc146103a05780637a117553146103b45780637ab3c762146103d35780637d1db4a5146103f2575f80fd5b806359b999cb146103245780635bb9162c1461034357806370a0823114610358578063715018a61461038c575f80fd5b806323b872dd116101ae57806323b872dd14610292578063313ce567146102b157806349bd5a5e146102cc57806353bc13dc14610303575f80fd5b806306fdde03146101e9578063095ea7b31461022c5780630faee56f1461025b57806318160ddd1461027e575f80fd5b366101e557005b5f80fd5b3480156101f4575f80fd5b50604080518082019091526009815268213abcbd1021b637b160b91b60208201525b6040516102239190611b8c565b60405180910390f35b348015610237575f80fd5b5061024b610246366004611bd5565b61060b565b6040519015158152602001610223565b348015610266575f80fd5b5061027060185481565b604051908152602001610223565b348015610289575f80fd5b50610270610621565b34801561029d575f80fd5b5061024b6102ac366004611bff565b610644565b3480156102bc575f80fd5b5060405160098152602001610223565b3480156102d7575f80fd5b50601a546102eb906001600160a01b031681565b6040516001600160a01b039091168152602001610223565b34801561030e575f80fd5b5061032261031d366004611c3d565b6106ab565b005b34801561032f575f80fd5b5061032261033e366004611bd5565b610700565b34801561034e575f80fd5b50610270601b5481565b348015610363575f80fd5b50610270610372366004611c3d565b6001600160a01b03165f9081526001602052604090205490565b348015610397575f80fd5b506103226107a2565b3480156103ab575f80fd5b50610322610813565b3480156103bf575f80fd5b506103226103ce366004611c65565b6108cd565b3480156103de575f80fd5b50601c5461024b9062010000900460ff1681565b3480156103fd575f80fd5b5061027060155481565b348015610412575f80fd5b50610322610421366004611c80565b610908565b348015610431575f80fd5b50610322610951565b348015610445575f80fd5b505f546001600160a01b03166102eb565b348015610461575f80fd5b5061027060165481565b348015610476575f80fd5b50610322610485366004611c3d565b610d43565b348015610495575f80fd5b50604080518082019091526003815262425a4360e81b6020820152610216565b3480156104c0575f80fd5b5061024b6104cf366004611bd5565b610d84565b3480156104df575f80fd5b5061027060175481565b3480156104f4575f80fd5b50601a5461024b90600160a01b900460ff1681565b348015610514575f80fd5b50610322610523366004611c65565b610d90565b348015610533575f80fd5b50610270610542366004611cb7565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b348015610577575f80fd5b50610322610586366004611ce3565b610dd7565b348015610596575f80fd5b506103226105a5366004611cff565b610e14565b3480156105b5575f80fd5b506103226105c4366004611c3d565b610e38565b3480156105d4575f80fd5b50610322610f1f565b3480156105e8575f80fd5b5061024b6105f7366004611c3d565b60046020525f908152604090205460ff1681565b5f610617338484610f81565b5060015b92915050565b5f61062e6009600a611e0a565b61063f9066017e9d8602b400611e18565b905090565b5f6106508484846110a4565b6106a1843361069c85604051806060016040528060288152602001611fa8602891396001600160a01b038a165f908152600260209081526040808320338452909152902054919061180d565b610f81565b5060019392505050565b5f546001600160a01b031633146106dd5760405162461bcd60e51b81526004016106d490611e2f565b60405180910390fd5b6001600160a01b03165f908152600460205260409020805460ff19166001179055565b601a54600160a01b900460ff16806107215750601a54600160a81b900460ff165b610729575f80fd5b60055460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018390529083169063a9059cbb906044016020604051808303815f875af1158015610779573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061079d9190611e64565b505050565b5f546001600160a01b031633146107cb5760405162461bcd60e51b81526004016106d490611e2f565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b0316331461083c5760405162461bcd60e51b81526004016106d490611e2f565b6108486009600a611e0a565b6108599066017e9d8602b400611e18565b6015556108686009600a611e0a565b6108799066017e9d8602b400611e18565b6016557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6108a96009600a611e0a565b6108ba9066017e9d8602b400611e18565b60405190815260200160405180910390a1565b6005546001600160a01b0316336001600160a01b0316146108ec575f80fd5b601c8054911515620100000262ff000019909216919091179055565b6005546001600160a01b0316336001600160a01b031614610927575f80fd5b6001600160a01b03919091165f908152600360205260409020805460ff1916911515919091179055565b5f546001600160a01b0316331461097a5760405162461bcd60e51b81526004016106d490611e2f565b601a54600160a81b900460ff16156109d45760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016106d4565b601980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155610a20903090610a0f6009600a611e0a565b61069c9066017e9d8602b400611e18565b60195f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a70573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a949190611e7f565b6001600160a01b031663c9c653963060195f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610af3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b179190611e7f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015610b61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b859190611e7f565b601a80546001600160a01b039283166001600160a01b0319909116811782555f908152600460209081526040808320805460ff199081166001908117909255945486168452600390925290912080549092161790556019541663f305d7194730610c03816001600160a01b03165f9081526001602052604090205490565b5f80610c165f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610c7c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ca19190611e9a565b5050601a5460195460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610cf6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d1a9190611e64565b50601c805461ff001916610100179055601a805460ff60a81b1916600160a81b17905543600655565b6005546001600160a01b0316336001600160a01b031614610d62575f80fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b5f6106173384846110a4565b5f546001600160a01b03163314610db95760405162461bcd60e51b81526004016106d490611e2f565b601a8054911515600160a01b0260ff60a01b19909216919091179055565b6005546001600160a01b0316336001600160a01b031614610df6575f80fd5b601c80549215156101000261ff001990931692909217909155601855565b6005546001600160a01b0316336001600160a01b031614610e33575f80fd5b601b55565b5f546001600160a01b03163314610e615760405162461bcd60e51b81526004016106d490611e2f565b6001600160a01b038116610ec65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106d4565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b601a54600160a01b900460ff1680610f405750601a54600160a81b900460ff165b610f48575f80fd5b6005546040516001600160a01b03909116904780156108fc02915f818181858888f19350505050158015610f7e573d5f803e3d5ffd5b50565b6001600160a01b038316610fe35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106d4565b6001600160a01b0382166110445760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106d4565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111085760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106d4565b6001600160a01b03821661116a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106d4565b5f81116111cb5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106d4565b5f80546001600160a01b038581169116148015906111f657505f546001600160a01b03848116911614155b156116d05761123b6103e8611235600e546012541161122a57600d54601254116112225760075461122e565b60085461122e565b600b545b8590611845565b906118ca565b6001600160a01b0385165f9081526004602052604090205490915060ff16801561127357506019546001600160a01b03848116911614155b801561129757506001600160a01b0383165f9081526003602052604090205460ff16155b1561139e576015548211156112ee5760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016106d4565b60165482611310856001600160a01b03165f9081526001602052604090205490565b61131a9190611ec5565b11156113685760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016106d4565b4360065460036113789190611ec5565b111561138957823b15611389575f80fd5b60128054905f61139883611ed8565b91905055505b6001600160a01b0383165f9081526004602052604090205460ff161580156113de57506001600160a01b0383165f9081526003602052604090205460ff16155b1561145d5760165482611405856001600160a01b03165f9081526001602052604090205490565b61140f9190611ec5565b111561145d5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016106d4565b6001600160a01b0383165f9081526004602052604090205460ff16801561148d57506001600160a01b0384163014155b156114ce576114cb6103e8611235601054601254116114c157600f54601254116114b95760095461122e565b600a5461122e565b600c548590611845565b90505b6001600160a01b0384165f9081526004602052604090205460ff1615801561150e57506001600160a01b0383165f9081526004602052604090205460ff16155b801561152357506001600160a01b0384163014155b1561152b57505f5b305f90815260016020526040902054601c5462010000900460ff1680156115555750601c5460ff16155b801561157857506001600160a01b0384165f9081526004602052604090205460ff165b801561158b5750601c54610100900460ff165b8015611598575060175481115b80156115a75750601154601254115b1561164b576014544311156115bb575f6013555b601b54601354106116005760405162461bcd60e51b815260206004820152600f60248201526e10d04818985b185b98d9481cd95b1b608a1b60448201526064016106d4565b61161d611618846116138460185461190b565b61190b565b61191f565b47801561162d5761162d47611a86565b60138054905f61163c83611ed8565b909155505043601455506116ce565b601c5460ff1615801561167557506001600160a01b0384165f9081526004602052604090205460ff165b80156116885750601c54610100900460ff165b8015611695575060175481115b80156116a45750601154601254115b156116ce576116bc611618846116138460185461190b565b4780156116cc576116cc47611a86565b505b505b801561174857305f908152600160205260409020546116ef9082611ac1565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061173f9085815260200190565b60405180910390a35b6001600160a01b0384165f9081526001602052604090205461176a9083611b1f565b6001600160a01b0385165f908152600160205260409020556117ad61178f8383611b1f565b6001600160a01b0385165f9081526001602052604090205490611ac1565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6117f68585611b1f565b60405190815260200160405180910390a350505050565b5f81848411156118305760405162461bcd60e51b81526004016106d49190611b8c565b505f61183c8486611ef0565b95945050505050565b5f825f0361185457505f61061b565b5f61185f8385611e18565b90508261186c8583611f03565b146118c35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106d4565b9392505050565b5f6118c383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611b60565b5f81831161191957826118c3565b50919050565b601c805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061195f5761195f611f22565b6001600160a01b03928316602091820292909201810191909152601954604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156119b6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119da9190611e7f565b816001815181106119ed576119ed611f22565b6001600160a01b039283166020918202929092010152601954611a139130911684610f81565b60195460405163791ac94760e01b81526001600160a01b039091169063791ac94790611a4b9085905f90869030904290600401611f36565b5f604051808303815f87803b158015611a62575f80fd5b505af1158015611a74573d5f803e3d5ffd5b5050601c805460ff1916905550505050565b6005546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015611abd573d5f803e3d5ffd5b5050565b5f80611acd8385611ec5565b9050838110156118c35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106d4565b5f6118c383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061180d565b5f8183611b805760405162461bcd60e51b81526004016106d49190611b8c565b505f61183c8486611f03565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114610f7e575f80fd5b5f8060408385031215611be6575f80fd5b8235611bf181611bc1565b946020939093013593505050565b5f805f60608486031215611c11575f80fd5b8335611c1c81611bc1565b92506020840135611c2c81611bc1565b929592945050506040919091013590565b5f60208284031215611c4d575f80fd5b81356118c381611bc1565b8015158114610f7e575f80fd5b5f60208284031215611c75575f80fd5b81356118c381611c58565b5f8060408385031215611c91575f80fd5b8235611c9c81611bc1565b91506020830135611cac81611c58565b809150509250929050565b5f8060408385031215611cc8575f80fd5b8235611cd381611bc1565b91506020830135611cac81611bc1565b5f8060408385031215611cf4575f80fd5b8235611bf181611c58565b5f60208284031215611d0f575f80fd5b5035919050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611d6457815f1904821115611d4a57611d4a611d16565b80851615611d5757918102915b93841c9390800290611d2f565b509250929050565b5f82611d7a5750600161061b565b81611d8657505f61061b565b8160018114611d9c5760028114611da657611dc2565b600191505061061b565b60ff841115611db757611db7611d16565b50506001821b61061b565b5060208310610133831016604e8410600b8410161715611de5575081810a61061b565b611def8383611d2a565b805f1904821115611e0257611e02611d16565b029392505050565b5f6118c360ff841683611d6c565b808202811582820484141761061b5761061b611d16565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215611e74575f80fd5b81516118c381611c58565b5f60208284031215611e8f575f80fd5b81516118c381611bc1565b5f805f60608486031215611eac575f80fd5b8351925060208401519150604084015190509250925092565b8082018082111561061b5761061b611d16565b5f60018201611ee957611ee9611d16565b5060010190565b8181038181111561061b5761061b611d16565b5f82611f1d57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b81811015611f865784516001600160a01b031683529383019391830191600101611f61565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a57c121af672a7691d4d73ab86203f85cc440746b309578d887eacfd5e8403ea64736f6c63430008190033

Deployed Bytecode Sourcemap

3916:10281:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6212:83;;;;;;;;;;-1:-1:-1;6282:5:0;;;;;;;;;;;;-1:-1:-1;;;6282:5:0;;;;6212:83;;;;;;;:::i;:::-;;;;;;;;7045:161;;;;;;;;;;-1:-1:-1;7045:161:0;;;;;:::i;:::-;;:::i;:::-;;;1058:14:1;;1051:22;1033:41;;1021:2;1006:18;7045:161:0;893:187:1;5285:58:0;;;;;;;;;;;;;;;;;;;1231:25:1;;;1219:2;1204:18;5285:58:0;1085:177:1;6489:95:0;;;;;;;;;;;;;:::i;7214:313::-;;;;;;;;;;-1:-1:-1;7214:313:0;;;;;:::i;:::-;;:::i;6398:83::-;;;;;;;;;;-1:-1:-1;6398:83:0;;4890:1;1870:36:1;;1858:2;1843:18;6398:83:0;1728:184:1;5401:28:0;;;;;;;;;;-1:-1:-1;5401:28:0;;;;-1:-1:-1;;;;;5401:28:0;;;;;;-1:-1:-1;;;;;2081:32:1;;;2063:51;;2051:2;2036:18;5401:28:0;1917:203:1;7878:96:0;;;;;;;;;;-1:-1:-1;7878:96:0;;;;;:::i;:::-;;:::i;:::-;;12719:185;;;;;;;;;;-1:-1:-1;12719:185:0;;;;;:::i;:::-;;:::i;5506:21::-;;;;;;;;;;;;;;;;6592:119;;;;;;;;;;-1:-1:-1;6592:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6685:18:0;6658:7;6685:18;;;:9;:18;;;;;;;6592:119;2747:148;;;;;;;;;;;;;:::i;13070:159::-;;;;;;;;;;;;;:::i;12430:125::-;;;;;;;;;;-1:-1:-1;12430:125:0;;;;;:::i;:::-;;:::i;5607:27::-;;;;;;;;;;-1:-1:-1;5607:27:0;;;;;;;;;;;5081:61;;;;;;;;;;;;;;;;12270:152;;;;;;;;;;-1:-1:-1;12270:152:0;;;;;:::i;:::-;;:::i;13337:820::-;;;;;;;;;;;;;:::i;2533:79::-;;;;;;;;;;-1:-1:-1;2571:7:0;2598:6;-1:-1:-1;;;;;2598:6:0;2533:79;;5149:61;;;;;;;;;;;;;;;;12912:150;;;;;;;;;;-1:-1:-1;12912:150:0;;;;;:::i;:::-;;:::i;6303:87::-;;;;;;;;;;-1:-1:-1;6375:7:0;;;;;;;;;;;;-1:-1:-1;;;6375:7:0;;;;6303:87;;6719:167;;;;;;;;;;-1:-1:-1;6719:167:0;;;;;:::i;:::-;;:::i;5217:61::-;;;;;;;;;;;;;;;;5436:32;;;;;;;;;;-1:-1:-1;5436:32:0;;;;-1:-1:-1;;;5436:32:0;;;;;;11859:96;;;;;;;;;;-1:-1:-1;11859:96:0;;;;;:::i;:::-;;:::i;6894:143::-;;;;;;;;;;-1:-1:-1;6894:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;7002:18:0;;;6975:7;7002:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6894:143;11963:177;;;;;;;;;;-1:-1:-1;11963:177:0;;;;;:::i;:::-;;:::i;12148:114::-;;;;;;;;;;-1:-1:-1;12148:114:0;;;;;:::i;:::-;;:::i;2903:244::-;;;;;;;;;;-1:-1:-1;2903:244:0;;;;;:::i;:::-;;:::i;12563:148::-;;;;;;;;;;;;;:::i;4184:43::-;;;;;;;;;;-1:-1:-1;4184:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;7045:161;7120:4;7137:39;368:10;7160:7;7169:6;7137:8;:39::i;:::-;-1:-1:-1;7194:4:0;7045:161;;;;;:::o;6489:95::-;6542:7;4951:13;4890:1;4951:2;:13;:::i;:::-;4933:31;;:15;:31;:::i;:::-;6562:14;;6489:95;:::o;7214:313::-;7312:4;7329:36;7339:6;7347:9;7358:6;7329:9;:36::i;:::-;7376:121;7385:6;368:10;7407:89;7445:6;7407:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7407:19:0;;;;;;:11;:19;;;;;;;;368:10;7407:33;;;;;;;;;;:37;:89::i;:::-;7376:8;:121::i;:::-;-1:-1:-1;7515:4:0;7214:313;;;;;:::o;7878:96::-;2660:6;;-1:-1:-1;;;;;2660:6:0;368:10;2660:22;2652:67;;;;-1:-1:-1;;;2652:67:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;7943:16:0::1;;::::0;;;:10:::1;:16;::::0;;;;:23;;-1:-1:-1;;7943:23:0::1;7962:4;7943:23;::::0;;7878:96::o;12719:185::-;12809:12;;-1:-1:-1;;;12809:12:0;;;;;:27;;-1:-1:-1;12825:11:0;;-1:-1:-1;;;12825:11:0;;;;12809:27;12801:36;;;;;;12876:10;;12848:48;;-1:-1:-1;;;12848:48:0;;-1:-1:-1;;;;;12876:10:0;;;12848:48;;;6250:51:1;6317:18;;;6310:34;;;12848:27:0;;;;;;6223:18:1;;12848:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12719:185;;:::o;2747:148::-;2660:6;;-1:-1:-1;;;;;2660:6:0;368:10;2660:22;2652:67;;;;-1:-1:-1;;;2652:67:0;;;;;;;:::i;:::-;2854:1:::1;2838:6:::0;;2817:40:::1;::::0;-1:-1:-1;;;;;2838:6:0;;::::1;::::0;2817:40:::1;::::0;2854:1;;2817:40:::1;2885:1;2868:19:::0;;-1:-1:-1;;;;;;2868:19:0::1;::::0;;2747:148::o;13070:159::-;2660:6;;-1:-1:-1;;;;;2660:6:0;368:10;2660:22;2652:67;;;;-1:-1:-1;;;2652:67:0;;;;;;;:::i;:::-;4951:13:::1;4890:1;4951:2;:13;:::i;:::-;4933:31;::::0;:15:::1;:31;:::i;:::-;13123:12;:22:::0;4951:13:::1;4890:1;4951:2;:13;:::i;:::-;4933:31;::::0;:15:::1;:31;:::i;:::-;13156:14;:22:::0;13194:27:::1;4951:13;4890:1;4951:2;:13;:::i;:::-;4933:31;::::0;:15:::1;:31;:::i;:::-;13194:27;::::0;1231:25:1;;;1219:2;1204:18;13194:27:0::1;;;;;;;13070:159::o:0;12430:125::-;12507:10;;-1:-1:-1;;;;;12507:10:0;368;-1:-1:-1;;;;;12491:26:0;;12483:35;;;;;;12529:8;:18;;;;;;;-1:-1:-1;;12529:18:0;;;;;;;;;12430:125::o;12270:152::-;12360:10;;-1:-1:-1;;;;;12360:10:0;368;-1:-1:-1;;;;;12344:26:0;;12336:35;;;;;;-1:-1:-1;;;;;12382:23:0;;;;;;;;:17;:23;;;;;:32;;-1:-1:-1;;12382:32:0;;;;;;;;;;12270:152::o;13337:820::-;2660:6;;-1:-1:-1;;;;;2660:6:0;368:10;2660:22;2652:67;;;;-1:-1:-1;;;2652:67:0;;;;;;;:::i;:::-;13403:11:::1;::::0;-1:-1:-1;;;13403:11:0;::::1;;;13402:12;13394:47;;;::::0;-1:-1:-1;;;13394:47:0;;6807:2:1;13394:47:0::1;::::0;::::1;6789:21:1::0;6846:2;6826:18;;;6819:30;6885:25;6865:18;;;6858:53;6928:18;;13394:47:0::1;6605:347:1::0;13394:47:0::1;13452:15;:80:::0;;-1:-1:-1;;;;;;13452:80:0::1;13489:42;13452:80:::0;;::::1;::::0;;;13543:58:::1;::::0;13560:4:::1;::::0;4951:13:::1;4890:1;4951:2;:13;:::i;:::-;4933:31;::::0;:15:::1;:31;:::i;13543:58::-;13646:15;;;;;;;;;-1:-1:-1::0;;;;;13646:15:0::1;-1:-1:-1::0;;;;;13646:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13628:55:0::1;;13692:4;13699:15;;;;;;;;;-1:-1:-1::0;;;;;13699:15:0::1;-1:-1:-1::0;;;;;13699:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13628:94;::::0;-1:-1:-1;;;;;;13628:94:0::1;::::0;;;;;;-1:-1:-1;;;;;7443:15:1;;;13628:94:0::1;::::0;::::1;7425:34:1::0;7495:15;;7475:18;;;7468:43;7360:18;;13628:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13612:13;:110:::0;;-1:-1:-1;;;;;13612:110:0;;::::1;-1:-1:-1::0;;;;;;13612:110:0;;::::1;::::0;::::1;::::0;;:13:::1;13733:34:::0;;;:10:::1;:34;::::0;;;;;;;:41;;-1:-1:-1;;13733:41:0;;::::1;13612:110:::0;13733:41;;::::1;::::0;;;13811:13;;;::::1;13785:41:::0;;:17:::1;:41:::0;;;;;;:48;;;;::::1;;::::0;;13844:15:::1;::::0;::::1;:31;13883:21;13914:4;13920:24;13914:4:::0;-1:-1:-1;;;;;6685:18:0;6658:7;6685:18;;;:9;:18;;;;;;;6592:119;13920:24:::1;13945:1;13947::::0;13949:7:::1;2571::::0;2598:6;-1:-1:-1;;;;;2598:6:0;;2533:79;13949:7:::1;13844:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;13844:129:0;;;-1:-1:-1;;;;;7881:15:1;;;13844:129:0::1;::::0;::::1;7863:34:1::0;7913:18;;;7906:34;;;;7956:18;;;7949:34;;;;7999:18;;;7992:34;8063:15;;;8042:19;;;8035:44;13957:15:0::1;8095:19:1::0;;;8088:35;7797:19;;13844:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;13991:13:0::1;::::0;14022:15:::1;::::0;13984:71:::1;::::0;-1:-1:-1;;;13984:71:0;;-1:-1:-1;;;;;14022:15:0;;::::1;13984:71;::::0;::::1;6250:51:1::0;-1:-1:-1;;6317:18:1;;;6310:34;13991:13:0;::::1;::::0;-1:-1:-1;13984:29:0::1;::::0;6223:18:1;;13984:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;14066:11:0::1;:18:::0;;-1:-1:-1;;14066:18:0::1;;;::::0;;14095:11:::1;:18:::0;;-1:-1:-1;;;;14095:18:0::1;-1:-1:-1::0;;;14095:18:0::1;::::0;;14137:12:::1;14124:10;:25:::0;13337:820::o;12912:150::-;12998:10;;-1:-1:-1;;;;;12998:10:0;368;-1:-1:-1;;;;;12982:26:0;;12974:35;;;;;;13020:10;:34;;-1:-1:-1;;;;;;13020:34:0;-1:-1:-1;;;;;13020:34:0;;;;;;;;;;12912:150::o;6719:167::-;6797:4;6814:42;368:10;6838:9;6849:6;6814:9;:42::i;11859:96::-;2660:6;;-1:-1:-1;;;;;2660:6:0;368:10;2660:22;2652:67;;;;-1:-1:-1;;;2652:67:0;;;;;;;:::i;:::-;11925:12:::1;:22:::0;;;::::1;;-1:-1:-1::0;;;11925:22:0::1;-1:-1:-1::0;;;;11925:22:0;;::::1;::::0;;;::::1;::::0;;11859:96::o;11963:177::-;12058:10;;-1:-1:-1;;;;;12058:10:0;368;-1:-1:-1;;;;;12042:26:0;;12034:35;;;;;;12080:11;:21;;;;;;;-1:-1:-1;;12080:21:0;;;;;;;;;;12112:11;:20;11963:177::o;12148:114::-;12221:10;;-1:-1:-1;;;;;12221:10:0;368;-1:-1:-1;;;;;12205:26:0;;12197:35;;;;;;12243:2;:11;12148:114::o;2903:244::-;2660:6;;-1:-1:-1;;;;;2660:6:0;368:10;2660:22;2652:67;;;;-1:-1:-1;;;2652:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2992:22:0;::::1;2984:73;;;::::0;-1:-1:-1;;;2984:73:0;;8926:2:1;2984:73:0::1;::::0;::::1;8908:21:1::0;8965:2;8945:18;;;8938:30;9004:34;8984:18;;;8977:62;-1:-1:-1;;;9055:18:1;;;9048:36;9101:19;;2984:73:0::1;8724:402:1::0;2984:73:0::1;3094:6;::::0;;3073:38:::1;::::0;-1:-1:-1;;;;;3073:38:0;;::::1;::::0;3094:6;::::1;::::0;3073:38:::1;::::0;::::1;3122:6;:17:::0;;-1:-1:-1;;;;;;3122:17:0::1;-1:-1:-1::0;;;;;3122:17:0;;;::::1;::::0;;;::::1;::::0;;2903:244::o;12563:148::-;12613:12;;-1:-1:-1;;;12613:12:0;;;;;:27;;-1:-1:-1;12629:11:0;;-1:-1:-1;;;12629:11:0;;;;12613:27;12605:36;;;;;;12660:10;;12652:51;;-1:-1:-1;;;;;12660:10:0;;;;12681:21;12652:51;;;;;12660:10;12652:51;12660:10;12652:51;12681:21;12660:10;12652:51;;;;;;;;;;;;;;;;;;;;;12563:148::o;7535:335::-;-1:-1:-1;;;;;7628:19:0;;7620:68;;;;-1:-1:-1;;;7620:68:0;;9333:2:1;7620:68:0;;;9315:21:1;9372:2;9352:18;;;9345:30;9411:34;9391:18;;;9384:62;-1:-1:-1;;;9462:18:1;;;9455:34;9506:19;;7620:68:0;9131:400:1;7620:68:0;-1:-1:-1;;;;;7707:21:0;;7699:68;;;;-1:-1:-1;;;7699:68:0;;9738:2:1;7699:68:0;;;9720:21:1;9777:2;9757:18;;;9750:30;9816:34;9796:18;;;9789:62;-1:-1:-1;;;9867:18:1;;;9860:32;9909:19;;7699:68:0;9536:398:1;7699:68:0;-1:-1:-1;;;;;7778:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7830:32;;1231:25:1;;;7830:32:0;;1204:18:1;7830:32:0;;;;;;;7535:335;;;:::o;7982:3067::-;-1:-1:-1;;;;;8070:18:0;;8062:68;;;;-1:-1:-1;;;8062:68:0;;10141:2:1;8062:68:0;;;10123:21:1;10180:2;10160:18;;;10153:30;10219:34;10199:18;;;10192:62;-1:-1:-1;;;10270:18:1;;;10263:35;10315:19;;8062:68:0;9939:401:1;8062:68:0;-1:-1:-1;;;;;8149:16:0;;8141:64;;;;-1:-1:-1;;;8141:64:0;;10547:2:1;8141:64:0;;;10529:21:1;10586:2;10566:18;;;10559:30;10625:34;10605:18;;;10598:62;-1:-1:-1;;;10676:18:1;;;10669:33;10719:19;;8141:64:0;10345:399:1;8141:64:0;8233:1;8224:6;:10;8216:64;;;;-1:-1:-1;;;8216:64:0;;10951:2:1;8216:64:0;;;10933:21:1;10990:2;10970:18;;;10963:30;11029:34;11009:18;;;11002:62;-1:-1:-1;;;11080:18:1;;;11073:39;11129:19;;8216:64:0;10749:405:1;8216:64:0;8291:17;2598:6;;-1:-1:-1;;;;;8327:15:0;;;2598:6;;8327:15;;;;:32;;-1:-1:-1;2571:7:0;2598:6;-1:-1:-1;;;;;8346:13:0;;;2598:6;;8346:13;;8327:32;8323:2370;;;8388:121;8504:4;8388:111;8411:15;;8400:9;;:26;8399:99;;8456:12;;8445:9;;:23;8444:53;;8483:14;;8399:99;;8444:53;8471:10;;8399:99;;;8429:12;;8399:99;8388:6;;:10;:111::i;:::-;:115;;:121::i;:::-;-1:-1:-1;;;;;8530:16:0;;;;;;:10;:16;;;;;;8376:133;;-1:-1:-1;8530:16:0;;:50;;;;-1:-1:-1;8564:15:0;;-1:-1:-1;;;;;8550:30:0;;;8564:15;;8550:30;;8530:50;:77;;;;-1:-1:-1;;;;;;8586:21:0;;;;;;:17;:21;;;;;;;;8584:23;8530:77;8526:430;;;8647:12;;8637:6;:22;;8629:60;;;;-1:-1:-1;;;8629:60:0;;11361:2:1;8629:60:0;;;11343:21:1;11400:2;11380:18;;;11373:30;11439:27;11419:18;;;11412:55;11484:18;;8629:60:0;11159:349:1;8629:60:0;8742:14;;8732:6;8716:13;8726:2;-1:-1:-1;;;;;6685:18:0;6658:7;6685:18;;;:9;:18;;;;;;;6592:119;8716:13;:22;;;;:::i;:::-;:40;;8708:79;;;;-1:-1:-1;;;8708:79:0;;11845:2:1;8708:79:0;;;11827:21:1;11884:2;11864:18;;;11857:30;11923:28;11903:18;;;11896:56;11969:18;;8708:79:0;11643:350:1;8708:79:0;8830:12;8812:10;;8825:1;8812:14;;;;:::i;:::-;:30;8808:103;;;11296:20;;11344:8;8867:24;;;;;;8929:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8526:430;-1:-1:-1;;;;;8977:14:0;;;;;;:10;:14;;;;;;;;8976:15;:42;;;;-1:-1:-1;;;;;;8997:21:0;;;;;;:17;:21;;;;;;;;8995:23;8976:42;8972:162;;;9073:14;;9063:6;9047:13;9057:2;-1:-1:-1;;;;;6685:18:0;6658:7;6685:18;;;:9;:18;;;;;;;6592:119;9047:13;:22;;;;:::i;:::-;:40;;9039:79;;;;-1:-1:-1;;;9039:79:0;;11845:2:1;9039:79:0;;;11827:21:1;11884:2;11864:18;;;11857:30;11923:28;11903:18;;;11896:56;11969:18;;9039:79:0;11643:350:1;9039:79:0;-1:-1:-1;;;;;9153:14:0;;;;;;:10;:14;;;;;;;;:38;;;;-1:-1:-1;;;;;;9171:20:0;;9186:4;9171:20;;9153:38;9150:216;;;9224:126;9345:4;9224:116;9247:16;;9236:9;;:27;9235:104;;9294:13;;9283:9;;:24;9282:56;;9323:15;;9235:104;;9282:56;9310:11;;9235:104;;;9266:13;;9224:6;;:10;:116::i;:126::-;9212:138;;9150:216;-1:-1:-1;;;;;9380:16:0;;;;;;:10;:16;;;;;;;;9379:17;:36;;;;-1:-1:-1;;;;;;9401:14:0;;;;;;:10;:14;;;;;;;;9400:15;9379:36;:60;;;;-1:-1:-1;;;;;;9419:20:0;;9434:4;9419:20;;9379:60;9375:115;;;-1:-1:-1;9473:1:0;9375:115;9555:4;9506:28;6685:18;;;:9;:18;;;;;;9580:8;;;;;;;:19;;;;-1:-1:-1;9593:6:0;;;;9592:7;9580:19;:37;;;;-1:-1:-1;;;;;;9603:14:0;;;;;;:10;:14;;;;;;;;9580:37;:52;;;;-1:-1:-1;9621:11:0;;;;;;;9580:52;:94;;;;;9657:17;;9636:20;:38;9580:94;:126;;;;;9688:18;;9678:9;;:28;9580:126;9576:1106;;;9746:13;;9731:12;:28;9727:90;;;9796:1;9784:9;:13;9727:90;9855:2;;9843:9;;:14;9835:42;;;;-1:-1:-1;;;9835:42:0;;12340:2:1;9835:42:0;;;12322:21:1;12379:2;12359:18;;;12352:30;-1:-1:-1;;;12398:18:1;;;12391:45;12453:18;;9835:42:0;12138:339:1;9835:42:0;9896:67;9913:49;9917:6;9924:37;9928:20;9949:11;;9924:3;:37::i;:::-;9913:3;:49::i;:::-;9896:16;:67::i;:::-;10011:21;10054:22;;10051:105;;10101:35;10114:21;10101:12;:35::i;:::-;10174:9;:11;;;:9;:11;;;:::i;:::-;;;;-1:-1:-1;;10220:12:0;10204:13;:28;-1:-1:-1;9576:1106:0;;;10273:6;;;;10272:7;:25;;;;-1:-1:-1;;;;;;10283:14:0;;;;;;:10;:14;;;;;;;;10272:25;:40;;;;-1:-1:-1;10301:11:0;;;;;;;10272:40;:82;;;;;10337:17;;10316:20;:38;10272:82;:114;;;;;10368:18;;10358:9;;:28;10272:114;10269:413;;;10407:67;10424:49;10428:6;10435:37;10439:20;10460:11;;10435:3;:37::i;10407:67::-;10522:21;10565:22;;10562:105;;10612:35;10625:21;10612:12;:35::i;:::-;10388:294;10269:413;8361:2332;8323:2370;10708:11;;10705:161;;10776:4;10758:24;;;;:9;:24;;;;;;:39;;10787:9;10758:28;:39::i;:::-;10751:4;10733:24;;;;:9;:24;;;;;;;:64;;;;10815:39;;-1:-1:-1;;;;;10815:39:0;;;;;;;10844:9;1231:25:1;;1219:2;1204:18;;1085:177;10815:39:0;;;;;;;;10705:161;-1:-1:-1;;;;;10892:15:0;;;;;;:9;:15;;;;;;:27;;10912:6;10892:19;:27::i;:::-;-1:-1:-1;;;;;10876:15:0;;;;;;:9;:15;;;;;:43;10944:40;10962:21;:6;10973:9;10962:10;:21::i;:::-;-1:-1:-1;;;;;10944:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;10930:13:0;;;;;;;:9;:13;;;;;:54;;;;11000:41;;;11019:21;:6;11030:9;11019:10;:21::i;:::-;11000:41;;1231:25:1;;;1219:2;1204:18;11000:41:0;;;;;;;8051:2998;7982:3067;;;:::o;1425:190::-;1511:7;1547:12;1539:6;;;;1531:29;;;;-1:-1:-1;;;1531:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1571:9:0;1583:5;1587:1;1583;:5;:::i;:::-;1571:17;1425:190;-1:-1:-1;;;;;1425:190:0:o;1623:246::-;1681:7;1705:1;1710;1705:6;1701:47;;-1:-1:-1;1735:1:0;1728:8;;1701:47;1758:9;1770:5;1774:1;1770;:5;:::i;:::-;1758:17;-1:-1:-1;1803:1:0;1794:5;1798:1;1758:17;1794:5;:::i;:::-;:10;1786:56;;;;-1:-1:-1;;;1786:56:0;;13039:2:1;1786:56:0;;;13021:21:1;13078:2;13058:18;;;13051:30;13117:34;13097:18;;;13090:62;-1:-1:-1;;;13168:18:1;;;13161:31;13209:19;;1786:56:0;12837:397:1;1786:56:0;1860:1;1623:246;-1:-1:-1;;;1623:246:0:o;1877:132::-;1935:7;1962:39;1966:1;1969;1962:39;;;;;;;;;;;;;;;;;:3;:39::i;11059:98::-;11116:7;11143:1;11141;:3;11140:9;;11148:1;11140:9;;;-1:-1:-1;11146:1:0;11059:98;-1:-1:-1;11059:98:0:o;11368:483::-;5725:6;:13;;-1:-1:-1;;5725:13:0;5734:4;5725:13;;;11470:16:::1;::::0;;11484:1:::1;11470:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11470:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11470:16:0::1;11446:40;;11515:4;11497;11502:1;11497:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11497:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11541:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11541:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11497:7;;11541:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11531:4;11536:1;11531:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11531:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11606:15:::1;::::0;11574:62:::1;::::0;11591:4:::1;::::0;11606:15:::1;11624:11:::0;11574:8:::1;:62::i;:::-;11647:15;::::0;:196:::1;::::0;-1:-1:-1;;;11647:196:0;;-1:-1:-1;;;;;11647:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11728:11;;11647:15:::1;::::0;11770:4;;11797::::1;::::0;11817:15:::1;::::0;11647:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5761:6:0;:14;;-1:-1:-1;;5761:14:0;;;-1:-1:-1;;;;11368:483:0:o;13237:92::-;13294:10;;:27;;-1:-1:-1;;;;;13294:10:0;;;;:27;;;;;13314:6;;13294:10;:27;:10;:27;13314:6;13294:10;:27;;;;;;;;;;;;;;;;;;;;;13237:92;:::o;1094:179::-;1152:7;;1184:5;1188:1;1184;:5;:::i;:::-;1172:17;;1213:1;1208;:6;;1200:46;;;;-1:-1:-1;;;1200:46:0;;14690:2:1;1200:46:0;;;14672:21:1;14729:2;14709:18;;;14702:30;14768:29;14748:18;;;14741:57;14815:18;;1200:46:0;14488:351:1;1281:136:0;1339:7;1366:43;1370:1;1373;1366:43;;;;;;;;;;;;;;;;;:3;:43::i;2017:189::-;2103:7;2138:12;2131:5;2123:28;;;;-1:-1:-1;;;2123:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2162:9:0;2174:5;2178:1;2174;:5;:::i;14:418:1:-;163:2;152:9;145:21;126:4;195:6;189:13;238:6;233:2;222:9;218:18;211:34;297:6;292:2;284:6;280:15;275:2;264:9;260:18;254:50;353:1;348:2;339:6;328:9;324:22;320:31;313:42;423:2;416;412:7;407:2;399:6;395:15;391:29;380:9;376:45;372:54;364:62;;;14:418;;;;:::o;437:131::-;-1:-1:-1;;;;;512:31:1;;502:42;;492:70;;558:1;555;548:12;573:315;641:6;649;702:2;690:9;681:7;677:23;673:32;670:52;;;718:1;715;708:12;670:52;757:9;744:23;776:31;801:5;776:31;:::i;:::-;826:5;878:2;863:18;;;;850:32;;-1:-1:-1;;;573:315:1:o;1267:456::-;1344:6;1352;1360;1413:2;1401:9;1392:7;1388:23;1384:32;1381:52;;;1429:1;1426;1419:12;1381:52;1468:9;1455:23;1487:31;1512:5;1487:31;:::i;:::-;1537:5;-1:-1:-1;1594:2:1;1579:18;;1566:32;1607:33;1566:32;1607:33;:::i;:::-;1267:456;;1659:7;;-1:-1:-1;;;1713:2:1;1698:18;;;;1685:32;;1267:456::o;2125:247::-;2184:6;2237:2;2225:9;2216:7;2212:23;2208:32;2205:52;;;2253:1;2250;2243:12;2205:52;2292:9;2279:23;2311:31;2336:5;2311:31;:::i;2377:118::-;2463:5;2456:13;2449:21;2442:5;2439:32;2429:60;;2485:1;2482;2475:12;2500:241;2556:6;2609:2;2597:9;2588:7;2584:23;2580:32;2577:52;;;2625:1;2622;2615:12;2577:52;2664:9;2651:23;2683:28;2705:5;2683:28;:::i;2746:382::-;2811:6;2819;2872:2;2860:9;2851:7;2847:23;2843:32;2840:52;;;2888:1;2885;2878:12;2840:52;2927:9;2914:23;2946:31;2971:5;2946:31;:::i;:::-;2996:5;-1:-1:-1;3053:2:1;3038:18;;3025:32;3066:30;3025:32;3066:30;:::i;:::-;3115:7;3105:17;;;2746:382;;;;;:::o;3133:388::-;3201:6;3209;3262:2;3250:9;3241:7;3237:23;3233:32;3230:52;;;3278:1;3275;3268:12;3230:52;3317:9;3304:23;3336:31;3361:5;3336:31;:::i;:::-;3386:5;-1:-1:-1;3443:2:1;3428:18;;3415:32;3456:33;3415:32;3456:33;:::i;3526:309::-;3591:6;3599;3652:2;3640:9;3631:7;3627:23;3623:32;3620:52;;;3668:1;3665;3658:12;3620:52;3707:9;3694:23;3726:28;3748:5;3726:28;:::i;3840:180::-;3899:6;3952:2;3940:9;3931:7;3927:23;3923:32;3920:52;;;3968:1;3965;3958:12;3920:52;-1:-1:-1;3991:23:1;;3840:180;-1:-1:-1;3840:180:1:o;4025:127::-;4086:10;4081:3;4077:20;4074:1;4067:31;4117:4;4114:1;4107:15;4141:4;4138:1;4131:15;4157:416;4246:1;4283:5;4246:1;4297:270;4318:7;4308:8;4305:21;4297:270;;;4377:4;4373:1;4369:6;4365:17;4359:4;4356:27;4353:53;;;4386:18;;:::i;:::-;4436:7;4426:8;4422:22;4419:55;;;4456:16;;;;4419:55;4535:22;;;;4495:15;;;;4297:270;;;4301:3;4157:416;;;;;:::o;4578:806::-;4627:5;4657:8;4647:80;;-1:-1:-1;4698:1:1;4712:5;;4647:80;4746:4;4736:76;;-1:-1:-1;4783:1:1;4797:5;;4736:76;4828:4;4846:1;4841:59;;;;4914:1;4909:130;;;;4821:218;;4841:59;4871:1;4862:10;;4885:5;;;4909:130;4946:3;4936:8;4933:17;4930:43;;;4953:18;;:::i;:::-;-1:-1:-1;;5009:1:1;4995:16;;5024:5;;4821:218;;5123:2;5113:8;5110:16;5104:3;5098:4;5095:13;5091:36;5085:2;5075:8;5072:16;5067:2;5061:4;5058:12;5054:35;5051:77;5048:159;;;-1:-1:-1;5160:19:1;;;5192:5;;5048:159;5239:34;5264:8;5258:4;5239:34;:::i;:::-;5309:6;5305:1;5301:6;5297:19;5288:7;5285:32;5282:58;;;5320:18;;:::i;:::-;5358:20;;4578:806;-1:-1:-1;;;4578:806:1:o;5389:140::-;5447:5;5476:47;5517:4;5507:8;5503:19;5497:4;5476:47;:::i;5534:168::-;5607:9;;;5638;;5655:15;;;5649:22;;5635:37;5625:71;;5676:18;;:::i;5707:356::-;5909:2;5891:21;;;5928:18;;;5921:30;5987:34;5982:2;5967:18;;5960:62;6054:2;6039:18;;5707:356::o;6355:245::-;6422:6;6475:2;6463:9;6454:7;6450:23;6446:32;6443:52;;;6491:1;6488;6481:12;6443:52;6523:9;6517:16;6542:28;6564:5;6542:28;:::i;6957:251::-;7027:6;7080:2;7068:9;7059:7;7055:23;7051:32;7048:52;;;7096:1;7093;7086:12;7048:52;7128:9;7122:16;7147:31;7172:5;7147:31;:::i;8134:306::-;8222:6;8230;8238;8291:2;8279:9;8270:7;8266:23;8262:32;8259:52;;;8307:1;8304;8297:12;8259:52;8336:9;8330:16;8320:26;;8386:2;8375:9;8371:18;8365:25;8355:35;;8430:2;8419:9;8415:18;8409:25;8399:35;;8134:306;;;;;:::o;11513:125::-;11578:9;;;11599:10;;;11596:36;;;11612:18;;:::i;11998:135::-;12037:3;12058:17;;;12055:43;;12078:18;;:::i;:::-;-1:-1:-1;12125:1:1;12114:13;;11998:135::o;12482:128::-;12549:9;;;12570:11;;;12567:37;;;12584:18;;:::i;12615:217::-;12655:1;12681;12671:132;;12725:10;12720:3;12716:20;12713:1;12706:31;12760:4;12757:1;12750:15;12788:4;12785:1;12778:15;12671:132;-1:-1:-1;12817:9:1;;12615:217::o;13371:127::-;13432:10;13427:3;13423:20;13420:1;13413:31;13463:4;13460:1;13453:15;13487:4;13484:1;13477:15;13503:980;13765:4;13813:3;13802:9;13798:19;13844:6;13833:9;13826:25;13870:2;13908:6;13903:2;13892:9;13888:18;13881:34;13951:3;13946:2;13935:9;13931:18;13924:31;13975:6;14010;14004:13;14041:6;14033;14026:22;14079:3;14068:9;14064:19;14057:26;;14118:2;14110:6;14106:15;14092:29;;14139:1;14149:195;14163:6;14160:1;14157:13;14149:195;;;14228:13;;-1:-1:-1;;;;;14224:39:1;14212:52;;14319:15;;;;14284:12;;;;14260:1;14178:9;14149:195;;;-1:-1:-1;;;;;;;14400:32:1;;;;14395:2;14380:18;;14373:60;-1:-1:-1;;;14464:3:1;14449:19;14442:35;14361:3;13503:980;-1:-1:-1;;;13503:980:1:o

Swarm Source

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