ETH Price: $2,392.49 (-0.54%)

Token

CRYPTOGIRLANNA (ANNA)
 

Overview

Max Total Supply

69,000,000 ANNA

Holders

71

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
ANNA

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-27
*/

/**
CryptoGirlAnna Coin is bringing you the best of crypto and onlyfans ;) 

https://t.me/CryptoAnnaCoin
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.13;

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

/**
 * Standard SafeMath, stripped down to just add/sub/mul/div
 */
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) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
}

/**
 * ERC20 standard interface.
 */
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);
}

abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(
            newOwner != address(0),
            "Ownable: new owner is the zero address"
        );
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

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

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

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

contract ANNA is IERC20, Ownable {
    using SafeMath for uint256;

    string private constant _name = "CRYPTOGIRLANNA";
    string private constant _symbol = "ANNA";
    uint8 private constant _decimals = 18;
    
    uint256 private _totalSupply = 69_000_000 * (10 ** _decimals);

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

    address private WETH;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    bool public antiBot = true;

    mapping (address => bool) private bots; 
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isTxLimitExempt;
    mapping (address => bool) public isDividendExempt;

    uint256 public launchedAt;
    address private lpWallet = DEAD;

    uint256 public buyFee = 6;
    uint256 public sellFee = 9;


    uint256 public toLiquidity = 20;
    uint256 public toDev = 80;

    uint256 private allocationSum = 100;

    IDEXRouter public router;
    address public pair;
    address public factory;
    address private tokenOwner;
    address public devWallet = payable(0xB9a481e6054938246b34a9567a55EDa65176B585);

    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public tradingOpen = false;

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    uint256 public maxTx = _totalSupply.div(50);
    uint256 public maxWallet = _totalSupply.div(50);
    uint256 public swapThreshold = _totalSupply.div(200);

    constructor () {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            
        WETH = router.WETH();
        
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        
        _allowances[address(this)][address(router)] = type(uint256).max;
        
        isFeeExempt[owner()] = true;
        isFeeExempt[devWallet] = true;             

        isTxLimitExempt[owner()] = true;
        isTxLimitExempt[pair] = true;
        isTxLimitExempt[DEAD] = true;    

        _balances[owner()] = _totalSupply;
    
        emit Transfer(address(0), owner(), _totalSupply);
    }

    receive() external payable { }

    function setBots(address[] memory bots_) external onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    //once enabled, cannot be reversed
    function openTrading() external onlyOwner {
        launchedAt = block.number;
        tradingOpen = true;
    }      

    function changeTotalFees(uint256 newBuyFee, uint256 newSellFee) external onlyOwner {

        buyFee = newBuyFee;
        sellFee = newSellFee;
    } 
    
    function changeFeeAllocation(uint256 newDevFee, uint256 newLpFee) external onlyOwner {
        toDev = newDevFee;
        toLiquidity = newLpFee;
    }

    function updateDevWallet (address newDevWallet) external onlyOwner {
        devWallet = newDevWallet;
    }

    function changeTxLimit(uint256 newLimit) external onlyOwner {
        maxTx = newLimit;
    }

    function changeWalletLimit(uint256 newLimit) external onlyOwner {
        maxWallet  = newLimit;
    }
    
    function changeIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function changeIsTxLimitExempt(address holder, bool exempt) external onlyOwner {      
        isTxLimitExempt[holder] = exempt;
    }

    function changeSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit) external onlyOwner {
        swapAndLiquifyEnabled  = enableSwapBack;
        swapThreshold = newSwapBackLimit;
    }

    function delBot(address notbot) external onlyOwner {
        bots[notbot] = false;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner(); }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    
    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transfer(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transfer(sender, recipient, amount);
    }

    function _transfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        if (sender!= owner() && recipient!= owner()) require(tradingOpen, "hold ur horses big guy."); //transfers disabled before tradingActive
        require(!bots[sender] && !bots[recipient]);

        if(inSwapAndLiquify){ return _basicTransfer(sender, recipient, amount); }

        require(amount <= maxTx || isTxLimitExempt[sender], "tx");

        if(!isTxLimitExempt[recipient] && antiBot)
        {
            require(_balances[recipient].add(amount) <= maxWallet, "wallet");
        }

        if(msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold){ swapBack(); }

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        
        uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(finalAmount);

        emit Transfer(sender, recipient, finalAmount);
        return true;
    }    

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }  
    
    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 feeApplicable = pair == recipient ? sellFee : buyFee;
        uint256 feeAmount = amount.mul(feeApplicable).div(100);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }
    
    function swapTokensForEth(uint256 tokenAmount) private {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        approve(address(this), tokenAmount);

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            lpWallet,
            block.timestamp
        );
    }

    function swapBack() internal lockTheSwap {
    
        uint256 tokenBalance = _balances[address(this)]; 
        uint256 tokensForLiquidity = tokenBalance.mul(toLiquidity).div(100).div(2);     
        uint256 amountToSwap = tokenBalance.sub(tokensForLiquidity);

        swapTokensForEth(amountToSwap);

        uint256 totalEthBalance = address(this).balance;
        uint256 ethForDev = totalEthBalance.mul(toDev).div(100);
        uint256 ethForLiquidity = totalEthBalance.mul(toLiquidity).div(100).div(2);
      
        if (totalEthBalance > 0){
            payable(devWallet).transfer(ethForDev);
        }
        
        if (tokensForLiquidity > 0){
            addLiquidity(tokensForLiquidity, ethForLiquidity);
        }
    }

    function manualSwapBack() external onlyOwner {
        swapBack();
    }

    function clearStuckEth() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        if(contractETHBalance > 0){          
            payable(address(devWallet)).transfer(contractETHBalance);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antiBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"spender","type":"address"}],"name":"approveMax","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":"buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newDevFee","type":"uint256"},{"internalType":"uint256","name":"newLpFee","type":"uint256"}],"name":"changeFeeAllocation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"changeTotalFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"toDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newDevWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126012600a62000594565b620000229063041cdb40620005a5565b6001819055600680546001600160a01b031990811661dead9081178355600780546001600160a81b031916600160a01b179055600d8054909216179055600e556009600f5560146010556050601155606460125560178054600162ffff0160a01b031916750100b9a481e6054938246b34a9567a55eda65176b585179055620000bc90603262000ec762000399602090811b91909117901c565b601855620000dc60326001546200039960201b62000ec71790919060201c565b601955620000fc60c86001546200039960201b62000ec71790919060201c565b601a553480156200010c57600080fd5b506200011833620003ec565b601380546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156200017d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a39190620005c7565b600580546001600160a01b0319166001600160a01b039283161790556013546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000202573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002289190620005c7565b6005546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af11580156200027a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a09190620005c7565b601480546001600160a01b0319166001600160a01b03928316178155306000908152600360209081526040808320601354861684528252808320600019905582548516835260098252808320805460ff199081166001908117909255601754871685528285208054821683179055845487168552600a845282852080548216831790559454861684528184208054861682179055600654861684528184208054909516811790945592548254851683526002825283832081905582549351908152929093169290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000674565b6000620003e383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200043c60201b60201c565b90505b92915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008183620004695760405162461bcd60e51b8152600401620004609190620005f9565b60405180910390fd5b50600062000478848662000651565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004d8578160001904821115620004bc57620004bc62000481565b80851615620004ca57918102915b93841c93908002906200049c565b509250929050565b600082620004f157506001620003e6565b816200050057506000620003e6565b8160018114620005195760028114620005245762000544565b6001915050620003e6565b60ff84111562000538576200053862000481565b50506001821b620003e6565b5060208310610133831016604e8410600b841016171562000569575081810a620003e6565b62000575838362000497565b80600019048211156200058c576200058c62000481565b029392505050565b6000620003e360ff841683620004e0565b6000816000190483118215151615620005c257620005c262000481565b500290565b600060208284031215620005da57600080fd5b81516001600160a01b0381168114620005f257600080fd5b9392505050565b600060208083528351808285015260005b8181101562000628578581018301518582016040015282016200060a565b818111156200063b576000604083870101525b50601f01601f1916929092016040019392505050565b6000826200066f57634e487b7160e01b600052601260045260246000fd5b500490565b611db380620006846000396000f3fe6080604052600436106102815760003560e01c8063892153171161014f578063bf56b371116100c1578063dd62ed3e1161007a578063dd62ed3e146107ab578063f2fde38b146107f1578063f887ea4014610811578063f8b45b0514610831578063fabe628314610847578063ffb54a991461086757600080fd5b8063bf56b3711461070a578063c45a015514610720578063c8d1293d14610740578063c9567bf914610756578063ca19e8301461076b578063d920334e1461078b57600080fd5b80638ea5220f116101135780638ea5220f1461063d57806395d89b411461065d578063a3a2e89e1461068a578063a8aa1b31146106aa578063a9059cbb146106ca578063b515566a146106ea57600080fd5b8063892153171461059257806389291a8f146105a8578063893d20e8146105bd5780638b42507f146105ef5780638da5cb5b1461061f57600080fd5b80633dab5269116101f357806366eb3785116101ac57806366eb3785146104db57806370a08231146104f0578063715018a6146105265780637437681e1461053b5780637db1342c146105515780637dfcbe341461057157600080fd5b80633dab5269146104045780633f4218e0146104245780634355855a1461045457806347062402146104845780634a74bb021461049a578063571ac8b0146104bb57600080fd5b806323b872dd1161024557806323b872dd1461035d578063273123b71461037d5780632b112e491461039d5780632b14ca56146103b257806330ca34ee146103c8578063313ce567146103e857600080fd5b80630445b6671461028d57806306fdde03146102b6578063095ea7b3146102f657806318160ddd146103265780631816467f1461033b57600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102a3601a5481565b6040519081526020015b60405180910390f35b3480156102c257600080fd5b5060408051808201909152600e81526d43525950544f4749524c414e4e4160901b60208201525b6040516102ad9190611923565b34801561030257600080fd5b5061031661031136600461199d565b610888565b60405190151581526020016102ad565b34801561033257600080fd5b506001546102a3565b34801561034757600080fd5b5061035b6103563660046119c9565b6108f5565b005b34801561036957600080fd5b506103166103783660046119e6565b61094a565b34801561038957600080fd5b5061035b6103983660046119c9565b610a0c565b3480156103a957600080fd5b506102a3610a57565b3480156103be57600080fd5b506102a3600f5481565b3480156103d457600080fd5b5061035b6103e3366004611a27565b610aa9565b3480156103f457600080fd5b50604051601281526020016102ad565b34801561041057600080fd5b5061035b61041f366004611a59565b610ade565b34801561043057600080fd5b5061031661043f3660046119c9565b60096020526000908152604090205460ff1681565b34801561046057600080fd5b5061031661046f3660046119c9565b600b6020526000908152604090205460ff1681565b34801561049057600080fd5b506102a3600e5481565b3480156104a657600080fd5b5060175461031690600160a81b900460ff1681565b3480156104c757600080fd5b506103166104d63660046119c9565b610b2a565b3480156104e757600080fd5b5061035b610b38565b3480156104fc57600080fd5b506102a361050b3660046119c9565b6001600160a01b031660009081526002602052604090205490565b34801561053257600080fd5b5061035b610b6c565b34801561054757600080fd5b506102a360185481565b34801561055d57600080fd5b5061035b61056c366004611a75565b610ba0565b34801561057d57600080fd5b5060075461031690600160a01b900460ff1681565b34801561059e57600080fd5b506102a360115481565b3480156105b457600080fd5b5061035b610bcf565b3480156105c957600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102ad565b3480156105fb57600080fd5b5061031661060a3660046119c9565b600a6020526000908152604090205460ff1681565b34801561062b57600080fd5b506000546001600160a01b03166105d7565b34801561064957600080fd5b506017546105d7906001600160a01b031681565b34801561066957600080fd5b50604080518082019091526004815263414e4e4160e01b60208201526102e9565b34801561069657600080fd5b5061035b6106a5366004611a8e565b610c3f565b3480156106b657600080fd5b506014546105d7906001600160a01b031681565b3480156106d657600080fd5b506103166106e536600461199d565b610c94565b3480156106f657600080fd5b5061035b610705366004611ad9565b610ca1565b34801561071657600080fd5b506102a3600c5481565b34801561072c57600080fd5b506015546105d7906001600160a01b031681565b34801561074c57600080fd5b506102a360105481565b34801561076257600080fd5b5061035b610d33565b34801561077757600080fd5b5061035b610786366004611a27565b610d76565b34801561079757600080fd5b5061035b6107a6366004611a75565b610dab565b3480156107b757600080fd5b506102a36107c6366004611b9e565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156107fd57600080fd5b5061035b61080c3660046119c9565b610dda565b34801561081d57600080fd5b506013546105d7906001600160a01b031681565b34801561083d57600080fd5b506102a360195481565b34801561085357600080fd5b5061035b610862366004611a8e565b610e72565b34801561087357600080fd5b5060175461031690600160b01b900460ff1681565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108e39086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146109285760405162461bcd60e51b815260040161091f90611bd7565b60405180910390fd5b601780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166000908152600360209081526040808320338452909152812054600019146109f7576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526003825283812033825290915291909120546109d2918490610f09565b6001600160a01b03851660009081526003602090815260408083203384529091529020555b610a02848484610f43565b90505b9392505050565b6000546001600160a01b03163314610a365760405162461bcd60e51b815260040161091f90611bd7565b6001600160a01b03166000908152600860205260409020805460ff19169055565b6007546001600160a01b0316600090815260026020526040812054610aa4906006546001600160a01b0316600090815260026020526040902054610a9e90600154906112d3565b906112d3565b905090565b6000546001600160a01b03163314610ad35760405162461bcd60e51b815260040161091f90611bd7565b600e91909155600f55565b6000546001600160a01b03163314610b085760405162461bcd60e51b815260040161091f90611bd7565b60178054921515600160a81b0260ff60a81b1990931692909217909155601a55565b60006108ef82600019610888565b6000546001600160a01b03163314610b625760405162461bcd60e51b815260040161091f90611bd7565b610b6a611315565b565b6000546001600160a01b03163314610b965760405162461bcd60e51b815260040161091f90611bd7565b610b6a6000611420565b6000546001600160a01b03163314610bca5760405162461bcd60e51b815260040161091f90611bd7565b601955565b6000546001600160a01b03163314610bf95760405162461bcd60e51b815260040161091f90611bd7565b478015610c3c576017546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610c3a573d6000803e3d6000fd5b505b50565b6000546001600160a01b03163314610c695760405162461bcd60e51b815260040161091f90611bd7565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000610a05338484610f43565b6000546001600160a01b03163314610ccb5760405162461bcd60e51b815260040161091f90611bd7565b60005b8151811015610c3a57600160086000848481518110610cef57610cef611c0c565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610d2b81611c38565b915050610cce565b6000546001600160a01b03163314610d5d5760405162461bcd60e51b815260040161091f90611bd7565b43600c556017805460ff60b01b1916600160b01b179055565b6000546001600160a01b03163314610da05760405162461bcd60e51b815260040161091f90611bd7565b601191909155601055565b6000546001600160a01b03163314610dd55760405162461bcd60e51b815260040161091f90611bd7565b601855565b6000546001600160a01b03163314610e045760405162461bcd60e51b815260040161091f90611bd7565b6001600160a01b038116610e695760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161091f565b610c3c81611420565b6000546001600160a01b03163314610e9c5760405162461bcd60e51b815260040161091f90611bd7565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000610a0583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611470565b60008184841115610f2d5760405162461bcd60e51b815260040161091f9190611923565b506000610f3a8486611c51565b95945050505050565b600080546001600160a01b03858116911614801590610f7057506000546001600160a01b03848116911614155b15610fce57601754600160b01b900460ff16610fce5760405162461bcd60e51b815260206004820152601760248201527f686f6c6420757220686f7273657320626967206775792e000000000000000000604482015260640161091f565b6001600160a01b03841660009081526008602052604090205460ff1615801561101057506001600160a01b03831660009081526008602052604090205460ff16155b61101957600080fd5b601754600160a01b900460ff161561103d5761103684848461149e565b9050610a05565b6018548211158061106657506001600160a01b0384166000908152600a602052604090205460ff165b6110975760405162461bcd60e51b81526020600482015260026024820152610e8f60f31b604482015260640161091f565b6001600160a01b0383166000908152600a602052604090205460ff161580156110c95750600754600160a01b900460ff165b1561112b576019546001600160a01b0384166000908152600260205260409020546110f49084611584565b111561112b5760405162461bcd60e51b81526020600482015260066024820152651dd85b1b195d60d21b604482015260640161091f565b6014546001600160a01b031633148015906111505750601754600160a01b900460ff16155b80156111655750601754600160a81b900460ff165b80156111825750601a543060009081526002602052604090205410155b1561118f5761118f611315565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600290915291909120546111e1918490610f09565b6001600160a01b038516600090815260026020908152604080832093909355600990529081205460ff1615801561123157506001600160a01b03841660009081526009602052604090205460ff16155b61123b5782611246565b6112468585856115e3565b6001600160a01b03851660009081526002602052604090205490915061126c9082611584565b6001600160a01b0380861660008181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112c09085815260200190565b60405180910390a3506001949350505050565b6000610a0583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f09565b6017805460ff60a01b1916600160a01b17905530600090815260026020819052604082205460105490929161135a9161135490606490829087906116a6565b90610ec7565b9050600061136883836112d3565b905061137381611728565b600047905060006113946064611354601154856116a690919063ffffffff16565b905060006113b760026113546064611354601054886116a690919063ffffffff16565b905082156113fb576017546040516001600160a01b039091169083156108fc029084906000818181858888f193505050501580156113f9573d6000803e3d6000fd5b505b841561140b5761140b8582611887565b50506017805460ff60a01b1916905550505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600081836114915760405162461bcd60e51b815260040161091f9190611923565b506000610f3a8486611c68565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526002909152918220546114ef918490610f09565b6001600160a01b03808616600090815260026020526040808220939093559085168152205461151e9083611584565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115729086815260200190565b60405180910390a35060019392505050565b6000806115918385611c8a565b905083811015610a055760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161091f565b60145460009081906001600160a01b0385811691161461160557600e54611609565b600f545b9050600061161c606461135486856116a6565b306000908152600260205260409020549091506116399082611584565b30600081815260026020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061168a9085815260200190565b60405180910390a361169c84826112d3565b9695505050505050565b6000826000036116b8575060006108ef565b60006116c48385611ca2565b9050826116d18583611c68565b14610a055760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161091f565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061175d5761175d611c0c565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156117b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117da9190611cc1565b816001815181106117ed576117ed611c0c565b60200260200101906001600160a01b031690816001600160a01b0316815250506118173083610888565b5060135460405163791ac94760e01b81526001600160a01b039091169063791ac94790611851908590600090869030904290600401611cde565b600060405180830381600087803b15801561186b57600080fd5b505af115801561187f573d6000803e3d6000fd5b505050505050565b601354600d5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156118f7573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061191c9190611d4f565b5050505050565b600060208083528351808285015260005b8181101561195057858101830151858201604001528201611934565b81811115611962576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610c3c57600080fd5b803561199881611978565b919050565b600080604083850312156119b057600080fd5b82356119bb81611978565b946020939093013593505050565b6000602082840312156119db57600080fd5b8135610a0581611978565b6000806000606084860312156119fb57600080fd5b8335611a0681611978565b92506020840135611a1681611978565b929592945050506040919091013590565b60008060408385031215611a3a57600080fd5b50508035926020909101359150565b8035801515811461199857600080fd5b60008060408385031215611a6c57600080fd5b6119bb83611a49565b600060208284031215611a8757600080fd5b5035919050565b60008060408385031215611aa157600080fd5b8235611aac81611978565b9150611aba60208401611a49565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611aec57600080fd5b823567ffffffffffffffff80821115611b0457600080fd5b818501915085601f830112611b1857600080fd5b813581811115611b2a57611b2a611ac3565b8060051b604051601f19603f83011681018181108582111715611b4f57611b4f611ac3565b604052918252848201925083810185019188831115611b6d57600080fd5b938501935b82851015611b9257611b838561198d565b84529385019392850192611b72565b98975050505050505050565b60008060408385031215611bb157600080fd5b8235611bbc81611978565b91506020830135611bcc81611978565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611c4a57611c4a611c22565b5060010190565b600082821015611c6357611c63611c22565b500390565b600082611c8557634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611c9d57611c9d611c22565b500190565b6000816000190483118215151615611cbc57611cbc611c22565b500290565b600060208284031215611cd357600080fd5b8151610a0581611978565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d2e5784516001600160a01b031683529383019391830191600101611d09565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611d6457600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220308a24c138a1cfe82c5e7fed99df24058e01889cd9090a936c67ff7ccb100bed64736f6c634300080d0033

Deployed Bytecode

0x6080604052600436106102815760003560e01c8063892153171161014f578063bf56b371116100c1578063dd62ed3e1161007a578063dd62ed3e146107ab578063f2fde38b146107f1578063f887ea4014610811578063f8b45b0514610831578063fabe628314610847578063ffb54a991461086757600080fd5b8063bf56b3711461070a578063c45a015514610720578063c8d1293d14610740578063c9567bf914610756578063ca19e8301461076b578063d920334e1461078b57600080fd5b80638ea5220f116101135780638ea5220f1461063d57806395d89b411461065d578063a3a2e89e1461068a578063a8aa1b31146106aa578063a9059cbb146106ca578063b515566a146106ea57600080fd5b8063892153171461059257806389291a8f146105a8578063893d20e8146105bd5780638b42507f146105ef5780638da5cb5b1461061f57600080fd5b80633dab5269116101f357806366eb3785116101ac57806366eb3785146104db57806370a08231146104f0578063715018a6146105265780637437681e1461053b5780637db1342c146105515780637dfcbe341461057157600080fd5b80633dab5269146104045780633f4218e0146104245780634355855a1461045457806347062402146104845780634a74bb021461049a578063571ac8b0146104bb57600080fd5b806323b872dd1161024557806323b872dd1461035d578063273123b71461037d5780632b112e491461039d5780632b14ca56146103b257806330ca34ee146103c8578063313ce567146103e857600080fd5b80630445b6671461028d57806306fdde03146102b6578063095ea7b3146102f657806318160ddd146103265780631816467f1461033b57600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102a3601a5481565b6040519081526020015b60405180910390f35b3480156102c257600080fd5b5060408051808201909152600e81526d43525950544f4749524c414e4e4160901b60208201525b6040516102ad9190611923565b34801561030257600080fd5b5061031661031136600461199d565b610888565b60405190151581526020016102ad565b34801561033257600080fd5b506001546102a3565b34801561034757600080fd5b5061035b6103563660046119c9565b6108f5565b005b34801561036957600080fd5b506103166103783660046119e6565b61094a565b34801561038957600080fd5b5061035b6103983660046119c9565b610a0c565b3480156103a957600080fd5b506102a3610a57565b3480156103be57600080fd5b506102a3600f5481565b3480156103d457600080fd5b5061035b6103e3366004611a27565b610aa9565b3480156103f457600080fd5b50604051601281526020016102ad565b34801561041057600080fd5b5061035b61041f366004611a59565b610ade565b34801561043057600080fd5b5061031661043f3660046119c9565b60096020526000908152604090205460ff1681565b34801561046057600080fd5b5061031661046f3660046119c9565b600b6020526000908152604090205460ff1681565b34801561049057600080fd5b506102a3600e5481565b3480156104a657600080fd5b5060175461031690600160a81b900460ff1681565b3480156104c757600080fd5b506103166104d63660046119c9565b610b2a565b3480156104e757600080fd5b5061035b610b38565b3480156104fc57600080fd5b506102a361050b3660046119c9565b6001600160a01b031660009081526002602052604090205490565b34801561053257600080fd5b5061035b610b6c565b34801561054757600080fd5b506102a360185481565b34801561055d57600080fd5b5061035b61056c366004611a75565b610ba0565b34801561057d57600080fd5b5060075461031690600160a01b900460ff1681565b34801561059e57600080fd5b506102a360115481565b3480156105b457600080fd5b5061035b610bcf565b3480156105c957600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016102ad565b3480156105fb57600080fd5b5061031661060a3660046119c9565b600a6020526000908152604090205460ff1681565b34801561062b57600080fd5b506000546001600160a01b03166105d7565b34801561064957600080fd5b506017546105d7906001600160a01b031681565b34801561066957600080fd5b50604080518082019091526004815263414e4e4160e01b60208201526102e9565b34801561069657600080fd5b5061035b6106a5366004611a8e565b610c3f565b3480156106b657600080fd5b506014546105d7906001600160a01b031681565b3480156106d657600080fd5b506103166106e536600461199d565b610c94565b3480156106f657600080fd5b5061035b610705366004611ad9565b610ca1565b34801561071657600080fd5b506102a3600c5481565b34801561072c57600080fd5b506015546105d7906001600160a01b031681565b34801561074c57600080fd5b506102a360105481565b34801561076257600080fd5b5061035b610d33565b34801561077757600080fd5b5061035b610786366004611a27565b610d76565b34801561079757600080fd5b5061035b6107a6366004611a75565b610dab565b3480156107b757600080fd5b506102a36107c6366004611b9e565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156107fd57600080fd5b5061035b61080c3660046119c9565b610dda565b34801561081d57600080fd5b506013546105d7906001600160a01b031681565b34801561083d57600080fd5b506102a360195481565b34801561085357600080fd5b5061035b610862366004611a8e565b610e72565b34801561087357600080fd5b5060175461031690600160b01b900460ff1681565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108e39086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b031633146109285760405162461bcd60e51b815260040161091f90611bd7565b60405180910390fd5b601780546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166000908152600360209081526040808320338452909152812054600019146109f7576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526003825283812033825290915291909120546109d2918490610f09565b6001600160a01b03851660009081526003602090815260408083203384529091529020555b610a02848484610f43565b90505b9392505050565b6000546001600160a01b03163314610a365760405162461bcd60e51b815260040161091f90611bd7565b6001600160a01b03166000908152600860205260409020805460ff19169055565b6007546001600160a01b0316600090815260026020526040812054610aa4906006546001600160a01b0316600090815260026020526040902054610a9e90600154906112d3565b906112d3565b905090565b6000546001600160a01b03163314610ad35760405162461bcd60e51b815260040161091f90611bd7565b600e91909155600f55565b6000546001600160a01b03163314610b085760405162461bcd60e51b815260040161091f90611bd7565b60178054921515600160a81b0260ff60a81b1990931692909217909155601a55565b60006108ef82600019610888565b6000546001600160a01b03163314610b625760405162461bcd60e51b815260040161091f90611bd7565b610b6a611315565b565b6000546001600160a01b03163314610b965760405162461bcd60e51b815260040161091f90611bd7565b610b6a6000611420565b6000546001600160a01b03163314610bca5760405162461bcd60e51b815260040161091f90611bd7565b601955565b6000546001600160a01b03163314610bf95760405162461bcd60e51b815260040161091f90611bd7565b478015610c3c576017546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610c3a573d6000803e3d6000fd5b505b50565b6000546001600160a01b03163314610c695760405162461bcd60e51b815260040161091f90611bd7565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000610a05338484610f43565b6000546001600160a01b03163314610ccb5760405162461bcd60e51b815260040161091f90611bd7565b60005b8151811015610c3a57600160086000848481518110610cef57610cef611c0c565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610d2b81611c38565b915050610cce565b6000546001600160a01b03163314610d5d5760405162461bcd60e51b815260040161091f90611bd7565b43600c556017805460ff60b01b1916600160b01b179055565b6000546001600160a01b03163314610da05760405162461bcd60e51b815260040161091f90611bd7565b601191909155601055565b6000546001600160a01b03163314610dd55760405162461bcd60e51b815260040161091f90611bd7565b601855565b6000546001600160a01b03163314610e045760405162461bcd60e51b815260040161091f90611bd7565b6001600160a01b038116610e695760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161091f565b610c3c81611420565b6000546001600160a01b03163314610e9c5760405162461bcd60e51b815260040161091f90611bd7565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000610a0583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611470565b60008184841115610f2d5760405162461bcd60e51b815260040161091f9190611923565b506000610f3a8486611c51565b95945050505050565b600080546001600160a01b03858116911614801590610f7057506000546001600160a01b03848116911614155b15610fce57601754600160b01b900460ff16610fce5760405162461bcd60e51b815260206004820152601760248201527f686f6c6420757220686f7273657320626967206775792e000000000000000000604482015260640161091f565b6001600160a01b03841660009081526008602052604090205460ff1615801561101057506001600160a01b03831660009081526008602052604090205460ff16155b61101957600080fd5b601754600160a01b900460ff161561103d5761103684848461149e565b9050610a05565b6018548211158061106657506001600160a01b0384166000908152600a602052604090205460ff165b6110975760405162461bcd60e51b81526020600482015260026024820152610e8f60f31b604482015260640161091f565b6001600160a01b0383166000908152600a602052604090205460ff161580156110c95750600754600160a01b900460ff165b1561112b576019546001600160a01b0384166000908152600260205260409020546110f49084611584565b111561112b5760405162461bcd60e51b81526020600482015260066024820152651dd85b1b195d60d21b604482015260640161091f565b6014546001600160a01b031633148015906111505750601754600160a01b900460ff16155b80156111655750601754600160a81b900460ff165b80156111825750601a543060009081526002602052604090205410155b1561118f5761118f611315565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600290915291909120546111e1918490610f09565b6001600160a01b038516600090815260026020908152604080832093909355600990529081205460ff1615801561123157506001600160a01b03841660009081526009602052604090205460ff16155b61123b5782611246565b6112468585856115e3565b6001600160a01b03851660009081526002602052604090205490915061126c9082611584565b6001600160a01b0380861660008181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112c09085815260200190565b60405180910390a3506001949350505050565b6000610a0583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f09565b6017805460ff60a01b1916600160a01b17905530600090815260026020819052604082205460105490929161135a9161135490606490829087906116a6565b90610ec7565b9050600061136883836112d3565b905061137381611728565b600047905060006113946064611354601154856116a690919063ffffffff16565b905060006113b760026113546064611354601054886116a690919063ffffffff16565b905082156113fb576017546040516001600160a01b039091169083156108fc029084906000818181858888f193505050501580156113f9573d6000803e3d6000fd5b505b841561140b5761140b8582611887565b50506017805460ff60a01b1916905550505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600081836114915760405162461bcd60e51b815260040161091f9190611923565b506000610f3a8486611c68565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526002909152918220546114ef918490610f09565b6001600160a01b03808616600090815260026020526040808220939093559085168152205461151e9083611584565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115729086815260200190565b60405180910390a35060019392505050565b6000806115918385611c8a565b905083811015610a055760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161091f565b60145460009081906001600160a01b0385811691161461160557600e54611609565b600f545b9050600061161c606461135486856116a6565b306000908152600260205260409020549091506116399082611584565b30600081815260026020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061168a9085815260200190565b60405180910390a361169c84826112d3565b9695505050505050565b6000826000036116b8575060006108ef565b60006116c48385611ca2565b9050826116d18583611c68565b14610a055760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161091f565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061175d5761175d611c0c565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156117b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117da9190611cc1565b816001815181106117ed576117ed611c0c565b60200260200101906001600160a01b031690816001600160a01b0316815250506118173083610888565b5060135460405163791ac94760e01b81526001600160a01b039091169063791ac94790611851908590600090869030904290600401611cde565b600060405180830381600087803b15801561186b57600080fd5b505af115801561187f573d6000803e3d6000fd5b505050505050565b601354600d5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156118f7573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061191c9190611d4f565b5050505050565b600060208083528351808285015260005b8181101561195057858101830151858201604001528201611934565b81811115611962576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610c3c57600080fd5b803561199881611978565b919050565b600080604083850312156119b057600080fd5b82356119bb81611978565b946020939093013593505050565b6000602082840312156119db57600080fd5b8135610a0581611978565b6000806000606084860312156119fb57600080fd5b8335611a0681611978565b92506020840135611a1681611978565b929592945050506040919091013590565b60008060408385031215611a3a57600080fd5b50508035926020909101359150565b8035801515811461199857600080fd5b60008060408385031215611a6c57600080fd5b6119bb83611a49565b600060208284031215611a8757600080fd5b5035919050565b60008060408385031215611aa157600080fd5b8235611aac81611978565b9150611aba60208401611a49565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611aec57600080fd5b823567ffffffffffffffff80821115611b0457600080fd5b818501915085601f830112611b1857600080fd5b813581811115611b2a57611b2a611ac3565b8060051b604051601f19603f83011681018181108582111715611b4f57611b4f611ac3565b604052918252848201925083810185019188831115611b6d57600080fd5b938501935b82851015611b9257611b838561198d565b84529385019392850192611b72565b98975050505050505050565b60008060408385031215611bb157600080fd5b8235611bbc81611978565b91506020830135611bcc81611978565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611c4a57611c4a611c22565b5060010190565b600082821015611c6357611c63611c22565b500390565b600082611c8557634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611c9d57611c9d611c22565b500190565b6000816000190483118215151615611cbc57611cbc611c22565b500290565b600060208284031215611cd357600080fd5b8151610a0581611978565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611d2e5784516001600160a01b031683529383019391830191600101611d09565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611d6457600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220308a24c138a1cfe82c5e7fed99df24058e01889cd9090a936c67ff7ccb100bed64736f6c634300080d0033

Deployed Bytecode Sourcemap

5843:9532:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7522:52;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;7522:52:0;;;;;;;;10293:80;;;;;;;;;;-1:-1:-1;10365:5:0;;;;;;;;;;;;-1:-1:-1;;;10365:5:0;;;;10293:80;;;;;;;:::i;10721:216::-;;;;;;;;;;-1:-1:-1;10721:216:0;;;;;:::i;:::-;;:::i;:::-;;;1558:14:1;;1551:22;1533:41;;1521:2;1506:18;10721:216:0;1393:187:1;10023:88:0;;;;;;;;;;-1:-1:-1;10096:12:0;;10023:88;;8957:110;;;;;;;;;;-1:-1:-1;8957:110:0;;;;;:::i;:::-;;:::i;:::-;;11235:366;;;;;;;;;;-1:-1:-1;11235:366:0;;;;;:::i;:::-;;:::i;9775:90::-;;;;;;;;;;-1:-1:-1;9775:90:0;;;;;:::i;:::-;;:::i;9873:142::-;;;;;;;;;;;;;:::i;6826:26::-;;;;;;;;;;;;;;;;8629:153;;;;;;;;;;-1:-1:-1;8629:153:0;;;;;:::i;:::-;;:::i;10117:80::-;;;;;;;;;;-1:-1:-1;10117:80:0;;6055:2;2693:36:1;;2681:2;2666:18;10117:80:0;2551:184:1;9568:199:0;;;;;;;;;;-1:-1:-1;9568:199:0;;;;;:::i;:::-;;:::i;6558:44::-;;;;;;;;;;-1:-1:-1;6558:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6664:49;;;;;;;;;;-1:-1:-1;6664:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6794:25;;;;;;;;;;;;;;;;7213:40;;;;;;;;;;-1:-1:-1;7213:40:0;;;;-1:-1:-1;;;7213:40:0;;;;;;10945:122;;;;;;;;;;-1:-1:-1;10945:122:0;;;;;:::i;:::-;;:::i;15048:74::-;;;;;;;;;;;;;:::i;10465:105::-;;;;;;;;;;-1:-1:-1;10465:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;10549:18:0;10531:7;10549:18;;;:9;:18;;;;;;;10465:105;3732:103;;;;;;;;;;;;;:::i;7418:43::-;;;;;;;;;;;;;;;;9178:104;;;;;;;;;;-1:-1:-1;9178:104:0;;;;;:::i;:::-;;:::i;6477:26::-;;;;;;;;;;-1:-1:-1;6477:26:0;;;;-1:-1:-1;;;6477:26:0;;;;;;6901:25;;;;;;;;;;;;;;;;15130:242;;;;;;;;;;;;;:::i;10379:80::-;;;;;;;;;;-1:-1:-1;10431:7:0;3154:6;-1:-1:-1;;;;;3154:6:0;10379:80;;;-1:-1:-1;;;;;3507:32:1;;;3489:51;;3477:2;3462:18;10379:80:0;3343:203:1;6609:48:0;;;;;;;;;;-1:-1:-1;6609:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3081:87;;;;;;;;;;-1:-1:-1;3127:7:0;3154:6;-1:-1:-1;;;;;3154:6:0;3081:87;;7098:78;;;;;;;;;;-1:-1:-1;7098:78:0;;;;-1:-1:-1;;;;;7098:78:0;;;10203:84;;;;;;;;;;-1:-1:-1;10277:7:0;;;;;;;;;;;;-1:-1:-1;;;10277:7:0;;;;10203:84;;9294:122;;;;;;;;;;-1:-1:-1;9294:122:0;;;;;:::i;:::-;;:::i;7010:19::-;;;;;;;;;;-1:-1:-1;7010:19:0;;;;-1:-1:-1;;;;;7010:19:0;;;11075:152;;;;;;;;;;-1:-1:-1;11075:152:0;;;;;:::i;:::-;;:::i;8282:166::-;;;;;;;;;;-1:-1:-1;8282:166:0;;;;;:::i;:::-;;:::i;6722:25::-;;;;;;;;;;;;;;;;7036:22;;;;;;;;;;-1:-1:-1;7036:22:0;;;;-1:-1:-1;;;;;7036:22:0;;;6863:31;;;;;;;;;;;;;;;;8500:115;;;;;;;;;;;;;:::i;8795:154::-;;;;;;;;;;-1:-1:-1;8795:154:0;;;;;:::i;:::-;;:::i;9075:95::-;;;;;;;;;;-1:-1:-1;9075:95:0;;;;;:::i;:::-;;:::i;10576:133::-;;;;;;;;;;-1:-1:-1;10576:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;10678:19:0;;;10660:7;10678:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;10576:133;3990:238;;;;;;;;;;-1:-1:-1;3990:238:0;;;;;:::i;:::-;;:::i;6979:24::-;;;;;;;;;;-1:-1:-1;6979:24:0;;;;-1:-1:-1;;;;;6979:24:0;;;7468:47;;;;;;;;;;;;;;;;9424:136;;;;;;;;;;-1:-1:-1;9424:136:0;;;;;:::i;:::-;;:::i;7260:31::-;;;;;;;;;;-1:-1:-1;7260:31:0;;;;-1:-1:-1;;;7260:31:0;;;;;;10721:216;10825:10;10796:4;10813:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;10813:32:0;;;;;;;;;;:41;;;10870:37;10796:4;;10813:32;;10870:37;;;;10848:6;160:25:1;;148:2;133:18;;14:177;10870:37:0;;;;;;;;-1:-1:-1;10925:4:0;10721:216;;;;;:::o;8957:110::-;3127:7;3154:6;-1:-1:-1;;;;;3154:6:0;297:10;3301:23;3293:68;;;;-1:-1:-1;;;3293:68:0;;;;;;;:::i;:::-;;;;;;;;;9035:9:::1;:24:::0;;-1:-1:-1;;;;;;9035:24:0::1;-1:-1:-1::0;;;;;9035:24:0;;;::::1;::::0;;;::::1;::::0;;8957:110::o;11235:366::-;-1:-1:-1;;;;;11355:19:0;;11335:4;11355:19;;;:11;:19;;;;;;;;11375:10;11355:31;;;;;;;;-1:-1:-1;;11355:52:0;11352:186;;11457:69;;;;;;;;;;;-1:-1:-1;;;11457:69:0;;;;;;;;-1:-1:-1;;;;;11457:19:0;;-1:-1:-1;11457:19:0;;;:11;:19;;;;;11477:10;11457:31;;;;;;;;;;:69;;11493:6;;11457:35;:69::i;:::-;-1:-1:-1;;;;;11423:19:0;;;;;;:11;:19;;;;;;;;11443:10;11423:31;;;;;;;:103;11352:186;11557:36;11567:6;11575:9;11586:6;11557:9;:36::i;:::-;11550:43;;11235:366;;;;;;:::o;9775:90::-;3127:7;3154:6;-1:-1:-1;;;;;3154:6:0;297:10;3301:23;3293:68;;;;-1:-1:-1;;;3293:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9837:12:0::1;9852:5;9837:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;9837:20:0::1;::::0;;9775:90::o;9873:142::-;10001:4;;-1:-1:-1;;;;;10001:4:0;9926:7;10549:18;;;:9;:18;;;;;;9953:54;;9980:4;;-1:-1:-1;;;;;9980:4:0;10531:7;10549:18;;;:9;:18;;;;;;9953:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;9946:61;;9873:142;:::o;8629:153::-;3127:7;3154:6;-1:-1:-1;;;;;3154:6:0;297:10;3301:23;3293:68;;;;-1:-1:-1;;;3293:68:0;;;;;;;:::i;:::-;8725:6:::1;:18:::0;;;;8754:7:::1;:20:::0;8629:153::o;9568:199::-;3127:7;3154:6;-1:-1:-1;;;;;3154:6:0;297:10;3301:23;3293:68;;;;-1:-1:-1;;;3293:68:0;;;;;;;:::i;:::-;9677:21:::1;:39:::0;;;::::1;;-1:-1:-1::0;;;9677:39:0::1;-1:-1:-1::0;;;;9677:39:0;;::::1;::::0;;;::::1;::::0;;;9727:13:::1;:32:::0;9568:199::o;10945:122::-;11000:4;11024:35;11032:7;-1:-1:-1;;11024:7:0;:35::i;15048:74::-;3127:7;3154:6;-1:-1:-1;;;;;3154:6:0;297:10;3301:23;3293:68;;;;-1:-1:-1;;;3293:68:0;;;;;;;:::i;:::-;15104:10:::1;:8;:10::i;:::-;15048:74::o:0;3732:103::-;3127:7;3154:6;-1:-1:-1;;;;;3154:6:0;297:10;3301:23;3293:68;;;;-1:-1:-1;;;3293:68:0;;;;;;;:::i;:::-;3797:30:::1;3824:1;3797:18;:30::i;9178:104::-:0;3127:7;3154:6;-1:-1:-1;;;;;3154:6:0;297:10;3301:23;3293:68;;;;-1:-1:-1;;;3293:68:0;;;;;;;:::i;:::-;9253:9:::1;:21:::0;9178:104::o;15130:242::-;3127:7;3154:6;-1:-1:-1;;;;;3154:6:0;297:10;3301:23;3293:68;;;;-1:-1:-1;;;3293:68:0;;;;;;;:::i;:::-;15214:21:::1;15249:22:::0;;15246:119:::1;;15313:9;::::0;15297:56:::1;::::0;-1:-1:-1;;;;;15313:9:0;;::::1;::::0;15297:56;::::1;;;::::0;15334:18;;15313:9:::1;15297:56:::0;15313:9;15297:56;15334:18;15313:9;15297:56;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;15246:119;15174:198;15130:242::o:0;9294:122::-;3127:7;3154:6;-1:-1:-1;;;;;3154:6:0;297:10;3301:23;3293:68;;;;-1:-1:-1;;;3293:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9380:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;9380:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9294:122::o;11075:152::-;11155:4;11179:40;11189:10;11201:9;11212:6;11179:9;:40::i;8282:166::-;3127:7;3154:6;-1:-1:-1;;;;;3154:6:0;297:10;3301:23;3293:68;;;;-1:-1:-1;;;3293:68:0;;;;;;;:::i;:::-;8358:6:::1;8353:88;8374:5;:12;8370:1;:16;8353:88;;;8425:4;8408;:14;8413:5;8419:1;8413:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;8408:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;8408:14:0;:21;;-1:-1:-1;;8408:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8388:3;::::1;::::0;::::1;:::i;:::-;;;;8353:88;;8500:115:::0;3127:7;3154:6;-1:-1:-1;;;;;3154:6:0;297:10;3301:23;3293:68;;;;-1:-1:-1;;;3293:68:0;;;;;;;:::i;:::-;8566:12:::1;8553:10;:25:::0;8589:11:::1;:18:::0;;-1:-1:-1;;;;8589:18:0::1;-1:-1:-1::0;;;8589:18:0::1;::::0;;8500:115::o;8795:154::-;3127:7;3154:6;-1:-1:-1;;;;;3154:6:0;297:10;3301:23;3293:68;;;;-1:-1:-1;;;3293:68:0;;;;;;;:::i;:::-;8891:5:::1;:17:::0;;;;8919:11:::1;:22:::0;8795:154::o;9075:95::-;3127:7;3154:6;-1:-1:-1;;;;;3154:6:0;297:10;3301:23;3293:68;;;;-1:-1:-1;;;3293:68:0;;;;;;;:::i;:::-;9146:5:::1;:16:::0;9075:95::o;3990:238::-;3127:7;3154:6;-1:-1:-1;;;;;3154:6:0;297:10;3301:23;3293:68;;;;-1:-1:-1;;;3293:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;4093:22:0;::::1;4071:110;;;::::0;-1:-1:-1;;;4071:110:0;;6715:2:1;4071:110:0::1;::::0;::::1;6697:21:1::0;6754:2;6734:18;;;6727:30;6793:34;6773:18;;;6766:62;-1:-1:-1;;;6844:18:1;;;6837:36;6890:19;;4071:110:0::1;6513:402:1::0;4071:110:0::1;4192:28;4211:8;4192:18;:28::i;9424:136::-:0;3127:7;3154:6;-1:-1:-1;;;;;3154:6:0;297:10;3301:23;3293:68;;;;-1:-1:-1;;;3293:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9520:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;9520:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9424:136::o;1200:132::-;1258:7;1285:39;1289:1;1292;1285:39;;;;;;;;;;;;;;;;;:3;:39::i;746:192::-;832:7;868:12;860:6;;;;852:29;;;;-1:-1:-1;;;852:29:0;;;;;;;;:::i;:::-;-1:-1:-1;892:9:0;904:5;908:1;904;:5;:::i;:::-;892:17;746:192;-1:-1:-1;;;;;746:192:0:o;11609:1123::-;11697:4;3154:6;;-1:-1:-1;;;;;11718:16:0;;;3154:6;;11718:16;;;;:39;;-1:-1:-1;3127:7:0;3154:6;-1:-1:-1;;;;;11738:19:0;;;3154:6;;11738:19;;11718:39;11714:92;;;11767:11;;-1:-1:-1;;;11767:11:0;;;;11759:47;;;;-1:-1:-1;;;11759:47:0;;7252:2:1;11759:47:0;;;7234:21:1;7291:2;7271:18;;;7264:30;7330:25;7310:18;;;7303:53;7373:18;;11759:47:0;7050:347:1;11759:47:0;-1:-1:-1;;;;;11868:12:0;;;;;;:4;:12;;;;;;;;11867:13;:33;;;;-1:-1:-1;;;;;;11885:15:0;;;;;;:4;:15;;;;;;;;11884:16;11867:33;11859:42;;;;;;11917:16;;-1:-1:-1;;;11917:16:0;;;;11914:73;;;11943:41;11958:6;11966:9;11977:6;11943:14;:41::i;:::-;11936:48;;;;11914:73;12017:5;;12007:6;:15;;:42;;;-1:-1:-1;;;;;;12026:23:0;;;;;;:15;:23;;;;;;;;12007:42;11999:57;;;;-1:-1:-1;;;11999:57:0;;7604:2:1;11999:57:0;;;7586:21:1;7643:1;7623:18;;;7616:29;-1:-1:-1;;;7661:18:1;;;7654:32;7703:18;;11999:57:0;7402:325:1;11999:57:0;-1:-1:-1;;;;;12073:26:0;;;;;;:15;:26;;;;;;;;12072:27;:38;;;;-1:-1:-1;12103:7:0;;-1:-1:-1;;;12103:7:0;;;;12072:38;12069:143;;;12180:9;;-1:-1:-1;;;;;12144:20:0;;;;;;:9;:20;;;;;;:32;;12169:6;12144:24;:32::i;:::-;:45;;12136:64;;;;-1:-1:-1;;;12136:64:0;;7934:2:1;12136:64:0;;;7916:21:1;7973:1;7953:18;;;7946:29;-1:-1:-1;;;7991:18:1;;;7984:36;8037:18;;12136:64:0;7732:329:1;12136:64:0;12241:4;;-1:-1:-1;;;;;12241:4:0;12227:10;:18;;;;:39;;-1:-1:-1;12250:16:0;;-1:-1:-1;;;12250:16:0;;;;12249:17;12227:39;:64;;;;-1:-1:-1;12270:21:0;;-1:-1:-1;;;12270:21:0;;;;12227:64;:109;;;;-1:-1:-1;12323:13:0;;12313:4;12295:24;;;;:9;:24;;;;;;:41;;12227:109;12224:128;;;12339:10;:8;:10::i;:::-;12384:53;;;;;;;;;;;-1:-1:-1;;;12384:53:0;;;;;;;;-1:-1:-1;;;;;12384:17:0;;-1:-1:-1;12384:17:0;;;:9;:17;;;;;;;;:53;;12406:6;;12384:21;:53::i;:::-;-1:-1:-1;;;;;12364:17:0;;;;;;:9;:17;;;;;;;;:73;;;;12481:11;:19;;;;;;;;12480:20;:47;;;;-1:-1:-1;;;;;;12505:22:0;;;;;;:11;:22;;;;;;;;12504:23;12480:47;:93;;12567:6;12480:93;;;12530:34;12538:6;12546:9;12557:6;12530:7;:34::i;:::-;-1:-1:-1;;;;;12607:20:0;;;;;;:9;:20;;;;;;12458:115;;-1:-1:-1;12607:37:0;;12458:115;12607:24;:37::i;:::-;-1:-1:-1;;;;;12584:20:0;;;;;;;:9;:20;;;;;;;:60;;;;12662:40;;;;;;;;;;12690:11;160:25:1;;148:2;133:18;;14:177;12662:40:0;;;;;;;;-1:-1:-1;12720:4:0;;11609:1123;-1:-1:-1;;;;11609:1123:0:o;604:136::-;662:7;689:43;693:1;696;689:43;;;;;;;;;;;;;;;;;:3;:43::i;14282:758::-;7332:16;:23;;-1:-1:-1;;;;7332:23:0;-1:-1:-1;;;7332:23:0;;;14381:4:::1;7332:23:::0;14363:24;;;:9:::1;:24;::::0;;;;;;;14445:11:::1;::::0;14363:24;;7332:23;14428:45:::1;::::0;:38:::1;::::0;14462:3:::1;::::0;14428:38;;14363:24;;14428:16:::1;:29::i;:::-;:33:::0;::::1;:38::i;:45::-;14399:74:::0;-1:-1:-1;14489:20:0::1;14512:36;:12:::0;14399:74;14512:16:::1;:36::i;:::-;14489:59;;14561:30;14578:12;14561:16;:30::i;:::-;14604:23;14630:21;14604:47;;14662:17;14682:35;14713:3;14682:26;14702:5;;14682:15;:19;;:26;;;;:::i;:35::-;14662:55;;14728:23;14754:48;14800:1;14754:41;14791:3;14754:32;14774:11;;14754:15;:19;;:32;;;;:::i;:48::-;14728:74:::0;-1:-1:-1;14825:19:0;;14821:89:::1;;14868:9;::::0;14860:38:::1;::::0;-1:-1:-1;;;;;14868:9:0;;::::1;::::0;14860:38;::::1;;;::::0;14888:9;;14868::::1;14860:38:::0;14868:9;14860:38;14888:9;14868;14860:38;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;14821:89;14934:22:::0;;14930:103:::1;;14972:49;14985:18;15005:15;14972:12;:49::i;:::-;-1:-1:-1::0;;7378:16:0;:24;;-1:-1:-1;;;;7378:24:0;;;-1:-1:-1;;;;14282:758:0:o;4388:191::-;4462:16;4481:6;;-1:-1:-1;;;;;4498:17:0;;;-1:-1:-1;;;;;;4498:17:0;;;;;;4531:40;;4481:6;;;;;;;4531:40;;4462:16;4531:40;4451:128;4388:191;:::o;1338:345::-;1424:7;1526:12;1519:5;1511:28;;;;-1:-1:-1;;;1511:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1550:9:0;1562:5;1566:1;1562;:5;:::i;12744:330::-;12874:53;;;;;;;;;;;-1:-1:-1;;;12874:53:0;;;;;;;;-1:-1:-1;;;;;12874:17:0;;12837:4;12874:17;;;:9;:17;;;;;;;:53;;12896:6;;12874:21;:53::i;:::-;-1:-1:-1;;;;;12854:17:0;;;;;;;:9;:17;;;;;;:73;;;;12961:20;;;;;;;:32;;12986:6;12961:24;:32::i;:::-;-1:-1:-1;;;;;12938:20:0;;;;;;;:9;:20;;;;;;;:55;;;;13009:35;;;;;;;;;;13037:6;160:25:1;;148:2;133:18;;14:177;13009:35:0;;;;;;;;-1:-1:-1;13062:4:0;12744:330;;;;;:::o;417:181::-;475:7;;507:5;511:1;507;:5;:::i;:::-;495:17;;536:1;531;:6;;523:46;;;;-1:-1:-1;;;523:46:0;;8623:2:1;523:46:0;;;8605:21:1;8662:2;8642:18;;;8635:30;8701:29;8681:18;;;8674:57;8748:18;;523:46:0;8421:351:1;13088:427:0;13228:4;;13174:7;;;;-1:-1:-1;;;;;13228:17:0;;;:4;;:17;:36;;13258:6;;13228:36;;;13248:7;;13228:36;13204:60;-1:-1:-1;13275:17:0;13295:34;13325:3;13295:25;:6;13204:60;13295:10;:25::i;:34::-;13387:4;13369:24;;;;:9;:24;;;;;;13275:54;;-1:-1:-1;13369:39:0;;13275:54;13369:28;:39::i;:::-;13360:4;13342:24;;;;:9;:24;;;;;;;:66;;;;13424:42;;-1:-1:-1;;;;;13424:42:0;;;;;;;13456:9;160:25:1;;148:2;133:18;;14:177;13424:42:0;;;;;;;;13486:21;:6;13497:9;13486:10;:21::i;:::-;13479:28;13088:427;-1:-1:-1;;;;;;13088:427:0:o;944:250::-;1002:7;1026:1;1031;1026:6;1022:47;;-1:-1:-1;1056:1:0;1049:8;;1022:47;1081:9;1093:5;1097:1;1093;:5;:::i;:::-;1081:17;-1:-1:-1;1126:1:0;1117:5;1121:1;1081:17;1117:5;:::i;:::-;:10;1109:56;;;;-1:-1:-1;;;1109:56:0;;9152:2:1;1109:56:0;;;9134:21:1;9191:2;9171:18;;;9164:30;9230:34;9210:18;;;9203:62;-1:-1:-1;;;9281:18:1;;;9274:31;9322:19;;1109:56:0;8950:397:1;13527:460:0;13619:16;;;13633:1;13619:16;;;;;;;;13595:21;;13619:16;;;;;;;;;;-1:-1:-1;13619:16:0;13595:40;;13664:4;13646;13651:1;13646:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13646:23:0;;;:7;;;;;;;;;;:23;;;;13690:6;;:13;;;-1:-1:-1;;;13690:13:0;;;;:6;;;;;:11;;:13;;;;;13646:7;;13690:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13680:4;13685:1;13680:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;13680:23:0;;;-1:-1:-1;;;;;13680:23:0;;;;;13716:35;13732:4;13739:11;13716:7;:35::i;:::-;-1:-1:-1;13764:6:0;;:215;;-1:-1:-1;;;13764:215:0;;-1:-1:-1;;;;;13764:6:0;;;;:57;;:215;;13836:11;;13764:6;;13906:4;;13933;;13953:15;;13764:215;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13582:405;13527:460;:::o;13995:279::-;14076:6;;14217:8;;14076:190;;-1:-1:-1;;;14076:190:0;;14139:4;14076:190;;;10934:34:1;10984:18;;;10977:34;;;14076:6:0;11027:18:1;;;11020:34;;;11070:18;;;11063:34;-1:-1:-1;;;;;14217:8:0;;;11113:19:1;;;11106:44;14240:15:0;11166:19:1;;;11159:35;14076:6:0;;;:22;;14106:9;;10868:19:1;;14076:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13995:279;;:::o;196:597:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:131::-;-1:-1:-1;;;;;873:31:1;;863:42;;853:70;;919:1;916;909:12;934:134;1002:20;;1031:31;1002:20;1031:31;:::i;:::-;934:134;;;:::o;1073:315::-;1141:6;1149;1202:2;1190:9;1181:7;1177:23;1173:32;1170:52;;;1218:1;1215;1208:12;1170:52;1257:9;1244:23;1276:31;1301:5;1276:31;:::i;:::-;1326:5;1378:2;1363:18;;;;1350:32;;-1:-1:-1;;;1073:315:1:o;1585:247::-;1644:6;1697:2;1685:9;1676:7;1672:23;1668:32;1665:52;;;1713:1;1710;1703:12;1665:52;1752:9;1739:23;1771:31;1796:5;1771:31;:::i;1837:456::-;1914:6;1922;1930;1983:2;1971:9;1962:7;1958:23;1954:32;1951:52;;;1999:1;1996;1989:12;1951:52;2038:9;2025:23;2057:31;2082:5;2057:31;:::i;:::-;2107:5;-1:-1:-1;2164:2:1;2149:18;;2136:32;2177:33;2136:32;2177:33;:::i;:::-;1837:456;;2229:7;;-1:-1:-1;;;2283:2:1;2268:18;;;;2255:32;;1837:456::o;2298:248::-;2366:6;2374;2427:2;2415:9;2406:7;2402:23;2398:32;2395:52;;;2443:1;2440;2433:12;2395:52;-1:-1:-1;;2466:23:1;;;2536:2;2521:18;;;2508:32;;-1:-1:-1;2298:248:1:o;2740:160::-;2805:20;;2861:13;;2854:21;2844:32;;2834:60;;2890:1;2887;2880:12;2905:248;2970:6;2978;3031:2;3019:9;3010:7;3006:23;3002:32;2999:52;;;3047:1;3044;3037:12;2999:52;3070:26;3086:9;3070:26;:::i;3158:180::-;3217:6;3270:2;3258:9;3249:7;3245:23;3241:32;3238:52;;;3286:1;3283;3276:12;3238:52;-1:-1:-1;3309:23:1;;3158:180;-1:-1:-1;3158:180:1:o;3551:315::-;3616:6;3624;3677:2;3665:9;3656:7;3652:23;3648:32;3645:52;;;3693:1;3690;3683:12;3645:52;3732:9;3719:23;3751:31;3776:5;3751:31;:::i;:::-;3801:5;-1:-1:-1;3825:35:1;3856:2;3841:18;;3825:35;:::i;:::-;3815:45;;3551:315;;;;;:::o;3871:127::-;3932:10;3927:3;3923:20;3920:1;3913:31;3963:4;3960:1;3953:15;3987:4;3984:1;3977:15;4003:1121;4087:6;4118:2;4161;4149:9;4140:7;4136:23;4132:32;4129:52;;;4177:1;4174;4167:12;4129:52;4217:9;4204:23;4246:18;4287:2;4279:6;4276:14;4273:34;;;4303:1;4300;4293:12;4273:34;4341:6;4330:9;4326:22;4316:32;;4386:7;4379:4;4375:2;4371:13;4367:27;4357:55;;4408:1;4405;4398:12;4357:55;4444:2;4431:16;4466:2;4462;4459:10;4456:36;;;4472:18;;:::i;:::-;4518:2;4515:1;4511:10;4550:2;4544:9;4613:2;4609:7;4604:2;4600;4596:11;4592:25;4584:6;4580:38;4668:6;4656:10;4653:22;4648:2;4636:10;4633:18;4630:46;4627:72;;;4679:18;;:::i;:::-;4715:2;4708:22;4765:18;;;4799:15;;;;-1:-1:-1;4841:11:1;;;4837:20;;;4869:19;;;4866:39;;;4901:1;4898;4891:12;4866:39;4925:11;;;;4945:148;4961:6;4956:3;4953:15;4945:148;;;5027:23;5046:3;5027:23;:::i;:::-;5015:36;;4978:12;;;;5071;;;;4945:148;;;5112:6;4003:1121;-1:-1:-1;;;;;;;;4003:1121:1:o;5129:388::-;5197:6;5205;5258:2;5246:9;5237:7;5233:23;5229:32;5226:52;;;5274:1;5271;5264:12;5226:52;5313:9;5300:23;5332:31;5357:5;5332:31;:::i;:::-;5382:5;-1:-1:-1;5439:2:1;5424:18;;5411:32;5452:33;5411:32;5452:33;:::i;:::-;5504:7;5494:17;;;5129:388;;;;;:::o;5748:356::-;5950:2;5932:21;;;5969:18;;;5962:30;6028:34;6023:2;6008:18;;6001:62;6095:2;6080:18;;5748:356::o;6109:127::-;6170:10;6165:3;6161:20;6158:1;6151:31;6201:4;6198:1;6191:15;6225:4;6222:1;6215:15;6241:127;6302:10;6297:3;6293:20;6290:1;6283:31;6333:4;6330:1;6323:15;6357:4;6354:1;6347:15;6373:135;6412:3;6433:17;;;6430:43;;6453:18;;:::i;:::-;-1:-1:-1;6500:1:1;6489:13;;6373:135::o;6920:125::-;6960:4;6988:1;6985;6982:8;6979:34;;;6993:18;;:::i;:::-;-1:-1:-1;7030:9:1;;6920:125::o;8066:217::-;8106:1;8132;8122:132;;8176:10;8171:3;8167:20;8164:1;8157:31;8211:4;8208:1;8201:15;8239:4;8236:1;8229:15;8122:132;-1:-1:-1;8268:9:1;;8066:217::o;8288:128::-;8328:3;8359:1;8355:6;8352:1;8349:13;8346:39;;;8365:18;;:::i;:::-;-1:-1:-1;8401:9:1;;8288:128::o;8777:168::-;8817:7;8883:1;8879;8875:6;8871:14;8868:1;8865:21;8860:1;8853:9;8846:17;8842:45;8839:71;;;8890:18;;:::i;:::-;-1:-1:-1;8930:9:1;;8777:168::o;9352:251::-;9422:6;9475:2;9463:9;9454:7;9450:23;9446:32;9443:52;;;9491:1;9488;9481:12;9443:52;9523:9;9517:16;9542:31;9567:5;9542:31;:::i;9608:980::-;9870:4;9918:3;9907:9;9903:19;9949:6;9938:9;9931:25;9975:2;10013:6;10008:2;9997:9;9993:18;9986:34;10056:3;10051:2;10040:9;10036:18;10029:31;10080:6;10115;10109:13;10146:6;10138;10131:22;10184:3;10173:9;10169:19;10162:26;;10223:2;10215:6;10211:15;10197:29;;10244:1;10254:195;10268:6;10265:1;10262:13;10254:195;;;10333:13;;-1:-1:-1;;;;;10329:39:1;10317:52;;10424:15;;;;10389:12;;;;10365:1;10283:9;10254:195;;;-1:-1:-1;;;;;;;10505:32:1;;;;10500:2;10485:18;;10478:60;-1:-1:-1;;;10569:3:1;10554:19;10547:35;10466:3;9608:980;-1:-1:-1;;;9608:980:1:o;11205:306::-;11293:6;11301;11309;11362:2;11350:9;11341:7;11337:23;11333:32;11330:52;;;11378:1;11375;11368:12;11330:52;11407:9;11401:16;11391:26;;11457:2;11446:9;11442:18;11436:25;11426:35;;11501:2;11490:9;11486:18;11480:25;11470:35;;11205:306;;;;;:::o

Swarm Source

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